So, pretty much, I have an Arduino turning on and off a pump and a heater using two separate SSR's and I have an LCD reporting the status of each relay to the user.
The Issue is, whenever the pump turns ON or OFF the LCD scrambles. Now, I have a pretty strong suspicion that there is EMI related issues within the circuit and at this stage I have made little effort to amend it. Before I go down this seemly long and tedious troubleshooting road I was wondering if anyone has come across this issue before?
I have supplied the Arduino with 9Vdc straight from a battery so I am pretty sure its not a power source issue.
Is the EMI happening wirelessly or is it coming back through my Relay's into the circuit?
I don't really know how to solve this problem so if anyone can assist I'd really appreciate it!
Since your Arduino is battery powered, the only way for a noise spike to get in and crash the board is via the SSR control wires.
Even though the SSR provides isolation internally with an opto-isolator, noise may still be getting into the wiring "antenna style".
So, here are my suggestions:
(1) Keep the wiring between the LCD and Arduino as short as possible. Also, try adding a nominal value (around 0.1uF) ceramic capacitor across the power and ground pins AT THE LCD END to bypass any noise on the power wires.
(2) Use UTP (unshielded twisted pair) wiring between the SSR and the Arduino. Or, just take two ordinary stranded wires, chuck one end in a drill, hold the other and make your own. This in itself may be good enough to keep EMI out of the Arduino.
(3) Try coaxial microphone cable to connect the SSR to the Arduino. Microphone cable is shielded and may prevent EMI from getting in.
(4) Place a small (like 0.1uF) ceramic capacitor across the Arduino control pin and ground. Then use around a 100 ohm resistor in series with the control pin and the wiring. This forms a low pass filter that filters in the direction from the SSR to the Arduino. If the SSR stops working, try a smaller value resistor (like 47 ohms or 22 ohms).
Any or all of the above SHOULD solve your problem (hopefully)