Arduino uno step motors

  1. We want to run 3 motors. After adjusting the +90 maintenance at the beginning, the stepper motors should run continuously by going 180 degrees backwards and 180 degrees forward respectively. https://www.youtubehttps://www.youtube.com/watch?v=c2jxorPyzvg.com/watch?v=c2jxorPyzvg It should be like in this video

{
"version": 1,
"author": "Anonymous maker",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 10.2, "left": 153, "attrs": {} },
{
"type": "wokwi-stepper-motor",
"id": "stepper1",
"top": -240.01,
"left": 349.02,
"attrs": { "size": "8", "arrow": "orange" }
},
{
"type": "wokwi-stepper-motor",
"id": "stepper2",
"top": -240.01,
"left": 253.02,
"attrs": { "size": "8", "arrow": "orange" }
},
{
"type": "wokwi-stepper-motor",
"id": "stepper3",
"top": -240.01,
"left": 157.02,
"attrs": { "size": "8", "arrow": "orange" }
},
{
"type": "wokwi-a4988",
"id": "drv1",
"top": -139,
"left": 360.4,
"rotate": 270,
"attrs": {}
},
{
"type": "wokwi-a4988",
"id": "drv2",
"top": -139,
"left": 264.4,
"rotate": 270,
"attrs": {}
},
{
"type": "wokwi-a4988",
"id": "drv3",
"top": -139,
"left": 168.4,
"rotate": 270,
"attrs": {}
}
],
"connections": [
[ "stepper3:A-", "drv3:2B", "green", [ "v0" ] ],
[ "stepper3:A+", "drv3:2A", "green", [ "v0" ] ],
[ "stepper3:B+", "drv3:1A", "green", [ "v0" ] ],
[ "stepper3:B-", "drv3:1B", "green", [ "v0" ] ],
[ "stepper2:A-", "drv2:2B", "green", [ "v0" ] ],
[ "stepper2:A+", "drv2:2A", "green", [ "v0" ] ],
[ "stepper2:B+", "drv2:1A", "green", [ "v0" ] ],
[ "stepper2:B-", "drv2:1B", "green", [ "v0" ] ],
[ "stepper1:A-", "drv1:2B", "green", [ "v0" ] ],
[ "stepper1:A+", "drv1:2A", "green", [ "v0" ] ],
[ "stepper1:B+", "drv1:1A", "green", [ "v0" ] ],
[ "stepper1:B-", "drv1:1B", "green", [ "v0" ] ],
[ "drv2:STEP", "uno:1", "blue", [ "v19.2", "h86.4" ] ],
[ "drv1:STEP", "uno:0", "green", [ "v96" ] ],
[ "drv3:STEP", "uno:2", "orange", [ "v28.8", "h163.2" ] ],
[ "drv1:DIR", "uno:3", "purple", [ "v48", "h-38.4" ] ],
[ "drv2:DIR", "uno:4", "yellow", [ "v48", "h38.4" ] ],
[ "drv3:DIR", "uno:5", "cyan", [ "v57.6", "h124.8" ] ],
[ "drv1:SLEEP", "drv1:RESET", "black", [ "v9.6", "h-9.6" ] ],
[ "drv2:SLEEP", "drv2:RESET", "black", [ "v9.6", "h-9.6" ] ],
[ "drv3:SLEEP", "drv3:RESET", "black", [ "v9.6", "h-9.6" ] ]
],
"dependencies": {}
}

diagram codes

  1. Edit your post
  2. copy/cut your code
  3. format your code (in an IDE)
  4. click < CODE > button in the edited message box
  5. paste your code where you see type or paste your code here

You do not want to use pins 0 or 1. This sketch uses pins other than 0 and 1...

Files for WOKWI.COM

sketch.ino

int stepPin[] = {7, 5, 3}; // motor step pins
int dirPin[]  = {6, 4, 2}; // motor direction pins
bool CW = 1, CCW = 0; // clockwise, counterclockwise
int deg, dir, mot; // degrees, direction, motor

#define stepsPerRevolution 200
#define steps 200

void setup() {
  Serial.begin(115200);

  for (int i = 0; i < 5; i++) {
    pinMode(stepPin[i], OUTPUT); // configure step pins as output
    pinMode(dirPin[i], OUTPUT); // configure direction pins as output
  }

  dir = CW;
  deg = steps/4;
  for (int mot = 0; mot < 3; mot++) {
    runMotor(mot, dir, deg); // make 'mot' motor run in 'dir' direction for 'deg' degrees
    delay(250); // pause between moving motors
  }
}

