IntermediateRobotics and Motion

Stepper Motor Dial Controller

Drive a small unipolar stepper through a ULN2003 driver and move it with two direction buttons.

Estimated time: 1–2 hours Β· Skills: Stepper phases, driver boards, external motor supply

Parts from the database

Other supplies

Amazon links may be affiliate links. As an Amazon Associate, Electronics Hobby Hub earns from qualifying purchases.

Connections

  1. Use a matched 28BYJ-48/ULN2003 module. Connect its IN1–IN4 to Pico GP2–GP5 and GND to Pico GND.
  2. Power motor VCC from a separate 5 V supply; join supply ground to Pico ground.
  3. Buttons connect GP14 and GP15 to GND; use internal pull-ups.
  4. Never drive the motor coils directly from Pico GPIO.

Build steps

  1. Check the exact driver module pin labels and motor connector orientation.
  2. Upload a slow stepping test and verify the motor turns without skipping.
  3. Add buttons for clockwise/counterclockwise motion and adjust step delay to suit the load.
  4. Mount a paper pointer only after the rotation direction and end-stop behavior are understood.

Software and firmware setup

Firmware is required, but a complete button-controlled sketch is not included yet. The Pico must run an Arduino-compatible core. Use four output pins in a repeating four-phase sequence for the ULN2003 inputs, and read the two direction buttons with INPUT_PULLUP. Start with a slow step interval and stop if the motor stalls or heats.

Test your build

The shaft should rotate smoothly in both directions at a conservative speed. The 28BYJ-48 has gearing and backlash, so it is not a precision positioning stage.

Troubleshooting

  • If it vibrates but does not rotate, check coil sequence and the motor connector.
  • If the Pico resets, improve separate motor power and shared ground.
  • If torque is weak, reduce speed and make sure the 5 V supply is adequate.

Safety and limitations

Keep fingers clear of gears and use a low-voltage motor supply. Do not stall the motor for long periods.

Manufacturer and platform documentation

Community Notes for This Project

These are unverified visitor contributions, separate from the build guide and manufacturer specifications. Verify technical advice against the linked datasheets before relying on it.

Set up the comments service to load community notes.

Share a tip or question about this build

← Browse all projects