sketch:
int motorD1 = 2; // Blue - 28BYJ48 pin 1
int motorD2 = 3; // Pink - 28BYJ48 pin 2
int motorD3 = 4; // Yellow - 28BYJ48 pin 3
int motorD4 = 5; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)
int lookupD[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};
void goForward();
void goReverse();
void setDOUT(int out);
void setup()
{
pinMode(motorD1, OUTPUT);
pinMode(motorD2, OUTPUT);
pinMode(motorD3, OUTPUT);
pinMode(motorD4, OUTPUT);
Serial.begin(9600);
Serial.println("Hello, world! 28BYJ48 acordou!");
}
void loop() {
goForward();
delay(1000);
goReverse();
delay(1000);
}
void goForward()
{
Serial.println("forward...");
for( int i=0; i < 4096 ; i++){
setDOUT(i%8);
delay(1);
}
}
void goReverse()
{
Serial.println("reverse...");
int j= 4096;
for( int i=0; i < 4096 ; i++, j--){
setDOUT(j%8);
delay(1);
}
}
void setDOUT(int out)
{
int *p = lookupD;
digitalWrite(motorD1, bitRead(p[out], 0));
digitalWrite(motorD2, bitRead(p[out], 1));
digitalWrite(motorD3, bitRead(p[out], 2));
digitalWrite(motorD4, bitRead(p[out], 3));
}