Arduino Mega + SSR for Window blind control issue

Hello Folks :slight_smile:

I am close to the end of my "intelligent home" project.
Arduino Mega revision 3 is used for light control / LED strip and Window blind.
Light control and motor for windows blind is control with SSR relay from Schneider - type SSL1A12JD + SSLZVA1 (socket).
Light control is working great (resistant load does not make any issues).

Problems occurred with motors (one phase motor with capacitor inside, inductive load make troubles).
I am using two relays for one motor (each is controlling one direction). Software is ensuring that both direction will be not set in one time. Relay is controlled directly from Arduino output.

In case if motor is reaching end limit position (which is build inside) for short moment some noise is going back over SSR to Arduino. After that in most cases Arduino is resetting after occurring over voltage on ports.

Conclusion is that galvanic separation on SSR relay is not so perfect.

After reading some topic on forum I want to try :

  • add ferried cores,
  • add additional light isolation module between Arduino and SSR e.g. A87TLP281,
  • add serial connection between Arduino port and SSR inductor but question is what size 1 mH ? xxx uH ?

If anybody had similar problem or idea how I can solve this problem I will be grateful for comments.

If somebody will be interested I can upload on next days some pictures of my electrical switchboard and upload code.

It sounds like the motor itself is sending the noise so a snubber / filter on the motor would be my first step.

Yes a schematic is almost certainly a good bet here along with pictures.

I made quick draft of one motor connection.

GND1/2/3/4 are related only with Arduino and AC/DC supplier.
So I have separation between low voltage and power circuit.

(mod edit)

Connection.jpg

Connection.jpg

Actual status :

  1. Ferrite core does not help,
  2. Varistor which was connected from site of motor does not help.

I discover following :

I am using IO expander (MCP23017 / Waveshare) connected to Arduino.
In case if expander is connected to Arduino over I2C communication and window blinds reach end position, Arduino is reseting (like describe above I assume that some noise is going back to the controller).

In case if expander is disconnected everything works fine... .
I check two expanders (from the same supplier). For both situation looks the same.

Conclusion is that spark from one phase motor is too small to interrupt Arduino itself but big enought to cause some problems with I2C communication.

Somebody has experience with I2C communication ? I am not sure at the moment if this is still hardware problem or maybe software part (for handling I2C).