Author Topic: Can Heat from Heating Resistor Damage Arduino Board?  (Read 18794 times)

0 Members and 1 Guest are viewing this topic.

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Can Heat from Heating Resistor Damage Arduino Board?
« on: December 26, 2015, 11:30:59 am »
Hi all. Beginner question here

As part of a project I'm working on, I'm using a power film resistor to generate heat for a PID temperature control system. 

The heating resistor I'm using is the Caddock Electronics MP915-20.0-1%.  According to the datasheet, the MP915 part represents the model number, the 20.0 represents resistor value in Ohms (20 ohms), and the 1% represents the tolerance. 

I've been testing the resistor out in room temperature air and without a heat sink.  On page 2 of the datasheet, Caddock says that the MP915 is rated for 1.25 watts in these operating conditions. (Room temp and no heat sink) With Joule's Law (P=V*I), I've worked out that the maximum voltage for this resistor is 5.0 volts and the max current is 0.25 amps. 

I tried plugging the resistor into my Arduino's 5volt pin and ground pin.  The resistor heated up as expected, but the board also got very hot.  I am wondering if this can damage the board?

Are there other components I need to be aware of that I can use to stop the board from getting so hot? Or is this unavoidable?



Relevant Links:
The Digikey page is here:  http://www.digikey.com/product-search/en?keywords=MP915-20.0-1%25   

The data sheet for the whole family of Caddock resistors is here (there are a lot of them): http://www.caddock.com/Online_catalog/Mrktg_Lit/MP9000_Series.pdf


My setup:


« Last Edit: December 26, 2015, 11:41:06 am by Potomac »
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3275
  • Country: gb
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #1 on: December 26, 2015, 11:44:23 am »
The dissipation limit with no heat sink and 25C ambient is undoubtedly derived from the temperature the device will reach in these conditions, which will likely be close to the maximum permitted temperature of 150C.  If it mount something on a PCB that gets that hot, then inevitably nearby parts are going to get hot as well.  If semiconductor devices or electrolytic caps are nearby then you can expect reduced life, maybe greatly reduced.

Do you have to mount the resistor on the board, or could it be mounted remotely on wires?  Can't you use a heatsink?
 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #2 on: December 26, 2015, 11:51:57 am »
Thanks blueskull. Makes sense now about the power jack!

Mike, I think you may have answered before I uploaded that picture.  Does that answer the question about mounting them on wires?
« Last Edit: December 26, 2015, 12:00:22 pm by Potomac »
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #3 on: December 26, 2015, 12:24:50 pm »
Let's step back and review what is happening here....
We typically do not actually source power from the Arduino board for high current loads.
The Arduino board is not designed to be a power supply board. It is designed to be a micro-controller board.
The voltage regulator on the Arduino board is selected to provide power for the Arduino itself.
And maybe enough extra to drive small external loads. (Like a few LEDs, etc.)
But it is not designed to provide high-current output from the board to an external load.
Arduino is capable of controlling loads of monumental power.
However, we use external power-handling devices (transistors, thyristors, relays, etc.) to actually supply and switch high-power loads

The resistor heating up like that is normal and expected. That is what it is designed for.
Although pumping that much power into it without an external heat sink isn't doing it any great good.
Except for things specifically designed as heating elements, heat is generally an enemy of electronic and electrical components.

The on-board regular on the Arduino heating up like that is definitely NOT normal and expected.
It is a primary symptom of abuse above and beyond its design parameters.
As a general rule, do not use the Arduino board to supply power to external loads. Especially big ones like your resistor.
 

Offline retrolefty

  • Super Contributor
  • ***
  • Posts: 1648
  • Country: us
  • measurement changes behavior
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #4 on: December 26, 2015, 12:43:14 pm »
As said an arduino board is not designed to supply all that much extra current for external loads. The board by itself consumes  <50 ma. Your resistor is drawing around 250 mA. The excess voltage that the on-board 5vdc regulator has to consume is the reason for it running hot.

 One thing you might try if using external DC voltage is to lower the voltage to just above the input drop out voltage rating for the regulator, say 7vdc. This will relive the regulator so that it can pass higher current with less voltage drop.

 However the regulator on a arduino is still a limiting factor, so the best solution is to use your external DC voltage directly (via the Vin pin) for the resistor and let the arduino output pin drive a small logic level mosfet transistor and utilize PWM ( arduino analogWrite() ) as the temperature output command for your PID control sketch. You need a output pin switching transistor anyway as you can't drive 200 mA directly from an arduino output pin as it would damage the output pin rather quickly.


