Troubleshooting My Arduino + PA Actuator Setup — Common Issues and Fixes
Arduino-controlled actuator systems can fail in subtle ways that are different from simple switch-controlled systems. This article covers the most frequent issues developers encounter and their solutions.
Common Issues Quick Reference
| Symptom | Most Likely Cause | Fix |
|---|---|---|
| Actuator doesn't respond to any command | H-bridge not receiving logic power; common ground missing | Verify Arduino 5 V → H-bridge Vss; confirm shared GND between Arduino, H-bridge, and PSU |
| Actuator runs in wrong direction | IN1/IN2 logic reversed, or motor wires swapped | Swap OUT1/OUT2 connections at the H-bridge, or swap HIGH/LOW in the direction code |
| Actuator runs at full speed only — no speed variation | ENA/ENB pin not a PWM pin, or PWM not enabled on H-bridge | Move ENA to a PWM-capable pin (3,5,6,9,10,11 on Uno) |
| Position reading jumps erratically while motor runs | Motor EMI coupling into pot signal wire | Add 100 nF cap on signal pin; separate routing of motor and signal wires; use software EMA filter |
| Arduino resets when motor starts | Inrush current drags down Arduino's 5 V supply when powered from same PSU | Power Arduino from a separate 5 V USB supply; add 100 µF electrolytic cap on Arduino 5 V rail |
| Position stops updating mid-stroke | Pot signal wire disconnected or pot mechanically failed | Check continuity of pot wires; confirm ADC reading changes when rod moved manually |
| Hall effect pulse count drifts over time | Noise triggering false interrupts | Add software debounce (2 ms min pulse width check); add 10 nF cap on Hall signal line |
| Actuator overshoots target position | KP gain too high or MIN_PWM too high for slow final approach | Reduce KP; reduce MIN_PWM; widen DEADBAND slightly |
The #1 Issue: Missing Common Ground
The single most common cause of "nothing works" in Arduino actuator setups is missing or incorrect grounding. The Arduino, H-bridge logic, motor power supply, and any feedback sensors must all share the same ground reference. Check:
- Arduino GND connected to H-bridge GND
- PSU negative connected to H-bridge GND
- Pot GND connected to Arduino GND (not to motor –)
- Hall effect GND connected to Arduino GND
Arduino Resets When Motor Starts
A DC motor draws 3–5× its steady-state current at startup. If the Arduino is powered from the same supply as the motor (e.g., via the H-bridge 5 V regulator), the voltage sag from motor inrush can momentarily drop below the Arduino's minimum operating voltage — causing a reset. Fix: Power the Arduino separately via USB, or add a large electrolytic capacitor (470 µF–1000 µF, 16 V) across the Arduino's 5 V and GND pins to buffer the inrush.