Pour tester le fonctionnement d’un moteur pas à pas sans carte de contrôle ou sans L293D (ou L298N équivalent mais plus puissant) vous pouvez utiliser votre carte Arduino. Nous allons ici simplement lui demander de débiter alternativement des impulsions nécessaires. Et pour être sûr que l’ATmega328 débitera suffisamment de courant on va simplement grouper les broches par deux.

Ne faites pas cela sur de trop gros cailloux (des moteurs qui consomment trop) au risque de tirer un peu trop sur les sorties de votre carte Arduino. Chaque broche peut débiter 40 mA et jusqu’à 60 mA en pointe ! Donc nous avons 2 broches Arduino par broche moteur. Ce qui fait 4 broches Arduino par bobine du moteur. Le total nous donne :

(40 * 2)*4 = 320 mA

Ce qui nous donne 320 mA théorique mais l’ATMega 328 ne peut pas dépasser les 200 mA pour toutes les broches cumulées. Un petit moteur pas à pas peut se mettre en mouvement avec courant  mais ce ne serait pas suffisant pour un moteur en charge (qui doit actionner quelque chose).

Et voici le code :

//réglez ici le temps entre deux impulsions 
//et donc la vitesse du moteur

int time = 20;

void setup() {                

  //on règle ici les pines 2 à 9 en sortie

  for(int i=2; i<= 9; i++){
    pinMode(i, OUTPUT);    
  }

}

// et ici on envoie des impulsions nécessaire.

void loop() {

  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);

  digitalWrite(4,LOW);
  digitalWrite(5,LOW);

  delay(time);

  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);

  digitalWrite(8,LOW);
  digitalWrite(9,LOW);

  delay(time);

  digitalWrite(2,LOW);
  digitalWrite(3,LOW);

  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);

  delay(time);

  digitalWrite(6,LOW);
  digitalWrite(7,LOW);

  digitalWrite(8,HIGH);
  digitalWrite(9,HIGH);

  delay(time);
}

C’est une technique primaire mais elle permet de tester le bon fonctionnement du moteur et d’en comprendre le fonctionnement.