void loop() {
  dir = !dir;
  deg = steps/2;
  for (int mot = 0; mot < 3; mot++) {
    runMotor(mot, dir, deg); // make 'mot' motor run in 'dir' direction for 'deg' degrees
    delay(250); // pause between moving motors
  }
}

void runMotor(int motor, bool direction, int degrees)
{
  digitalWrite(dirPin[motor], direction);

  // this condition is processor-blocking and will not allow multiple events to occur in parallel
  for (int i = 0; i < deg; i++) { // steps per revolutino, typically 200
    digitalWrite(stepPin[motor], HIGH); // start of start pulse
    delayMicroseconds(2000);
    digitalWrite(stepPin[motor], LOW); // end of start pulse
    delayMicroseconds(2000);
  }
}

diagram.json

{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": -28.2, "left": 153, "attrs": {} },
    {
      "type": "wokwi-stepper-motor",
      "id": "stepper1",
      "top": -240.01,
      "left": 349.02,
      "attrs": { "size": "8", "arrow": "orange" }
    },
    {
      "type": "wokwi-stepper-motor",
      "id": "stepper2",
      "top": -240.01,
      "left": 253.02,
      "attrs": { "size": "8", "arrow": "orange" }
    },
    {
      "type": "wokwi-stepper-motor",
      "id": "stepper3",
      "top": -240.01,
      "left": 157.02,
      "attrs": { "size": "8", "arrow": "orange" }
    },
    {
      "type": "wokwi-a4988",
      "id": "drv1",
      "top": -139,
      "left": 360.4,
      "rotate": 270,
      "attrs": {}
    },
    {
      "type": "wokwi-a4988",
      "id": "drv2",
      "top": -139,
      "left": 264.4,
      "rotate": 270,
      "attrs": {}
    },
    {
      "type": "wokwi-a4988",
      "id": "drv3",
      "top": -139,
      "left": 168.4,
      "rotate": 270,
      "attrs": {}
    }
  ],
  "connections": [
    [ "stepper3:A-", "drv3:2B", "green", [ "v0" ] ],
    [ "stepper3:A+", "drv3:2A", "green", [ "v0" ] ],
    [ "stepper3:B+", "drv3:1A", "green", [ "v0" ] ],
    [ "stepper3:B-", "drv3:1B", "green", [ "v0" ] ],
    [ "stepper2:A-", "drv2:2B", "green", [ "v0" ] ],
    [ "stepper2:A+", "drv2:2A", "green", [ "v0" ] ],
    [ "stepper2:B+", "drv2:1A", "green", [ "v0" ] ],
    [ "stepper2:B-", "drv2:1B", "green", [ "v0" ] ],
    [ "stepper1:A-", "drv1:2B", "green", [ "v0" ] ],
    [ "stepper1:A+", "drv1:2A", "green", [ "v0" ] ],
    [ "stepper1:B+", "drv1:1A", "green", [ "v0" ] ],
    [ "stepper1:B-", "drv1:1B", "green", [ "v0" ] ],
    [ "drv1:SLEEP", "drv1:RESET", "black", [ "v9.6", "h-9.6" ] ],
    [ "drv2:SLEEP", "drv2:RESET", "black", [ "v9.6", "h-9.6" ] ],
    [ "drv3:SLEEP", "drv3:RESET", "black", [ "v9.6", "h-9.6" ] ],
    [ "uno:2", "drv1:DIR", "green", [ "v-19.2", "h23.3" ] ],
    [ "uno:3", "drv1:STEP", "green", [ "v-28.8", "h32.8" ] ],
    [ "uno:4", "drv2:DIR", "green", [ "v-48", "h-44.1" ] ],
    [ "uno:5", "drv2:STEP", "green", [ "v-38.4", "h-44.2" ] ],
    [ "uno:6", "drv3:DIR", "green", [ "v-28.8", "h-101.9" ] ],
    [ "uno:7", "drv3:STEP", "green", [ "v-19.2", "h-111.6" ] ]
  ],
  "dependencies": {}
}

Hi, @ozkansa

Welcome to the forum.

Please post your schematic as a jpg image.

Thanks.. Tom.. :grinning: :+1: :coffee: :australia:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.