#define Bm 8
#define B 9
#define A 10
#define Am 11
byte rota=B01100000;
byte vA = bitRead(rota, 7);
byte vB = bitRead(rota, 6);
byte vAm = bitRead(rota, 5);
byte vBm = bitRead(rota, 4) ;
byte paso[8] ;
byte i = 0;
// El paso es 1.8 grados , el paso doble es 0.9 grados
#define PASODOBLE
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(Am, OUTPUT);
pinMode(Bm, OUTPUT);
Serial.begin(9600);
Serial.println(rota,BIN);
Serial.println(vA,BIN);
Serial.println(vAm,BIN);
Serial.println(vB,BIN);
Serial.println(vBm,BIN);
delay(2000);
Serial.flush();
#ifndef PASODOBLE
/*
paso[0] = B10000000;
paso[1] = B01000000;
paso[2] = B00100000;
paso[3] = B00010000;
*/
paso[0] = B11000000;
paso[1] = B01100000;
paso[2] = B00110000;
paso[3] = B10010000;
#else
paso[0] = B10000000;
paso[1] = B11000000;
paso[2] = B01000000;
paso[3] = B01100000;
paso[4] = B00100000;
paso[5] = B00110000;
paso[6] = B00010000;
paso[7] = B10010000;
#endif
}
void loop() {
rota = paso[i];
Serial.print(rota,BIN);
Serial.print(" ");
Serial.println(i);
digitalWrite(A, bitRead(rota, 7));
digitalWrite(B, bitRead(rota, 6));
digitalWrite(Am, bitRead(rota, 5));
digitalWrite(Bm, bitRead(rota, 4));
delay(500);
i++;
#ifndef PASODOBLE
i%=4;
#else
i%=8;
#endif
}