« Last Edit: December 26, 2015, 12:54:11 pm by retrolefty »
 

Offline MatthewEveritt

  • Supporter
  • ****
  • Posts: 136
  • Country: gb
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #5 on: December 26, 2015, 12:47:55 pm »
I wouldn't be surprised if the micro was heading up too - the current per pins in rated only at 20mA. Pulling more than an order of magnitude higher current is definitely not recommended.

In fact, the effective resistance of the arduino output is c.25 Ohms, meaning the micro is dissipating MORE power than the resistor.  You really need to look at buffering it with a transistor or relay.
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #6 on: December 26, 2015, 12:52:29 pm »
I wouldn't be surprised if the micro was heading up too - the current per pins in rated only at 20mA. Pulling more than an order of magnitude higher current is definitely not recommended.

In fact, the effective resistance of the arduino output is c.25 Ohms, meaning the micro is dissipating MORE power than the resistor.  You really need to look at buffering it with a transistor or relay.

@Allar8 would have blown an output pin if he had connected his load to it.  As you correctly observe, a load like that is orders of magnitude greater than what a micro-controller like that can handle.

However, he "only" connected his large load to the output node of the on-board power regulator.  That un-controlled output is capable of a much higher power capacity than any of the microcontroller output pins. Although the regulator chip heating is a primary symptom of drawing way more current through it than would be prudent and proper.
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3275
  • Country: gb
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #7 on: December 26, 2015, 01:08:18 pm »
Mike, I think you may have answered before I uploaded that picture.  Does that answer the question about mounting them on wires?

Yes I did, and yes it does!  The regulator is the part that's getting hot as blueskull says.
 

Offline alsetalokin4017

  • Super Contributor
  • ***
  • Posts: 2055
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #8 on: December 26, 2015, 05:31:55 pm »
So to be explicit about the solution to the "problem"...

One would use one of the PWM output pins to send a signal to the Gate of a mosfet, or to the Base of an NPN transistor (through the appropriate resistor). The Source of the mosfet or Emitter of the NPN will be connected to the Negative rail (ground) of the Arduino and the power source for the Heating Resistor. The Drain of the mosfet or Collector of the NPN will be connected to the low side of the Heating Resistor, and the high side of the Heating Resistor will be connected to the Positive rail of the power source for the Heating Resistor.

Then by using the analogWrite() statement to write some value from 0 to 1023 to the PWM pin, the average power to the Heating Resistor can be controlled.

The power source for the Heating Resistor can be the same as the power source for the Arduino, as long as it can deliver enough current. But this power must be taken in parallel to the Power IN plug for the Arduino, not from one of the Arduino's pins. One can also use an entirely separate power supply for the Heating Resistor, but both the Arduino supply and the separate supply must share a common ground (since the Source of the mosfet or Emitter of the BJT must be connected to the Arduino ground for the PWM signal to stimulate the transistor properly.)
The easiest person to fool is yourself. -- Richard Feynman
 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #9 on: December 27, 2015, 12:50:01 pm »
Thanks Richard, retrolefty, Matthew, and alsetalokin for your suggestions. And mike again.

I see what you are all saying about need for a driver for the heating resistor. And the need for a heat sink.

I went through a document I have describing a similar Arduino system that has 4 heating resistors. (Same model Caddock that I have)  The system includes 2 Arduino shield boards.  "Board #1" actually does include a driver for the heating resistor.  It connects to "Board #2" via a ribbon cable that has the 4 heating resistors. It also includes a large piece of aluminum as the heat sink. The heat sink is meant to warm up a container, which will be my application too.

I pasted an annotated picture below of the Arduino system in question

The driver on Board #1 to be a 16 pin driver made by Texas Instruments.  Unfortunately, the quality of the picture isn't great.  I can make out the state of Texas logo, but I can't make out the text of the model number.  Also, the document doesn't list the specific model.  (Really crappy documentation from the author, I know).

