Arduino Stepper in beide Richtungen ansteuern?


28.03.2020, 20:51

Ich habe bereits eine Schaltung sowie ein Programm, jedoch bewegt sich der Motor nur in eine Richtung und dass sehr langsam.

Hier mein Programm :

int Pin1=10;

int Pin2=11;

int Pin3=12;

int Pin4=13;

int switchCW =2;

int switchStop=3;

int switchCCW =4;

int pole1[] ={0,0,0,0, 0,1,1,1, 0};

int pole2[] ={0,0,0,1, 1,1,0,0, 0};

int pole3[] ={0,1,1,1, 0,0,0,0, 0};

int pole4[] ={1,1,0,0, 0,0,0,1, 0};

int poleStep =0;

int dirStatus =3;

void setup() {

pinMode (Pin1, OUTPUT);

pinMode (Pin2, OUTPUT);

pinMode (Pin3, OUTPUT);

pinMode (Pin4, OUTPUT);

pinMode(switchCW,INPUT_PULLUP); 

pinMode(switchStop,INPUT_PULLUP);

pinMode(switchCCW,INPUT_PULLUP);

}

void loop() {

 if(digitalRead (switchCCW) == LOW)

 {

  dirStatus =1;

 }else if (digitalRead (switchCW)== LOW)

 {

  dirStatus=2;

 }else if (digitalRead (switchStop)== LOW)

 {

  dirStatus=3;

 }

 if (dirStatus ==1){

  poleStep++;

  driveStepper(poleStep);

 }else if (dirStatus ==2){

  poleStep--;

  driveStepper (poleStep);

 }else{

  driveStepper(50);

 }

 if (poleStep >7){

  poleStep==0;

 }

delay(1);

}

void driveStepper (int c)

{

 digitalWrite (Pin1, pole1[c]);

 digitalWrite (Pin2, pole2[c]);

 digitalWrite (Pin3, pole3[c]);

 digitalWrite (Pin4, pole4[c]);

}

Hier noch meine Schaltung

Vielen Dank für die schnelle Antwort über ein paar Tips würde ich mich freuen:)

2 Antworten

Nutze die Möglichkeit von Serial.println("text") um Dir Statusausgaben auf den Serial Monitor auszugeben... Damit kannst Du dir den Tasterstaus ausgeben lassen, den Steppermerker ect... Dann findest Du schnell, ob die Taster nicht richtig eingelesen werden, oder etwas nicht richtig gesetzt wird...

Den Stop würde ich nicht auf 50 setzen sondern auf 8 damit ein definiertes LOW auf die Ausgänge geschrieben wird und den Rücksetzbefehl >7 musst Du Richtungsabhängig machen und darf bei Stop nicht ausgeführt werden. Für die Rückwärtsrichtung musst Du ihn umgekehrt machen, dass er nach 0 wieder bei 7 anfängt rückwärts zu zählen..

Julian624 
Fragesteller
 29.03.2020, 13:36

Werde es nachher mal probieren Danke

0

ja dann zeig doch mal was du schon hast, schaltplan und Code :) dann könnte man dir vielleicht helfen