28BYJ-48 stepper with Arduino Mega 2560 R3

Wiring for the 28BYJ-48 stepper + ULN2003 driver on the Arduino Mega 2560 R3 (ATmega2560, 5 V logic), chosen with the same pin rules BoardPilot uses: default buses first, and no pins that are used for flash, USB, the debugger or booting.

Wiring

28BYJ-48 stepper pinRoleArduino Mega 2560 R3 pinNotes
IN1Input to the part22 (PA0)
IN2Input to the part23 (PA1)
IN3Input to the part24 (PA2)
IN4Input to the part25 (PA3)
-GroundGND
+Power5VMotor supply 5 V: use 5V (about 240 mA)

Check before you power it on

Test code (Arduino)

// Library: Stepper (built in)
#include <Stepper.h>

// 2048 steps per turn; note the IN1, IN3, IN2, IN4 order for this motor
Stepper motor(2048, 22, 24, 23, 25);

void setup() {
  motor.setSpeed(10);  // rpm
}

void loop() {
  motor.step(2048);   // one turn
  delay(500);
  motor.step(-2048);  // and back
  delay(500);
}

Arduino board: arduino:avr:mega.

Questions

Which Arduino Mega 2560 R3 pins do I use for the 28BYJ-48 stepper?

IN1 → 22 (PA0), IN2 → 23 (PA1), IN3 → 24 (PA2), IN4 → 25 (PA3), - → GND, + → 5V.

Does the 28BYJ-48 stepper work with the Arduino Mega 2560 R3 at 5 V?

Yes: the 28BYJ-48 stepper runs at 5 V and the Arduino Mega 2560 R3 uses 5 V signals, so no level shifting is needed.

BoardPilot checks this wiring in 3D as you build it, and finds crossed or missing wires on the real board.

Download BoardPilot

Full Arduino Mega 2560 R3 pinout · 28BYJ-48 stepper + ULN2003 driver: all pins and data

The 28BYJ-48 stepper on other boards

Other parts on the Arduino Mega 2560 R3