- stepmotor28byh-48.ino
#define PINA 8
#define PINB 9
#define PINC 10
#define PIND 11
int pins[] = {PINA, PINB, PINC, PIND};
void setup() {
for (int i=0; i<4; i++) {
pinMode(pins[i], OUTPUT);
}
}
void step(int s) {
if (s<0 || s>7) {
for (int i=0; i<4; i++) {
digitalWrite(pins[i], LOW);
}
} else {
int on = LOW;
for (int i=0; i<4; i++) {
if (i==s/2 || i==(s/2+s%2)%4) {
on = HIGH;
} else {
on = LOW;
}
digitalWrite(pins[i], on);
}
}
}
int dly = 1;
void loop() {
for (int i=0; i<512; i++) {
step(i % 8);
delay(dly);
}
step(-1);
delay(200);
for (int i=511; i>0; i--) {
step(i % 8);
delay(dly);
}
step(-1);
delay(500);
}