4. stappenmotoren div


int Pin0 = 10; int Pin1 = 11; int Pin2 = 12; int Pin3 = 13; int _step = 0; boolean dir = true;// gre void setup() { pinMode(Pin0, OUTPUT); pinMode(Pin1, OUTPUT); pinMode(Pin2, OUTPUT); pinMode(Pin3, OUTPUT); } void loop() { switch(_step){ case 0: digitalWrite(Pin0, LOW); digitalWrite(Pin1, LOW); digitalWrite(Pin2, LOW); digitalWrite(Pin3, HIGH); break; case 1: digitalWrite(Pin0, LOW); digitalWrite(Pin1, LOW); digitalWrite(Pin2, HIGH); digitalWrite(Pin3, HIGH); break; case 2: digitalWrite(Pin0, LOW); digitalWrite(Pin1, LOW); digitalWrite(Pin2, HIGH); digitalWrite(Pin3, LOW); break; case 3: digitalWrite(Pin0, LOW); digitalWrite(Pin1, HIGH); digitalWrite(Pin2, HIGH); digitalWrite(Pin3, LOW); break; case 4: digitalWrite(Pin0, LOW); digitalWrite(Pin1, HIGH); digitalWrite(Pin2, LOW); digitalWrite(Pin3, LOW); break; case 5: digitalWrite(Pin0, HIGH); digitalWrite(Pin1, HIGH); digitalWrite(Pin2, LOW); digitalWrite(Pin3, LOW); break; case 6: digitalWrite(Pin0, HIGH); digitalWrite(Pin1, LOW); digitalWrite(Pin2, LOW); digitalWrite(Pin3, LOW); break; case 7: digitalWrite(Pin0, HIGH); digitalWrite(Pin1, LOW); digitalWrite(Pin2, LOW); digitalWrite(Pin3, HIGH); break; default: digitalWrite(Pin0, LOW); digitalWrite(Pin1, LOW); digitalWrite(Pin2, LOW); digitalWrite(Pin3, LOW); break; } if(dir){ _step++; }else{ _step--; } if(_step>7){ _step=0; } if(_step<0){ _step=7; } delay(1); }




#include <AFMotor.h>
AF_Stepper motor(200,1); // het object "motor" met 200 stappen aangesloten aan klem M1 (belangrijk in geval van single aansturing).
int tijd=1; // instelling vertragingstijd tussen de diverse instellingen
int count=0;
void setup() {
motor.setSpeed(100); // instelling van de motorsnelheid in rotaties/minuut
Serial.begin(9600);
}
void loop()
{
delay(tijd);
count++;
motor.step(200,FORWARD,SINGLE); // motor beweegt 200 stappen voorwaarts ( 1 rotatie)
Serial.print(count); // teller registreert aantal omwentelingen
Serial.println(" rotaties");
if (count==10) // als er 10 rotaties zijn uitgevoerd dan beweegt de motor 2000 stappen (10 rotaties terug, let op! De voorwaartse rotatietelling stopt)
{
motor.step(2000,BACKWARD,SINGLE);
}
if (count==20) // motor beweegt zich 10 rotaties terug, daarna weer voorwaarts totdat de teller op 20 staat.
{
motor.setSpeed(0); / nadat de teller op 20 staat stopt de motor
}
}