Simple High-Power 18v25 and Arduino Uno malfunction


Maybe you can help me.

I’ve been trying to use Simple High-Power Motor Controller 18v25 to drive 12VDC / 15Amps motor (linear actuator) along with Arduino Uno R3 communicating through UART (sending start/stop commands).

The system that I’ve built has a separate power supply for each device, an optional manual direct control of the motor and a feedback of the motor position shown on the LCD screen. Arduino and the motor controller are connected exactly like in the SH-P datasheet.

The problem occurs when I try to drive the motor through the SH-P motor controller’s PWM. Everything works fine when suddenly, in random moments Arduino just freezes and doesn’t respond, sometimes at first the LCD turns off. SH-P doesn’t indicate any error message.

The moment of crashing is really random and has nothing to do with the program itself and sending the UART messages (sometimes freezes right after starting the motor, sometimes after few cycles of working when none signal is being sent at the moment between Arduino and SH-P). The motor has no external load attached, so the conditions of tests are fixed.

The problem doesn’t occur when we drive the motor directly using the DPDT switch, omitting the SH-P controller (=problem occurs only when the motor is powered through SH-P’s PWM).

Do you think the noise over GND connection from Arduino to SH-P can cause such behavior? We’ve already tried to solve it by soldering capacitors between the motor terminals but without effect.

Simplified wiring below:

It might be noise that is causing some problems; but if noise is interfering with the serial signal, it is possible that this would trigger a serial error on the Simple Motor Controller. If you post some pictures of your physical setup, we can take a look and see if we can offer any suggestions.

If it is easy to do with your setup, could you try simplifying your system to just the Arduino and Simple Motor Controller to see if the problem still occurs? Also, could you try simplifying your code down to the simplest complete version that demonstrates the problem and post it here?

By the way, what is the current rating of your motor power supply?