Header Ads Widget

How to drive bigger load with micro-controllers or other ICs?

 While designing an embedded system or any other IC based system, we have limitations to connect bigger loads or high power loads to output of circuit and drive them directly. For e.g. if you want to switch a 220V lamp/motor or even low voltage motors but which takes high current, from any IC or embedded controller, you cannot connect and drive directly because it doesn't deliver much voltage and current at any of its output pins. So, how we can design a driver circuit which takes input from IC's output and drive such huge loads around us? 

For such requirements we need either transistor based or MOSFET based driver circuit which can be triggered from low input current & voltage and can drive larger loads directly or via relay devices.

If you see specifications of any microcontroller or IC, its input/output pins have limited capacity to deliver current to externally connected loads. External load can be simply a LED connected through some resistance to ground. Or it can be a large load running at 12V DC or 24 VDC and higher or even 220V AC or higher. It can be any requirement. So, how a small controller operating at 3V DC or 5V DC can drive such huge loads. 
Drive load with microcontroller

In above diagram you can see red arrow marks at pin D12 and D11. One arrow is pointing outward and other pointing inward. Means when pin D12 is high it delivers current to outside load connected to it. It is said to be source current as it is going out. There may be other condition where some load is connected from positive supply and to pin D11. When D11 goes low, it provides current path to flow from load to inside D11 pin (sinking current). As current is going inside controller pin, it's called sink current. There is always a limit device to device or IC to IC as to how much each of its pins can source current and how much they can sink current. It all depends on the components used inside the IC which is connected to that pin internally.

To get the exact value of these currents, we need to look at the datasheet of that particular IC or module. For above reference circuit of Arduino module source and sink current limit is 40ma.

Let us see what important points we should consider while driving load from IO pins of controller and how to design driving circuit.

The very standard design consideration is loading any component of circuit not more than 50% of its specification, if the device is deigned to run continuously for longer duration. In case some product is designed to use rarely for few minutes and then powered off, then in that case you may consider to load any component up to 70-80% of its rated capacity. Again while doing so, take care of good quality components where you can rely on the specifications provided by manufacturer in its data sheet.

So, here our requirement is to drive higher load with low input signals received from microcontroller output, so the component comes in mind is Transistor, which can amplify or boost the current. Actually it doesn't boost the current, rather a small change in base current produce high change in collector and emitter current. We will use this feature here. Now if we are talking to only switch on and switch off bigger load using microcontroller we can use transistor in its saturation level. 

We know current gain of a transistor is denoted as hfe = Ic/Ib (i.e. ratio of collector current to base current), looking at the relay being driven via T2 which is connected to pin D3 via a resistor R2. 

Find out the current rating of relay RL1 which is to be turned ON and OFF, say its "I". 

Select a transistor whose saturation current is approximately double this requirement or more i.e. "2I" or more.

Now the transistor has to be driven by current supplied by pin D3 when that digital pin is high (1), hence we should have transistor who needs maximum 20mA current to drive itself to saturation level.

Why we have decided to take 20mA, as per datasheet of Arduino board, it I/O pins has source and sink current capacity of 40mA and we want to load it to 50% only.

Now, since we have selected the relay and transistor, we need to select the value of resistor 'R2' which can limit the current to transistor base and allow some voltage drop across it. 

Data sheet of transistor will suggest you the saturation base current (Ibsat), Vbe (base to emitter voltage) and we know that when the I/O pin of Arduino is HIGH, it voltage level is around 5V, which is never exactly this so we can take approx 4.8V.

Hence the voltage drop across resistor R2 should be Vr2 = 4.8 - Vbe.

Current we already identified Ibsat which will flow through R2 to base of T2. 

Hence by ohms law R2 = Voltage Across it divided by current through it i.e. Vr2 / Ibsat.

So, we got to know which transistor is required to run the relay, and what value of resistor we need to connect to transistor's base to drive it safely through Arduino output.

Here when pin D3 will be HIGH it will drive the transistor T2 to saturation and relay will be turned ON and if pin D3 is LOW, the transistor will be turned off hence the relay will also be off. Here we have used NPN transistor.

Similarly, if we want to turn ON any load when the I/O pin is LOW and turn it OFF is the pin is HIGH, we can use PNP transistor as shown around transistor T1 connected to D8.

All calculations will be same, except on more consideration that if the emitter voltage is too high as compared to maximum output voltage of Arduino, the base-emitter junction of T1 will alway be forward biased whether pin D8 is HIGH or LOW, so the connected load (motor in this case) will always be ON. 

The diode across the load is to bypass reverse current while inductive load i.e. relay or motor is switched OFF. Consider diode whose breakdown voltage is more than double the maximum reverse current expected. For normal relays, this can be any general purpose diode like IN400x series. But for higher load proper calculation and selection has to be done.

Now there may condition where you are not able to find out suitable transistor which can be driven to its saturation with the available driving current sourced/sinked by controller. In that case you may select darlington pair transistors.

darlington pair

These are pair of same transistors connected in above fashion one driving the other, giving you higher current gain and acting like single transistor. Again we have darlington pair for PNP and NPN both as shown here, which can be chosen based on our requirement.

Other option for switching circuits is MOSFET, which take very low current to drive it. But again has requirement of significant base voltage to drive its P-channel or N-channel to saturation. This driving voltage depend on the voltage applied across load connect to it.

Return to List of content                                                Goto to DIY Project List

Post a Comment

1 Comments

  1. Awesome resources DIY Electronics you are searching for something as simple as resin or a specialized tool like a high-quality 3D printer, DIY Geek carries a wide range of products including DIY electronics South Africa.
    We realize that DIY enthusiasts have a wide range of needs.

    ReplyDelete