// Pilotage d'un moteur pas a pas

// carte Arduino Nano
// moteur 32 pas/tour ; reducteur 1/64 ; nombre de pas par tour sur l'axe du moteur 32 x 64 = 2048 ; step,1N2,1N4,1N3,1N1 -> 9, 11, 10, 8

// definition des ports

#define phA 8
#define phB 9
#define phC 10
#define phD 11


void setup() {
  Serial.begin(9600);
  pinMode(phA, OUTPUT);
  pinMode(phB, OUTPUT);
  pinMode(phC, OUTPUT);
  pinMode(phD, OUTPUT);
}

void loop() {

int pas = 0 ;

// sens 1

while(pas != 2048)
  {
  digitalWrite(phA, HIGH); digitalWrite(phB, LOW); digitalWrite(phC, LOW); digitalWrite(phD, LOW); delay(10); pas ++ ;

  digitalWrite(phA, LOW); digitalWrite(phB, HIGH); digitalWrite(phC, LOW); digitalWrite(phD, LOW); delay(10); pas ++ ;
  
  digitalWrite(phA, LOW); digitalWrite(phB, LOW); digitalWrite(phC, HIGH); digitalWrite(phD, LOW); delay(10); pas ++ ;
  
  digitalWrite(phA, LOW); digitalWrite(phB, LOW); digitalWrite(phC, LOW); digitalWrite(phD, HIGH); delay(10); pas ++ ; 
  
  }
  
  delay(1000);

  //sens2
  
  while(pas != 0)
  {
  digitalWrite(phA, LOW); digitalWrite(phB, LOW); digitalWrite(phC, LOW); digitalWrite(phD, HIGH); delay(10); pas -- ;

  digitalWrite(phA, LOW); digitalWrite(phB, LOW); digitalWrite(phC, HIGH); digitalWrite(phD, LOW); delay(10); pas -- ;
  
  digitalWrite(phA, LOW); digitalWrite(phB, HIGH); digitalWrite(phC, LOW); digitalWrite(phD, LOW); delay(10); pas -- ;
  
  digitalWrite(phA, HIGH); digitalWrite(phB, LOW); digitalWrite(phC, LOW); digitalWrite(phD, LOW); delay(10); pas -- ; 
  
  }
  
    delay(1000);
    
}