Let me preface by saying my knowlegdge on how to design electrical circuits is really poor, so any efforts you can make to dumb down the language you use is greatly appreciated.
I am using a relay (switched closed or open using Arduino code) to turn a heating element on and off. The Arduino portion is actually not really the problem. This is more of an electronics question.
My relays keep getting destroyed despite being rated much better than what the wall outlet can deliver (I've tried 3 different types of relays now, and they all work fine for other applications).
This leads me to believe that the heating element is the problem -- something with charge build up or maybe how often the relays open and close [every few seconds]. Is there a type of relay I can use to avoid this problem, or do I need to be a little more fancy with my electrical circuit and add some resistors/capicitors or something? Right now my setup is as simple as you can imagine --> Arduino is on a circuit with the part of the relay that opens or closes the higher power circuit and the wall outlet power/ground and the heating element are the only things in the high power circuit.
More specific info, please. Heater Wattage, Heater Voltage. I suspect 1500W, 120V, but you know, we don't.
edit: Apologies, missed the link to McMaster -Carr. With that load, it's more likely either surge current(cold resistance may be much lower than warm), or cycle-count.
I can understand what is happening and also have several possible clues as to what is happening. Sorry but you need to post a schematic showing your circuit and also what @camsysca is asking for.
The wall outlet can probably deliver 10000A, at least for a fraction of a second before the circuit breaker trips, but that's irrelevant, what matters is how much current the load takes. As you have a 120V supply (I assume) and the heater takes 325W the load will be just under 3A.
The relay you linked to is rated for 1A, so you are overloading it by about 3 times. You need a relay rated for more than the load, not less. Switching it every few seconds is also going to wear out the relay quickly, I suggest a solid state relay would be more appropriate.
Edit:
I've had another look at the relay you linked to: at the top it says 30A, further down it says 1A. From the appearance of the relay I would not expect it to be capable of 30A. In any case, if the description shows 2 very different specifications then it can't be trusted.
It also says the contacts are aluminium, that in itself is reason not to trust the relay.
Possible, the relay will have a # of operations rating. If 'few seconds' is accurate, you may exceed that rating in 2-3 days.
Again, more info, please. Does it die in minutes, hours, days, or weeks? It is relevant.
What's powering the 'control side' of the relay? Arduino's 5V output? I see there's no indication of what current the relay coil will draw. While not likely germane to your contact burnup, it's generally a bad idea to run this style of relay from the 5V output, unless you always power the board from your USB.
I love this community; thanks all for the rapid responses! This is really helpful. And apologies for not including enough info on my first go around.
I will try to produce a circuit schematic later today when I have the chance (I'll try something in MS paint but if anyone has recommendations for free circuit schematic generating software with a low barrier to entry maybe I'll use that instead!).
More quick details I can add for now: Relay is cycling open/closed about every 1 second, dying after ~2-3 weeks (seems to be reproducible, as 2 relays died over a similar timescale). The Arduino board is always powered by a dedicated computer USB.
For those who suggested solid state relays, can you provide a link to something that can give me a sense of what I might be looking at in terms of specs/cost, preferably something I can still power the closed/open circuit in the same way (with the 5v Arduino output)?
KiCad.
Or if you don't want to learn that then you can get pointed sticks that leave black marks on papyrus, photograph the result. Seriously, pencil and paper is fine.
Once per second is going to kill a relay pretty quickly, I'll leave the recommendations for solid state relays to others.
Yep. 86400 contact arcs per day will do it*. Simply put, your contacts will melt. While RC snubbers might prolong the survival time quite a bit, I think it's a foregone conclusion that this will be a band aid, not a cure.
I'd go with something along the lines of:
You will note that this has a smooth metal backplate. At higher currents, the device must be mounted to a backplate, or even better, a heatsink, to remove heat from the body. In my experience, your application may not require that, but it would be good to mount it to a chassis, at least, and 'finger-test' the chassis at a time when the output is all, or mostly, on, to get an idea of how warm it gets.
Beware of one thing - they don't give an input current rating for the '3-32VDC' control signal. Your Arduino won't like a load much beyond 20-25 mA(it depends on whether you've any other loads on other outputs, not just the single output used to drive this module).
Since they give you no indication, it would be wise to test it before hooking it to your Arduino output and "hoping for the best". If you have a DMM, use it in mA mode, with a 9V battery for source, and measure the current drawn by the input of the module. Nothing needs to be connected to the outputs.
If that sounds daunting, ask for more details. If you don't have a DMM, then you're going to have to just try it. It's unlikely the module will draw much more than your present relay module, but it might.
Others will no doubt have better advice, or suggestions for cheaper sources.
although, I doubt they're opening and closing that often, unless your algorithm has zero hysteresis and is bobbling around some setpoint vs analog reality transition; that should be fixed anyways, regardless of control method for the heater.
Thanks! This is really helpful. I will work to improve my algorithm so that there they relay is experienceing fewer open/close events in parallel to making hardware upgrades.
The next phrase give the current Control Current: DC: 3-25mA . The input is typically and LED with a series resistor, so the higher current will be with the higher input voltage. I suspect with a 5V input the current would be in the 5-7 ma range.
My fault, chose one image on Amazon, the listing had no current rating, found a better one, didn't cross-check. D'OH, Homer's Irish cousin at work!
You're right, that one SSR would be fine. However, the OP will need to check whatever product is chosen to ensure the current is acceptable, if it's even given.
I guess that you are also measuring the temperature somehow and controlling it using the heating element which is powered via the the relay to adjust it. If that is the case then add some hysteresis so that the relay is not switching so often. For example switch the heater on when temperature X has been reached and switch it off when temperature X + 3 has been reached. Show the code that you are running on the Arduino for suggestions.
As with any load you place on an Arduino output. 20 mA max under normal conditions. You can get away with a bit more, but you start to run risks, particularly if your driving more than one such device. Better to just not 'walk the edge'.
And, always be aware, I'm talking about a particular Arduino, the venerable '328P. Many devices in the family have lower output pin current limits; best to check the Arduino literature carefully, even better to check the datasheet of the processor you are using. Assumptions fry chips.
A bigger hammer is not always better. Yes, that might help, but only tangentially. It might have more surface area, and therefore run cooler at a given output current.
Some words about SSR inputs. Generally, think of them as a resistor in series with a light-emitting diode. At their lowest input voltage, for example 3V, the resistor limits the input current to (3-VLED)/R; we don't know what the VLED is, but if we assume 2V, and R = 1000, we have 1 mA through the LED. At 32V, the LED is seeing (32-2)/1000, or 32 mA. It's probably designed for that, but effectively, that's a 32:1 current range, over which the output stage must remain on. Remove the input current, the output stage must pass no more than the stated leakage current.
Off leakage current: 2mA
Now, beware of that leakage current. NEVER touch the output screws of the device, or wires connected to them, when line voltage is connected, because that available leakage current can give you a nasty jolt. Assuming "oh, the output is off, I removed the drive signal, I can make that change without disconnecting", is a bad, bad move.
Note, 7.5 mA at 12V implies 10V/0.0075 = 1333 ohms, so at 5V that particular SSR will draw (5-2)/1333 = 3.75 mA. Back of the envelope, but good enough to say you're quite safe to drive that from most/all Arduinos.
If this isn't an Uno/Nano, check the output rating of your particular flavor of processor.
OK thanks all! You've given me a lot of options and good advice to improve my system. Will adjust the code for fewer open/closed events and will carefully employ an SSR relay. Cheers!
As for safety, since I'm a bit of a newb, I always unplug everything in sight before I do any tinkering.