How to use Arduino MEGA 2560 for stepper motor

Thread Starter

LAOADAM

Joined Nov 21, 2018
956
I am trying to use Arduino MEGA 2560 test a 28BYJ-48 stepper motor, that works on Arduino UNO on PIN 8/9/10/11? The motor doesn't turn when I change the drive pin to PIN 20/22/24/26 on NEGA2560? why?

Wiring drive pin to IN1/2/3/4 in turn.

Thanks
Adam
Code:
/*
 Stepper Motor Control - speed control

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.
 A potentiometer is connected to analog input 0.

 The motor will rotate in a clockwise direction. The higher the potentiometer value,
 the faster the motor speed. Because setSpeed() sets the delay between steps,
 you may notice the motor is less responsive to changes in the sensor value at
 low speeds.

 Created 30 Nov. 2009
 Modified 28 Oct 2010
 by Tom Igoe

 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor


// initialize the stepper library on pins 8 through 11:
//// Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

////Stepper myStepper(stepsPerRevolution, 21, 23, 25, 27);

Stepper myStepper(stepsPerRevolution, 11, 10, 9, 8);


int stepCount = 0;  // number of steps the motor has taken

void setup() {
  // nothing to do inside the setup
}

void loop() {
  // read the sensor value:
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
  // set the motor speed:
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution / 100);
  }
}
 
Be sure you are connected to the correct pins. While D23, D25, and D27 are in a row, D21 is not on the same connector. Same for D20 when you are using the even-numbered pins.
 
Top