I have an Ethernet shield on a mega board. The Ethernet board isn't being used right now (but may be if this Arduino doesn't catch on fire).
I have a 12 volt battery with the voltage dropped to 9 volts before connecting to the Arduino.
The Arduino powers a small, one inch speaker directly.
The 12 volt battery is also stepped down to 5 volts which powers 6 sonar, and two servos.
So, plugged into the Arduino, 6 Echo, 6 Ping, + Speaker on analog, - speaker to ground,
2 digital outputs to 2 servos.
My code pings using 6 sonar and reports the distances.
Base on an open path, a servo aims the robot to that path.
Then, the robot goes that way, etc. etc.
My point, it is simple. Why is my Arduino blisteringly hot? It's the chip just left of the power jack.
"I have a 12 volt battery with the voltage dropped to 9 volts before connecting to the Arduino."
Where on the arduino are you connecting this 9 volts? I assume to the VIN.
It sounds like the chip that is getting so hot is the voltage regulator (dropping the 9V down to 5V).
You may try reducing the 9v a couple more volts. Vin should work well down to 6v. I sometime use a couple or three silicon diodes to drop a little voltage.
"The Arduino powers a small, one inch speaker directly."
This could be a problem if this is a standard 8ohm speaker coil? Depending on your application, maybe a Piezo Buzzer, or Piezo Speaker, with a 100ohm resistor would be a good option.
I have the 9 volts on a 2.1mm center-positive plug, plugged into the board's power jack.
I think the VIN can only handle 5 volts.
So, I've tried 12 volts, too.
They say 7-12 Volts are ideal, but 12 volts gets things even hotter.
So, that's a 9 volts 3 amp power regulator supplying the Arduino. Another 3 amp power regulator supplying 5 volts to the sonars...
perhaps I should add, my compile shows plenty of memory left:
Sketch uses 99,134 bytes (39%) of program storage space. Maximum is 253,952 bytes.
Global variables use 4,093 bytes (49%) of dynamic memory, leaving 4,099 bytes for local variables. Maximum is 8,192 bytes.
oh, it is a 8-ohm speaker.
it is hooked up to the ground and to an analog output
I just tried 12 volts, again. I wanted to make sure it got hotter.
Ouch, yes, got way hotter than 9 volts.
I'm going to try 9 volts and no speaker...
Well, even after removing the speaker, it still gets just as hot. It was worth a try.
I'm giving up for tonight, but I'm sure I'll try removing the Ethernet shield next.
Removing the Ethernet shield would render my project useless, though. Maybe it's a bad one. It never stays connected longer than a couple minutes, and has very slow response times when it is (2 - 3 second).
I'd used an IR thermometer or even the back of your hand to carefully (without ESD) determine which item is hot then react accordingly.
Maybe adding multiple voltage regulators would reduce the load on each one? Or solder on a more heavy duty one. (Vet these answers with an electronics expert.)
"I just tried 12 volts, again. I wanted to make sure it got hotter. Ouch, yes, got way hotter than 9 volts."
Ok, the higher voltage you apply the hotter it gets. Now drop the voltage, and it should get cooler.
I believe the round power plug is the same as Vin. If you can drop it a couple volts, it may cool down a bit.
If you could reduce the power requirements of other devices/boards, from your arduino 5v, it would help also.
It is not a good idea to try to drive an 8ohm speaker coil from an output pin.
Have you tried powering the setup with the usb power from the PC? If that works, consider obtaining a good usb cellphone charger with 1 amp rating, or even better 2 amp rating.
@SurferTim, That a good suggestion, but the OP seems to be using a robot, not attached to the wall plug. But your idea of providing the 5V sounds sound. Maybe another 12v - 5v regulator ? What do you think?
Thank you. I have tried all usable power sources, keeping in mind I have to feed the Arduino over 5 volts. The Ethernet shield is one huge problem.
The Arduino, itself, is another.
I have been through 3 Ethernet shields.
Each one was overheating all my boards, mega and uno.
These Ethernet shields are made very poorly, my examples being "SainSmart Ethernet Shield W5100".
These forums have not been of any real help, but I appreciate the comments.
There is no real product support (from Arduino).
ALSO, these Arduino boards get overclocked so easily, what is the point?
Great learning for children, but not much good for any of my projects.
oh, it is a 8-ohm speaker.
it is hooked up to the ground and to an analog output
you have likely blown that output pin, and it's just a matter of time until the whole chip dies.
Replace the chip and add a series 120 or 125 ohm resistor when you use the speaker next.
The w5100 chip on the w5100 shield will run ~20 deg F. higher than ambient temperature. These w5100 chips use a lot of power. Anything else drawing power from the arduino may make the arduino regular chip run hot. For the bot you might get a UBEC power regulator to directly power the arduino from the battery.