Electronic – arduino – use some type of transistor i.e. BJT or MOSFET to act as normally closed relay

arduinomicrocontrollermosfetrelaytransistors

I am designing a power bank which uses sustainable power generation methods for a school electronics project. It is based around the Arduino Nano.

At the moment I am planing to charge an 18650 cell using a hand cranked generator which I have designed as well as a small solar panel array.

One problem I had with the hand crank is that due to the nature of hand cranks its output voltage is not very stable even when using a linear regulator or a buck converter. 18650 charging circuits require a stable 5V input so they are not a practical option for me.

Instead I plan to connect the output of my generator directly to the 18650 cell to charge it. This will however become a problem if the battery gets too full and therefore gets overcharged.

I am already using the Arduino Nano to read the voltage of the 18650 cell and output this as a percentage to an LCD. I now want to add a function to the power bank where it continually checks the charge level of the battery using the data from my pre-existing program to make sure the 18650 is never overcharged.

To do this a couple of things need to happen and that’s where I plan to utilise some type of transistor.

First I need cut the connection from the 18650 to the rest of the circuit each time the voltage is checked (maybe every few seconds.) This is to make sure that the voltage read by the Arduino is the actual voltage of the 18650, if it were connected to the circuit and thus was under load the voltage would be less than actual and this effect is not linear so almost impossible to account for in code.

Next I need to have a second transistor which would cut off only the charge going into the battery in the event that it is full to prevent the overcharging problem.

The way I want to do this is by using an output pin on the Arduino to control a transistor to break the connection to the 18650 when the pin is high. When the pin is low I want the circuit to be closed.

However I have only ever seen BJTs and FETs used to make a connection when the control voltage (Arduino pin) is high.

Yes I could hold the Arduino pin high instead but this would waste more power.

Yes I could use a relay in a normally closed configuration, but I think the constant clicking would get annoying.

How can I achieve this normally closed relay effect With a transistor?

Sorry for the long winded explanation, but I thought it would be useful to offer some insight into the project to give you an idea of the setup.

Best Answer

There are a number of other possible solutions such as short-circuitung the generator that might be easier.

schematic

simulate this circuit – Schematic created using CircuitLab