I am trying to implement a "discharge protection" circuit for an uC (Arduino) powered by a battery. The uC monitors battery voltage and needs to be able to signal the circuit to turn off. Turning on is accomplished by pressing a momentary switch. The goal is to save power and the circuit should use no or very little power (uA) when on and when off. Due to power requirements I understand that I need to use MOSFETs rather than BJTs.
I have tried to implement the following circuit: http://educ8s.tv/auto-power-off-arduino-simple-circuit/ which is using one N-channel MOSFET to disconnect the negative lead of the battery.
The result is that the uC is using the Drain as its ground. If I want to send "low" from the uC to the Gate I get strange results that I don't understand and the MOSFET conducts. The only time it doesn't conduct is when Gate is pulled down to battery ground (Source) and not connected to anything else.
Trying to understand why my implementation doesn't work as in the article I found other circuits for this purpose.
Arduino Battery Over-Discharge Protection (O-DP)
Describes a circuit with two BJT transistors, a NPN and a PNP.
Simple low voltage disconnect circuit for Arduino
Describes two circuits.
One similar to the two BJT transistor variant but with MOSFETs
And another with an opto-coupler and a MOSFET
I am trying to understand what the differences mean.
Can the first, 1 MOSFET, circuit work or is it incorrect?
Which circuit is most power efficient?
Why is an opto-coupler used? How much current does it use and how does it compare to BJT/MOSFET?
Should I switch the positive power source lead or the negative one? Can the uC function correctly when its ground is Drain and not the power source ground?