You can drive a unipolar or bipolar stepper (up to 2A/phase) using both H-bridges:
Wiring:
Sample sequence (full-step):
byte stepSequence[8][4] = HIGH, LOW, HIGH, LOW, // Step 1 HIGH, LOW, LOW, HIGH, // Step 2 LOW, HIGH, LOW, HIGH, // Step 3 LOW, HIGH, HIGH, LOW // Step 4 ;
// Map IN1,IN2,IN3,IN4 accordingly
The datasheet never mentions this, but the shield works fine for light stepper loads (NEMA 17 size max).
| Symptom | Likely Cause | Better Fix than Datasheet | |---------|--------------|----------------------------| | Motor runs slowly | Low motor voltage | Supply >7V, remove 5V jumper | | Arduino resets when motor starts | Inrush current | Add 1000µF capacitor across motor supply terminals | | One motor doesn't reverse | Broken H-bridge channel | Swap motors to verify; use remaining channel | | High-pitch whine | PWM frequency audible | Change timer prescaler to lower freq (not recommended) or accept it | | Heating under no load | Shoot-through current | Replace L298N with a modern MOSFET driver (TB6612) | hw 130 motor control shield for arduino datasheet better
| Problem | Likely cause | Fix | |---------|--------------|-----| | Motors not moving | No external power to shield | Connect 6–9V to EXT_PWR | | Motor only goes one direction | L293D channel damaged (common) | Replace shield or use unused channel | | Servo jitters | Servo power taken from Arduino 5V | Power servos directly from external 5V BEC | | Arduino resets when motor starts | Motor current spike | Add large capacitor (470–1000µF) across EXT_PWR terminals | | Overheating | Motors draw >600mA | Reduce load or use MOSFET driver (e.g., L298N) |
The L298N chip loses ~1.5V to 2V under load. If you feed it 6V, your motor sees only ~4.5V. For full performance, use 9V or 12V batteries. You can drive a unipolar or bipolar stepper
Always use separate power for motors and logic. Remove the 5V jumper and feed 5V from a reliable source (or Arduino’s 5V pin if current <200mA). This prevents back-EMF from resetting your Arduino.