LCD Screen garbled while linear actuators are in motion

Hello all.

I have two linear actuators that, when in motion, are causing my LCD screen to freak out. They are 12VDC actuators being controlled through a relay module, powered separately from my Arduino. Power for the actuator is completely isolated from my Arduino/LCD. The issues never show up when the relays are switching. It is just while the actuator arms are extending or retracting. It takes roughly 30 seconds for the arm to fully extend, and a few seconds in, a spare character or two will start popping up here and there, with occasional full-blown freakouts.

I just placed a 0.1μF and 1000μF capacitor across pins 1 and 2 of the LCD screen (also tried 10μF first before switching up to the 1000). This is not resolving the issue. I considered adding capacitors to the data pins, but wasn't sure if that would delay actual signals to the LCD, in addition to warding off spurious signals.

Any tips? Or is there some sort of function that allows me to "freeze" my screen while the actuators are in motion (not ideal, since I have a loading bar that indicates the progress of the actuator).

I hope that ur driving relay coil directly from Arduino.
try using an opto-isolator and a pnp transistor in between Arduino and relay coil + a backward current protection circuit on relay.

if it does not help then make it wireless. transmit a controlling signal from Arduino (keeping lcd on transmission side) to the receiver and receiver in turn drives the actuators.

What specific actuator are you using? Is it truly isolated from the Arduino power supply or is the ground shared?

If this is a forward reverse scenario you could also use an H-bridge. I use these to control 12vdc motors all the time with no issues ever. You may want to add a TVS diode and/or .01uf cap directly across your actuator.

Do not use caps on the data lines this typically degrades the signal. Check that all your connections are secure.

Maybe the Arduino code you wrote is the issue.

Maybe the Arduino code you wrote is the issue.

Sure. The code detects the movement of the actuators and sends random data to the display.

Don

Ray_Beebe:
What specific actuator are you using? Is it truly isolated from the Arduino power supply or is the ground shared?

Truly isolated. I'm using a relay module with opto-isolatos, and that is powered separately. I am using that to power a separate DPDT relay that I am using to reverse the direction, with the DPDT relay getting it's own separate power supply. And then the actuator itself has it's own power supply. All are grounded separately.

I'd rather not get into my method of reversing the direction of my actuator. Though apparently unconventional, it works, and it is not the source of my error. Due to the fact that I've been so thorough with separating all my grounds/power supplies, I'm certain it has to be some sort of interference due to proximity with the actuator/actuator power.

Ray_Beebe:
Maybe the Arduino code you wrote is the issue.

Wouldn't that be nice? :slight_smile: Nope, code to the LCD is pretty straight-forward (though apparently after reading through the forums, I'm using lcd.clear() too much). Regardless, the freak-out happens intermittently, and it's always something fun and different. Fun in that I want to rip my hair out.

Don't pull out your hair you'll be bald like me. I suggested checking for common grounds because the relay board I used allows for a separate supply to drive the coils, but the ground was still shared. If the electrical noise is being radiated through the air more separation should solve the problem. If its coming in through wiring caps may help. Is this an I2C LCD? If the problem is happening when communicating with the LCD, you could slow the bus speed down. Just some ideas right or wrong I'm not trying to dis anyone. Good luck.

Yeah, separating grounds was my first solution. The problem didn't necessarily happen when communication was occurring. A static message screen might just start getting random characters while the actuators were in motion.

For anyone else having this problem, I made the last circuit at this link and it seemed to do the trick, or at least helped with the problem: De-coupling.

Additionally, I wrapped some copper tape around my LCD signal wires and around the wires to my actuators. With my setup, it's not possible to put any more distance between my actuators and the LCD screen/wires, though I did the best I could to separate them.