I have a component which has a load requirement of DC 12v, 230mA. I would like to control this signal using a HIGH output from an Arduino.
My idea is to use a BJT in a switch configuration. My question is, how do I properly size it?
That is the purest way to state the problem. The reality is that months ago we designed such a circuit. We selected the TIP31C BJT (NPN) as the switching component. For the 12v 230mA circuit, we chose a base resistor of 1kOhm.
This was all fine and well for quite a long time under brief loads. But today in a more formal test several BJTs were nonresponsive. The day before, we had run longer, sequenced loads (10s+ at a time, compared to only a few seconds in the past). The BJTs did not outright fail, but would become less and less responsive until they ignored switching commands.
Several hours of trying to understand the problem later, it was clear that the although there was no smoke, no cracking, and no swelling on the BJTs, there was a distinctive brown marking on the back of the ones which were being troublesome.
I come here to check my understanding and look for help in figuring out where we went wrong.
By my understanding the math shakes out like this:
The Arduino outputs a 5v signal (in practicality, more like 4.8v). Our resistor value of 1kOhm yields 4.8v/1000Ohm = 4.8mA of base current. The Hfe/Beta value of the transistor according to the graph in the datasheet is above 100 for such a low current. This means that our selected base current should be able to drive up to 4.8mA*100=480mA of collector-emitter current.
In the multimeter test, Hfe appears to be more like 150. As I understand it, this is not a reliable value, at all. The datasheet also says the minimum Hfe is actually 10.
We have another circuit, which drives 24v 1A. We chose a base resistor of 330Ohm, and have had no issues. 4.8v/330Ohm=14.5mA, 14.5mA*100=1.45A.
What is the proper methodology here?