Safety concerns about generic Arduino relay modules

Hello, I have bought the following opto-isolated 5V relay module: http:/https://www.aliexpress.com/item/33028719736.html?spm=a2g0o.productlist.0.0.13bf3b24E0zvwH&algo_pvid=20bb5a1d-61ce-4478-98a7-045d9fda3c91&algo_expid=20bb5a1d-61ce-4478-98a7-045d9fda3c91-10&btsid=0b0a555516097759226435963ec385&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

My project consist of switching mains powered heater motor, which rated current consumption is 0.23A at 220V. I am going to put this module with the rest of my circuit into a plastic enclosure. Is this module safe to use with mains voltages? I have looked at the back of the pcb and it has large enough gap between the high voltage connection for the relay and the low voltage side.

That relay module looks suitable.

garabetov:
Hello, I have bought the following opto-isolated 5V relay module: http:/https://www.aliexpress.com/item/33028719736.html?spm=a2g0o.productlist.0.0.13bf3b24E0zvwH&algo_pvid=20bb5a1d-61ce-4478-98a7-045d9fda3c91&algo_expid=20bb5a1d-61ce-4478-98a7-045d9fda3c91-10&btsid=0b0a555516097759226435963ec385&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

My project consist of switching mains powered heater motor, which rated current consumption is 0.23A at 220V. I am going to put this module with the rest of my circuit into a plastic enclosure. Is this module safe to use with mains voltages? I have looked at the back of the pcb and it has large enough gap between the high voltage connection for the relay and the low voltage side.

If creepage and clearance checks out to IEC60950 (e.g.) and the relays themselves are properly rated and marked you should be good vis. the relay board.

Note that inductive loads like a motor can lead to arcing in relay contacts and shorten their life.

Be sure to ensure that all upstream protections (e.g. circuit breaker) are in place and that you use interconnection wires of a suitable gauge and insulation thickness. If the downstream equipment is not double-insulated (i.e. requires a protective earth connection) make sure your earth connection is high quality and redundantly secured.

Also, think about a hazard analysis: What happens if the blower motor stays on (relay contacts welded) or fails to turn on (relay or logic failure)? Are there independent protections in the heater to prevent, for example, overheating of the element if the fan fails to turn on?

@Blackfin
You're completely right. The default for the fan relay should be NC. Then the fan by default is blowing, preventing heater overheating in case of controller not running.
Detecting, verifying that the fan actually is running, and if not, a way to switch the heater off is highly advisable.

Relays are isolated (as long as you wire it correctly) so they are generally safe. But, I don't completely trust anything from Aliexpress, eBay, Alibaba, 3rd-party Amazon suppliers, etc.

Blackfin:
If creepage and clearance checks out to IEC60950 (e.g.) and the relays themselves are properly rated and marked you should be good vis. the relay board.

Note that inductive loads like a motor can lead to arcing in relay contacts and shorten their life.

Be sure to ensure that all upstream protections (e.g. circuit breaker) are in place and that you use interconnection wires of a suitable gauge and insulation thickness. If the downstream equipment is not double-insulated (i.e. requires a protective earth connection) make sure your earth connection is high quality and redundantly secured.

Also, think about a hazard analysis: What happens if the blower motor stays on (relay contacts welded) or fails to turn on (relay or logic failure)? Are there independent protections in the heater to prevent, for example, overheating of the element if the fan fails to turn on?