My questions now are:

1). Can anyone, by chance, make out the text of that Texas Instruments driver? Hoping someone with more experience than me can make a more educated guess.

2). If not can you suggest a specific FET or MOSFET or NPN to drive a single heating resistor that I can buy?  I just want something that I can test out the PID control system with, and get the hang for PID in general


(I'm posting the Digikey page again here with the heating resistor specs: http://www.digikey.com/product-search/en?keywords=MP915-20.0-1%25)




« Last Edit: December 27, 2015, 12:55:48 pm by Potomac »
 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #10 on: December 27, 2015, 02:23:07 pm »
Update. Think I may have located the Texas Instruments chip.  Does this seem like it could be the one to drive the heating resistor based on the specs?

SN754410NE:  http://www.digikey.com/product-detail/en/SN754410NE/296-9911-5-ND/380180

Also would still appreciate a FET/MOSFET/NPN/solid state relay recommendation just so I can get the hang of PID control of a single resistor
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #11 on: December 27, 2015, 05:15:25 pm »
Yes, that SN754410NE looks correct.  It was made for much more sophisticated things like H-bridge PWM control of speed and direction of a DC motor, etc.  It is rather over-kill for something as simple as driving a simple resistor heating element.  But it is cheap enough and will do the job.

If i were doing this I would use one of these...
http://www.allelectronics.com/make-a-store/item/tip120/npn-to-220-darlington/1.html
http://www.allelectronics.com/make-a-store/item/rfp15n05l/n-channel-mosfet/1.html

This is the general circuit.

Note that the heavy current never passes through the Arduino board.
« Last Edit: December 27, 2015, 05:20:24 pm by Richard Crowley »
 

Offline aaronwiz

  • Contributor
  • Posts: 11
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #12 on: December 27, 2015, 07:16:52 pm »
The arduino's maximum output current on a pin is something like 20mA, so definitely do not hook it directly to the heating resistor or you can fry your microcontroller.

Also ditch the BJT power transistor. For this application, there is little benefit to using a BJT. A mosfet is a far better choice. A BJT requires a large base current, has a higher resistance, requires a correctly sized base resistor, is more likely to require a heatsink, and can not handle as much current. Most of these drawbacks result in heating up the transistor rather than the load resistor.

Find any logic level n-channel mosfet that can handle the current you need. Hook the resistor to Vcc and the other end to the drain of the mosfet, then hook the source of the mosfet to ground. Connect the gate of the mosfet to the microcontroller pin through a ~200 Ohm resistor, and finally hook a ~10K resistor between the gate and ground to discharge any gate capacitance and you are good to go. You can switch very large loads, use analogWrite(), and draw very little current from the microcontroller pin.

Here is a good mosfet from sparkfun that will work well: https://www.sparkfun.com/products/10213.
 

Offline alsetalokin4017

  • Super Contributor
  • ***
  • Posts: 2055
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #13 on: December 27, 2015, 08:02:59 pm »
You don't even need a logic level mosfet. The IRF3205 will work fine in this application with 5 v supplied to the Gate. Other mosfets can be used as well; you are looking for a low Rdss ON in the specs.


Here's a video I made about three years ago, using a PID system on Arduino to power a heating resistor, switched by a mosfet. The mosfet I used here is a silly choice but works nevertheless. Sorry about the poor video quality, I was using an inferior transcoder at that time.



This project eventually resulted in a complete Sous Vide PID temperature-controlled cooking system using a standard crock-pot. (Maybe that's why I was using the big power mosfet ... )


The easiest person to fool is yourself. -- Richard Feynman
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #14 on: December 27, 2015, 08:16:08 pm »
@alsetalokin4017, so what do you cook with Sous Vide?
Didn't you need a thyristor (SCR or Triac) to control the mains voltage for a crock-pot?
 

Offline alsetalokin4017

  • Super Contributor
  • ***
  • Posts: 2055
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #15 on: December 27, 2015, 09:00:26 pm »
@alsetalokin4017, so what do you cook with Sous Vide?
Didn't you need a thyristor (SCR or Triac) to control the mains voltage for a crock-pot?

I've cooked eggs, sausages, chicken, steak, etc. with it. It works pretty well, actually. I haven't used it in some time though.

Heh... as for the power section... Of course using a thyristor would be the "right way" to do it.... but...... you made me get it off the storage shelf and look!

Turns out I used some crazy FWB modulation scheme, where the AC inputs to a FWB are in series with the AC line to the crockpot, and then the mosfet is used to short out the DC output of the FWB, which has the effect of toggling the AC input to the bridge somehow, effectively interrupting the circuit to the crockpot.  :palm:   Don't ask me where I got this crazy idea. The Gate of the IRFP460 mosfet is driven by an optoisolator module, itself driven from the Arduino.  I know, I know, it's totally nutso, but it does actually work just fine.

Here's a photo of the power section. The silver box on the left is a standard fused power-entry line filter module, with an on-off switch. The crockpot itself connects to the black barrier strip at top.  The FWB and mosfet share a common heatsink. The Arduino and LCD display are normally on the right side but are missing, in use in some other projects at the moment. Two 10-turn pots with turncounting dials are used to set the desired temperature and an overtemp alarm, out of sight on the right side of the board.
The easiest person to fool is yourself. -- Richard Feynman
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #16 on: December 27, 2015, 09:11:16 pm »
I have a Sony TC-850 reel-to-reel tape recorder (which I bought new as a college student back in the 1960s). It actually uses a FWB and a TO3 transistor (like a 2N3055, etc.) on a big aluminum plate as an AC "series pass" resistor to control the speed of the capstan motor. It had a speed sensor on the capstan flywheel to complete the servo loop.  The speed sensor was a bunch of notches cut into the flywheel and a coil of wire around a magnet making a sort of "variable-reluctance" sensor.

That is the pass transistor and the big plate "heat sink" just to the left of the power transformer.


 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #17 on: December 28, 2015, 12:50:25 am »
Hey guys, OP again

Here's the only MOSFET I was able to dig up in my parts box.  It's a Vishay IRLZ34-ND:  http://www.digikey.com/product-detail/en/IRLZ34/IRLZ34-ND/51137

Will it work? Is the rds too high at 50 mOhm? (Compared to 8 mOhms in the IRF that alsetalokin linked to: http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail&itemSeq=186582910&uq=635868387670806636)

Otherwise, I'll check out my local Radioshack tomorrow so I don't have to wait for a Digikey shipment. 
« Last Edit: December 28, 2015, 12:52:04 am by Potomac »
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4317
  • Country: us
  • KJ7YLK
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #18 on: December 28, 2015, 01:21:48 am »
I don't see any reason why it wouldn't work.
If your load is drawing 250mA, and your transistor is only 50mOhm,
then Ohm's Law says the transistor is only dissipating 3mW.
So I wouldn't expect that to be any kind of problem.
 

Offline aaronwiz

  • Contributor
  • Posts: 11
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #19 on: December 28, 2015, 01:45:09 am »
Hey guys, OP again

Here's the only MOSFET I was able to dig up in my parts box.  It's a Vishay IRLZ34-ND:  http://www.digikey.com/product-detail/en/IRLZ34/IRLZ34-ND/51137

Will it work? Is the rds too high at 50 mOhm? (Compared to 8 mOhms in the IRF that alsetalokin linked to: http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail&itemSeq=186582910&uq=635868387670806636)

Otherwise, I'll check out my local Radioshack tomorrow so I don't have to wait for a Digikey shipment.
This is an absolute perfect fit for your application and it is indeed a logic level mosfet (notice how Rds On is specified at 5V?). You should be able to power loads up to tens of amps without a problem, let alone the < 1A you are looking for. Just remember if you ever replace the resistor with an inductive load (such as a motor), be sure to to add a flyback diode across the load, as mosfets are very sensitive to voltage spikes.
 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #20 on: December 28, 2015, 06:49:04 am »
OK so I set up the MOSFET circuit and loaded up some PWM code. (Power source is a cell phone charger sized AC-DC converter that I stripped down and tapped into with alligator clips. Running at 4.5 volts and 1 amp) 

However, no sign of any PWM whatsoever.  The resistor just heats up and stays there. 

I had programmed the loop to gradually heat up to 100/255 heat, then hold for 10 seconds, then cool down all the way and hold that for 10 minutes. What I got instead was a resistor that heated up to the maximum, and stayed that way the entire time. No drop to zero.

I'm at a loss for what I did wrong. It must be a rookie mistake with the breadboard wiring or the code. Not sure which

I pasted some pictures below.






This is the circuit drawing again







Here's the code I used


int heaterPin = 3;    // heating resistor connected to digital pin 3

void setup() {
}

void loop() {
  // fade in from min to max in increments of 5 points:
  for (int fadeValue = 0 ; fadeValue <= 100; fadeValue += 5) {
    // sets the value (range from 0 to 255):
    analogWrite(heaterPin, fadeValue);
    // wait for 10 secs to see the dimming effect
    delay(10000);
  }

  // fade out from max to min in increments of 5 points:
  for (int fadeValue = 100 ; fadeValue >= 0; fadeValue -= 5) {
    // sets the value (range from 0 to 255):
    analogWrite(heaterPin, fadeValue);
    // wait for 10 minutes to see the dimming effect
    delay(600000);
  }
}


 

Offline hamster_nz

  • Super Contributor
  • ***
  • Posts: 2803
  • Country: nz
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #21 on: December 28, 2015, 07:39:35 am »
Have you set the pin to be an output pin? Look at an example to find out how to do this in the setup() function.
Gaze not into the abyss, lest you become recognized as an abyss domain expert, and they expect you keep gazing into the damn thing.
 

Offline jancumps

  • Supporter
  • ****
  • Posts: 1272
  • Country: be
  • New Low
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #22 on: December 28, 2015, 08:26:50 am »
You may want to put a resistor between arduino output and the gate of your fet. 220 ohm is an often used value, as suggested earlier in this thread.
 

Offline alsetalokin4017

  • Super Contributor
  • ***
  • Posts: 2055
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #23 on: December 28, 2015, 01:17:54 pm »
1. In setup(), include the statement
pinMode(heaterPin, OUTPUT);

2. For testing purposes, use an LED + 220 ohm resistor in series, instead of the heating resistor (in correct polarity of course). Change both delay() statements to delay(100). Then see if the LED dims and brightens.

Ah...the second delay() statement is inside the dimming for() loop, so it is waiting ten minutes each time it goes through that loop.
Your code is waiting _10 minutes_ between each decrement value for the fade-out, because of the delay(600000) statement. So unless you are incredibly patient you won't be noticing the resistor cooling very much.
If you want a delay between heating cycles, put a delay() statement outside the for() loop (that is, between the last set of curly brackets) not inside it, and use a smaller delay() value inside the loop.

(This is probably why the mosfet is staying on --- assuming the mosfet is actually good and not shorted internally. You are telling it to stay on in the code! )



3. The Gate pulldown resistor is too small. You may not need any pulldown at all (infinite resistance) but 100k is probably OK.


4. Use a 10 ohm to 100 ohm (or even 220 ohm) resistor between the Arduino heaterPin and the mosfet Gate.




The easiest person to fool is yourself. -- Richard Feynman
 

Offline PotomacTopic starter

  • Regular Contributor
  • *
  • Posts: 71
  • Country: us
Re: Can Heat from Heating Resistor Damage Arduino Board?
« Reply #24 on: December 28, 2015, 06:48:42 pm »
Hey alsetalokin4017.  I'm able to get PWM working on an LED with that code fine by plugging directly into pin 3 (with a resistor) and ground.

Something seems to be wrong with my heating resistor MOSFET circuit though. I'm not sure what it is.  I'm getting the same results --- just stays hot. Does not cool down.  I made the changes you suggested to the resistors. Did I translate the changes you had in mind properly in the Fritzing diagram below? (It's how I have my board set up)



The code I used this time





int heaterPin = 3;    // heating resistor connected to digital pin 3

void setup() {
pinMode(heaterPin, OUTPUT);
}

void loop() {
  for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
    analogWrite(heaterPin, fadeValue);
    delay(100);
  }
 

 

  for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
    analogWrite(heaterPin, fadeValue);
    delay(100);
  }
    delay(10000);
}
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf