Notifications
Clear all

What is the best way to read 12v high on an ESP32 pin ?

8 Posts
4 Users
0 Likes
8,550 Views
(@genki)
Member
Joined: 4 years ago
Posts: 10
Topic starter  

Hi Guys,

I want to use the ESP32 to sense if a 12v 6amp DC pump turns on (to monitor pump cycles)

How should I handle the DC motor coil induced voltage backlash when the motor stops, into my ESP32 ?

I researched and came up with some maybe options, looking for suggestions please.

1. 2 x Resistor Voltage Divide the input from 12v down to below 3.3 - with the output going to my ESP32 pin. This option does not appear to have much protection from the DC motor coil voltage spike.... I would need some help here, maybe I would want a diode somewhere?

2. Level shifter - The boards I see on the web all require some input voltage, and are always on - this eats power. I'm looking for extremely low power usage here. So this does not appear to be a good choice.

3. Opto isolated circuit - looking for help with the circuit for this please, DC 12v @ 6amp to ESP32 input

4. Maybe a buck converter? 

Thanks

Genki

 

This topic was modified 4 years ago by Genki

   
Quote
Ruplicator
(@ruplicator)
Member
Joined: 4 years ago
Posts: 127
 

Obviously the optical isolation will give you the best protection but looking at what is at risk ($5 circuit board) compared to the additional cost and complication I'm not sure it's the best decision. The simplest rout is the voltage divider with a 1K and 330 ohm with a 10 mf capacitor across the 330 resister is simple, low cost  and relative safe. For additional safety you could replace the capacitor with a reverse polarity diode and add a 3 volt zener diode across the 330 resistor. If you don't have a  zener diode you could stack 5 silicon diodes (each with a .6V drop) end to end in the same location.


   
ReplyQuote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 

Andre Spiess (I think I spelled that right) just did a video on current sensors.  Maybe what you want to do is detect when there is current in the line instead of trying to measure the voltage.

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
(@genki)
Member
Joined: 4 years ago
Posts: 10
Topic starter  

Thanks for the responses guys. I will definitely take a look at that guy with the Swiss accents latest.

Ruplicator, I'm still new to this electronics game, is there anywhere that I could see a schematic for this type of Voltage divider with the safety features added, to help me build it ?

Thanks again

Genki

 


   
ReplyQuote
Ruplicator
(@ruplicator)
Member
Joined: 4 years ago
Posts: 127
 

Sorry for the background but I was using free software on the wed to draw the circuit diagram. I hope this helps. The line with the 10K resistor going out the bottom is where you would connect to the ESP32 input.

 

Untitled

   
ReplyQuote
(@genki)
Member
Joined: 4 years ago
Posts: 10
Topic starter  

Hi Ruplicator,

Thank you very much, that is incredibly helpful of you and I appreciate it.

I will give it a go and report back on how it works out.

Thanks

Genki


   
ReplyQuote
Ruplicator
(@ruplicator)
Member
Joined: 4 years ago
Posts: 127
 

Please don't forget to test the voltages before you connect to you ESP32. It is easy to miss-read the values on components or make wiring errors. Just set up the circuit without connecting the ESP32 and confirm with a volt meter the input that would normally feed it is in the correct range and polarity in both motor on and off conditions. Also don't forget that the  negative ground of the motor circuit must be connected to the signal ground of  the ESP32.


   
ReplyQuote
 BLM
(@the-code-cobbler)
Member
Joined: 4 years ago
Posts: 14
 

Hi, One thing I would like to add,

You can protect against DC spikes by putting a general purpose diode across the DC input to the motor.

This will limit the DC spike to one diode drop. Approx 0.7Vdc above Vcc.

Hope this helps,

 

Regards

--->The BLM<---


   
ReplyQuote