I am attaching photos of the module showing the clearances. To assume safety with this module - if I use 2 DC supplies - one for the Arduino and one for powering the relay board, I should have complete isolation from the low and high voltage sides through the opto-couplers? Can I fuse the low voltage side for added protection? For the welding of contacts you are right, I should implement a snubber across the relay contacts to minimise arcing. Assuming that this relay really can handle 6-7A even if I double my current draw from the blower motor ( taking into account inrush current ) it should work in its limits ( I have tested it already and it doesn't have a problem switching on/off the motor). Are there better solutions to switch AC ? As far as I have found, only these relay modules are available. Should I forget about them and better create my own PCB and include more reputable relays and make sure to include huge distances between high/low voltage sides?


garabetov:
I am attaching photos of the module showing the clearances. To assume safety with this module - if I use 2 DC supplies - one for the Arduino and one for powering the relay board, I should have complete isolation from the low and high voltage sides through the opto-couplers?

You can use the same power supply for the Arduino and to power the logic-side of the relay board (the opto-isos and relay coils.)

Can I fuse the low voltage side for added protection?

Do you mean the interface to the Arduino? If so, I'd say there's no benefit as long as the power supply for the Arduino/relay board logic-side is power-limited. So if the supply is capable of 20A of DC output, yes, you might want to fuse that. But if the supply is capable of only 500mA and has, say, crowbar OC protection then, no, I wouldn't bother.

For the welding of contacts you are right, I should implement a snubber across the relay contacts to minimise arcing. Assuming that this relay really can handle 6-7A even if I double my current draw from the blower motor ( taking into account inrush current ) it should work in its limits ( I have tested it already and it doesn't have a problem switching on/off the motor). Are there better solutions to switch AC ? As far as I have found, only these relay modules are available. Should I forget about them and better create my own PCB and include more reputable relays and make sure to include huge distances between high/low voltage sides?

Try an experiment: Assuming the blower motor still has an AC plug on the end of its power cable, what happens when you plug it into a wall outlet? Do you see and/or hear the familiar arcing as the contact is made? If so, you can assume that will happen inside the relay each time it switches. You can try adding a snubber but make sure you use components rated for considerably more than the peak voltages seen on the mains.

You can consider replacing the electromechanical relays in favor of an SSR (solid state relay) such as this one from Sparkfun:

A custom PCB is an option but you really should understand applicable safety standards such as 60950 that might apply when designing mains equipment. TBH, I'd try the SSR before spinning a custom PCB.

Blackfin:
You can use the same power supply for the Arduino and to power the logic-side of the relay board (the opto-isos and relay coils.)

Isn't this going to bypass the opto-isolation, making the arduino vulnerable to spikes from the AC side?

garabetov:
Isn't this going to bypass the opto-isolation

Yes, kind of.

making the arduino vulnerable to spikes from the AC side?

No - The relay defends you against that, but there will be spikes from the relay coil to contend with. It looks like you have diodes on your relay board to deal with that.

Relay boards like that (and it looks like yours is no exception) have a jumper that lets you power the relay coils from a shared supply as Blackfin suggests or you can separate them so that the Arduino only has to power the optoisolator LED. My preference is for the latter method, but they are designed to be used either way.

wildbill:
Yes, kind of.No - The relay defends you against that, but there will be spikes from the relay coil to contend with. It looks like you have diodes on your relay board to deal with that.

Relay boards like that (and it looks like yours is no exception) have a jumper that lets you power the relay coils from a shared supply as Blackfin suggests or you can separate them so that the Arduino only has to power the optoisolator LED. My preference is for the latter method, but they are designed to be used either way.

So as far as I understood, leaving with only 1 power supply for powering both the Arduino and the relay module, won't give me the full opto-isolation and I risk frying the Arduino like this? Going with 2 separate power supplies is an overkill for my project. I have looked at the option of using a solid state relay and will this configuration work as proposed in the following diagram? Do I need to use a flyback diode as it was used in the mechanical relay module?

We assume that for switching AC inductive loads its much better to use SSR, since we eliminate the problem of contact welding in mechanical relays due to arcing. Am I on the right track?

garabetov:
So as far as I understood, leaving with only 1 power supply for powering both the Arduino and the relay module, won't give me the full opto-isolation and I risk frying the Arduino like this? Going with 2 separate power supplies is an overkill for my project. I have looked at the option of using a solid state relay and will this configuration work as proposed in the following diagram? Do I need to use a flyback diode as it was used in the mechanical relay module?

We assume that for switching AC inductive loads its much better to use SSR, since we eliminate the problem of contact welding in mechanical relays due to arcing. Am I on the right track?

You switching circuit looks good. You may even be able to directly connect the SSR pin 3 (+) to a pin on the Arduino and SSR pin 4 to logic GND and still have it work since the SSR turns on at 2.4V.

You might consider a fuse in the fan circuit that is more closely matched to the fan and wiring if the mains circuit breaker is considerably larger than the draw expected from the fan.

Blackfin:
You switching circuit looks good. You may even be able to directly connect the SSR pin 3 (+) to a pin on the Arduino and SSR pin 4 to logic GND and still have it work since the SSR turns on at 2.4V.

You might consider a fuse in the fan circuit that is more closely matched to the fan and wiring if the mains circuit breaker is considerably larger than the draw expected from the fan.

Why the need of a fuse on the load side? (it is the 0.23A AC blower motor, not a fan - the diagram was taken from somewhere else just for showing my approach). If I am using a 20A rated SSR, will it be unnecessary to use a fuse ? Again I am not sure, will this setup protect my Arduino and low-voltage side?

garabetov:
Why the need of a fuse on the load side? (it is the 0.23A AC blower motor, not a fan - the diagram was taken from somewhere else just for showing my approach). If I am using a 20A rated SSR, will it be unnecessary to use a fuse ? Again I am not sure, will this setup protect my Arduino and low-voltage side?

You don't have to.

The blower motor is rated to draw 0.23A in normal operation. However, in a SFC (single fault condition) it's possible that your blower or the circuit in general could demand much more if a short circuit developed or the motor stalled. The branch circuit is protected by a circuit breaker but stuff downstream of that breaker may need additional protection unless they are proven to be able to carry overload current (so, say, the breaker rated current plus some percentage) indefinitely without hazards forming.

Your motor windings may have a thermal protection switch; when the windings reach 150oC it would open and stop the current. In the time it takes for this to happen are all the other conductors and components carrying that current safe?

For example, suppose your blower motor's supply wires are 22AWG; they may be for such a low-rated operating current. 22AWG wires cannot safely carry the current that a 120 or 240Vac mains circuit can supply. I there are "weak links" in your system with respect to current-carrying rating and the mains circuit breaker then it's wise to add supplemental protection in the form of a lower-rated fuse to protect against overheating.

This is one reason why many small AC appliances like soldering irons or oscilloscopes or PC power supplies etc have externally accessible (or internal) fuses.

YMMV. You don't have to do this. Just carefully assess your setup and choose the safest route.

With an SSR your Arduino will be safely isolated from the mains load.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.