#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


 


  
}