Current Sources in Arduino
Multiple sources of current are present in Arduino, so it has different limitations depending upon the sources that are drawing current. To understand Arduino current parameters, we must first understand all the available current sources in Arduino where devices can draw current. To power Arduino following three sources are used:
- USB Port
- DC Barrel Jack
- Vin Pin
Three sources mentioned above can take input from different sources like USB ports can take power from PC USB 3.0/2.0 ports. Similarly, a DC barrel jack and Vin pin can take power from an external supply such as a 9V battery or DC plug wall adapter or an old computer supply. So, these three sources give output current depending upon the input. Let’s discuss the maximum possible drawn current through these sources.
USB Port
USB Type-B port is the most common and basic way of powering Arduino. One just needs a USB cable to power it using any PC port or a power bank that supports USB cable. USB power is considered as the safest way to power Arduino as it gives Arduino a regulated constant 5V with optimum current.
Current Limit of USB Port
When the Arduino is taking power from the USB port the maximum amount of current according to the Arduino datasheet it can draw is 500mA. Due to the USB interface and serial communication this current is set to a lower limit than the other two sources of power for Arduino. Input power is shared among the Arduino onboard peripherals so at the end, net available current for the external circuit is somehow less than the input drawn current. Arduino recommends not to draw more than 400mA of current using the USB source as continuously drawing more current can damage the Arduino board.
Input Voltage | Max Current Drawn |
---|---|
5V | 500mA |
USB Overcurrent Protection
Along with the USB interface Arduino has assembled an on-board Resettable Polyfuse that can protect Arduino from any kind of overcurrent spikes. If Arduino output pins draw more than the safe limit of current that is 500mA then this polyfused will trigger itself and cut off the input power from the USB port. This fuse uses thermal property for its functioning as it is a thermal fuse. So, once it resets it takes some time to get into original condition until then the Arduino will remain turned off.
DC Barrel Jack
Multiple Arduino boards come with a DC barrel jack that increases the number of ways for powering Arduino. This jack comes in handy when we need to increase output current limit of Arduino, or some heavy load is connected across it. DC barrel jack input pin is connected to onboard voltage regulators.
DC barrel jack can take input voltage of somewhere between 7-16V with rated current of up to 1A. However, it’s not recommended to give input voltage of more than 12V as it can heat up voltage regulators which result in Arduino power off. Output of the 5V regulator is given to 3.3V regulator which further reduces it down. To get these two output voltages a separate pin of 5V and 3.3V is present above analog pins on the Arduino board.
Current Limits of DC Barrel Jack
As DC barrel jack input is directly connected to voltage regulators so current limits of DC jack is also determined by these two regulators:
- 5V Regulator
- 3.3V Regulator
5V Regulator
Unlike USB ports, 5V regulators are not limited to 500 milli ampere of current. Using an external power source, it can give up to 1A of current. Drawing current more than 1A is not possible because the voltage regulator Arduino has is rated at maximum value of 1A. Also because of thermal limiting of voltage regulator drawing more current will heat it which sets Arduino board for temporary shutting down. Technical specifications of 5V voltage regulator:
5V Regulator | NCP1117ST50T3G |
---|---|
Output Volts | 5V |
Max Input Volts | 20V |
Min Input Volts | 6.5V |
Max Output Current | 1A |
3.3V Regulator
Output from the 5V regulator is given to the 3.3V regulator. It reduces 5V further to 3.3V with rated current of 150mA. Some technical specifications are:
3.3V Regulator | LP2985-33DBVR |
---|---|
Output Volts | 3.3V |
Max Input Volts | 16V |
Min Input Volts | 3.9V |
Max Output Current | 150mA |
Vin Pin
Vin pins on Arduino can take input power as well as act as power source for external circuits. It works in a dual way.
Current Limit of Vin
Current limit of Vin pin is somehow like DC jack, as input of both are connected to on board voltage regulators. So, Vin pins have a maximum current rating of 1 Ampere.
Note: Vin power does not offer any reverse current protection like in DC barrel jack so double check the connection before powering Arduino.
Vin Voltage | Maximum Current |
---|---|
7-12V | 1A |
I/O Pins Current Limits
40mA is the maximum amount of current one can draw from a single Arduino I/O pin. Total current from all I/O pins should not be more than 200mA, as Atmel no longer guarantees working of controllers after this limit.
Drawing current more than 40mA from an I/O pin can damage them as there is no current protection there.
Conclusion
To control multiple devices using Arduino we must keep an eye on Arduino safe current limits. It has three different sources of current; it can give a maximum of 1A of current through a 5V output pin while I/O pins are limited below 40mA. As drawing more current can damage these pins permanently. Here we discussed individual current parameters of all three sources.