4
\$\begingroup\$

I’m encountering an issue where one of my Arduino boards, specifically “Arduino 1” in the schematic attached below, is getting very hot shortly after powering up. I’m concerned that something in my circuit might be causing this, but I’m unsure what it could be.

Project Details:

  • Arduino Board: Arduino Uno R3 (labeled “Arduino 1” in the schematic)
  • Power Source: 12V DC input connected to the barrel jack.
  • Connected Components:
    • A relay (Finder 36.11.9.003.4011)
    • A Peltier element controlled via a MOSFET (IRLZ44N) with a heatsink
    • A MAX31865 sensor interface
    • An LED panel connected through a DD-10-10P-PWM module
    • Some other standard connections like resistors, capacitors, and LEDs

Symptoms:

  • “Arduino 1” gets noticeably hot, particularly around the voltage regulator and the microcontroller, within a couple of minutes after powering up.
  • The rest of the components seem to work as expected.

What I’ve tried:

  • Double-checked all wiring for possible shorts or incorrect connections.
  • Disconnected peripherals one by one to isolate the problem, but the Arduino still gets hot.

Attached Schematic: enter image description here

Questions:

  1. Is a specific component or connection in the schematic causing this issue?
  2. I am still determining my design, which uses common ground for power and digital circuitry. Can this be problematic?

I’d greatly appreciate any insights or suggestions.

\$\endgroup\$
3
  • \$\begingroup\$ Is the load inductive or capacitive? \$\endgroup\$
    – D.A.S.
    Commented Aug 10 at 21:44
  • 3
    \$\begingroup\$ Use a 12V relay with a 30mA coil (same series), not a 3V relay, and drive it from a transistor, eg. 2N4401 with a base resistor. And put a diode (eg. 1N4148) across the coil. You're inviting early failure of the regulator and eventual death by electromigration of the ATMega. See Tom's analysis of why these parts are being stressed. \$\endgroup\$ Commented Aug 11 at 0:11
  • \$\begingroup\$ You shouldn't need to connect the 5V rail from the USB as you already have a 5V power source in parallel from the on-board regulator that is fed from the 12V at VIN. If you do want to allow it to be USB powered while 12V is not available, you should have a diode to prevent back-feeding power over USB when the 12V is attached. Really, in this case there should also be a diode after the regulator as well, but that doesn't seem to be present on the Uno Rev3 boards, at least. \$\endgroup\$
    – penguin359
    Commented Aug 11 at 21:06

2 Answers 2

10
\$\begingroup\$

The first thing of note is that you're trying to drive a 3V relay directly from the 5V output pin of the Arduino.

From the relay datasheet, the relay coil is 25R:

Coil specifications

With a 5V supply, you'd be trying to drive 200mA from the IO pin which is far too high for the Atmega to cope with. Use a transistor to drive the coil to avoid damage. It also exceeds the relay coil ratings.

Note that the 3.3V supply from the Arduino shouldnt be used for driving the relay with the transistor as it likely won't be able to supply enough current. Use the 12V rail and a resistor of 75R to drop the voltage to an appropriate level for the relay you have (see below for why not to use the 5V rail), or use the 12V variant from that series if you have one.


The side effect of driving this relay is that you are powering it via the linear regulator on the Arduino. With a 12V input the power dissipation in that regulator will be 7V times any current you draw. If you did manage 200mA from the IO pin, that would equate to 1.4W dissipation in the regulator - that will cause it to heat up considerably with no additional cooling.

From experience the IO pins generally top out a 90mA due to internal resistance, but that is still 0.63W due to the relay coil alone. Add on the MCU and other gubbins and you're likely still drawing over a watt, which will still heat up the regulator.

Depending on the temperature, this may be normal/acceptable level of heating. You'd have to check the temperature rating on the regulator on the Arduino.

\$\endgroup\$
1
  • \$\begingroup\$ Hello Tom, thank you for your explanation. I have tried to reduce input power and managed to reduce heating. For this purpose, I have attached a small thermocouple to the miniature heatsink mounted on the back side of the Arduino. Here are the results: Ambient temperature: 24 Celsius Regulator temperature after stabilizing for a few minutes: +12V power: 41 Celsius; +9V power: 33 Celsius; +7V power: 28 Celsius; Also tried to leave the relay on, but the temperature of the regulator remained the same, hence there is no measurable change in the heat dissipation from the coil current \$\endgroup\$
    – Stevan
    Commented Aug 12 at 15:27
0
\$\begingroup\$

Adding to Tom Carpenter's answer: Arduino boards have small regulators so you should take care to minimise the 5V current draw or add your own 5V regulator to your board, possibly with a heatsink. I'm fairly sure the Arduino primary rail is 5V and the 3.3V is a secondary, low current, output.
The pic (from the web) shows in general how to use a transistor to drive your relay - the flyback (or freewheel) diode is especially important. A series resistor will work but will dissipate 1.8W however you can connect the relay directly to 12V if you PWM it with a 25% duty cycle. Just ensure your software is reliable and doesn't lock up with the transistor on! transistor driving relay

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.