LCD vs relay problem


I've got problem with my arduino project... I've created a ventillation system controller, which turn on the ventillator once a day, or if humidity is more than a presetted value.

For this I use a Songle SRD 05 VCD relay. If I test the equipment without 220V DC connented to the relay, it works perfectly. But If I put it into operation and connect 220 V DC, when the relay switches, LCD starts to show random points/characters. (but other things work perfectly e.g. clock, it turns off and on if I press the buttons, so it seems only the LCD has problem...) In some cases it happens at the first switching, but somtimes it works fine a few times, and than goes wrong. :(

I've tried with different power sources: 9 V 600mA, 9V 1000mA, 12 V 1500mA. I've tried to supply the relay with different power source (batteries) with common GND, but it works the same way. I don't know what culd be the problem... I assume something like noise or stray current...

pls help.

Thank you in advance!

But If I put it into operation and connect 220 V DC...

Have you looked into the 'Contact Rating" of the relay, specifically the maximum allowable voltage?


It is 10 A at 250VAC or 125 VAC or 30VDC or 28VDC.

I've mispelled in my post. I've connect 220 AC to the relay. So I think this isn't the problem...


There have been several threads about similar problems involving relays, motors, etc. Basically it all boils down to reducing the interference caused by the load and then keeping the remaining noise from getting to the LCD wires.

If you post a photograph of your setup you may get some more specific suggestions.


I also have random characters showing up on my LCD, with a ds18B20 sensor near a relay board that has no physical connection to the Arduino. Every time the relays engage, the display garbles. A .1uf cap between gnd and vcc on the display helped a bit, but not completely. It's definitely a EMI issue. If I move the ds18b20 away from the relay board, the problem goes away. Going to replace the ds18b20 wiring with twisted pair and see if that resolves the issue.

I’ve attached a picture.

One of my friend gave me 2 possible solution.

  • one is to change to solid-state relay
  • second is replace the relay with the attached config.

I’ll try them in the next few days…


My issue is that I'm testing commercial aquastats, and cannot swap out the relay's.

One of my friend gave me 2 possible solution. - one is to change to solid-state relay - second is replace the relay with the attached config.

In any case you are probably going to have to isolate the signals radiating from the brown wires from all of the receiving antennas you have crammed into that little box. You might want to consider relocating your relay.

Welcome to the real world.


I've made a cable before (appr. 1,5m long) and put the relay away form the box and it produced the same problem:( I'll try it again, but I'm afraid it won't help.

I think maybe I find a solution.
I’ve create the perviously attached circuit, and it seems it is working perfectly. (i’ve attached my circuit)

I think the problem with the relay is mechanical switching.
If the relay switches in wrong period (when the 220V phase is far from zero) it can create sparks inside the relay which generates some spikes back into the arduino lines.
In the IC what I used there is a “Zero Crossing Circuit” which waits until the sinus wave is near zero, and only then switches, besides there is no mechanical switching.

I think you can use solid state relay too which has this same function (ZCC). (But this config is cheaper, it was approx.1.75 Eur)

For this i used:
MOC 3063
BT136 600e triac
2 pieces of 330 Ohm resistor
1k Ohm resistor
39 Ohm resistor
0,01 cap

I’ve connect Arduino’s data pin to the VCC, and Ground to the 2 pin of the MOC.

I hope it will works for you as well.

And one more thing: the distance of 220V cable from other Arduino lines doesn’t matter. In my setup it is almost next to the Arduio board in the box…

If you have any question with this just ask, and I try to answer…