Go Down

Topic: Arduino Uno voltage regulator gets hot when driving relay (Read 2740 times) previous topic - next topic


Im tryng to drive a relay with my arduino uno. Im using this circuit found on this page: http://www.glacialwanderer.com/hobbyrobotics/?p=9
Only difference is that im using 1N4007 diode what shouldnt make any difference and this relay: http://www.kysanelectronics.com/Products/datasheet_display.php?recordID=1225

Im powering my circuit and arduino from same 9v adapter and taking 3.3V for relay from arduino 3.3V output.

The problem is that when i power on the relay (turn arduino digital pin 3 high) the voltage regulator on arduino board gets really hot (http://www.advanced-monolithic.com/pdf/ds1117.pdf)

Is there something wrong with the circuit or should i use seperate power suplys?


How many amps of current are you drawing?

Data sheet says:

The AMS1117 series of adjustable and fixed regulators are easy to
use and are protected against short circuit and thermal overloads.
Thermal protection circuitry will shut-down the regulator should
the junction temperature exceed 165°C at the sense point.

The power dissipation of the AMS1117 is equal to:

PD = ( VIN - VOUT )( IOUT )

Maximum junction temperature will be equal to:

TJ = TA(MAX) + PD(Thermal Resistance (junction-to-ambient))

Maximum junction temperature must not exceed 125°C.

Thermal Resistance
Control Section -40°C to 125°C SO-8 package j JA= 160°C/W
Power Transistor -40°C to 125°C TO-252 package j JA= 80°C/W
Storage temperature - 65°C to +150°C SOT-223 package j JA= 90°C/W*
* With package soldering to copper area over backside
ground plane or internal power plane j JA can vary from
46°C/W to >90°C/W depending on mounting technique and
the size of the copper area.

Thermal Considerations
The AMS1117 series have internal power and thermal limiting
circuitry designed to protect the device under overload conditions.
However maximum junction temperature ratings of 125°C should
not be exceeded under continuous normal load conditions.
Careful consideration must be given to all sources of thermal
resistance from junction to ambient. For the surface mount
package SOT-223 additional heat sources mounted near the device
must be considered. The heat dissipation capability of the PC
board and its copper traces is used as a heat sink for the device.
The thermal resistance from the junction to the tab for the
AMS1117 is 15°C/W. Thermal resistance from tab to ambient can
be as low as 30°C/W.


That circuit is fine, and a 1n4007 diode is fine too. The problem is that the 5v version of that relay (which I assume is the one you are using) takes 100mA, and the voltage regulator has to pass all of that current. If the regulator gets too hot, it will partially shut down before it gets damaged.

If you want it to run cooler, there are a few solutions:

1. Use an external 5v regulator with a heat sink instead.

2. Use the 9v version of that relay instead of the 5v version, and power the relay from 9v instead of 5v.

3. Use a 5v relay that takes a lower coil current.

4. If you have connected the 9v adapter to the Vin pin of the Arduino, connect it to the barrel jack instead, so that the protection diode takes some of the power dissipation away from the voltage regulator. If you then connect 2 or 3 1n400x (x = 1 to 7) diodes between the 9v supply and the barrel jack, each diode will take some of the power disspation.

5. Depending on what you are using the relay to switch, you might be able to use a transistor or mosfet instead, or a solid-state relay (SSR). What are you controlling with the relay?

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.

Thank you for subscribing!

via Egeo 16
Torino, 10131