Outils pour utilisateurs

Outils du site


wiki:tutoriels:arduino:moteur-pas-a-pas

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:tutoriels:arduino:moteur-pas-a-pas [2022/03/04 14:34]
damien.muti [Moteur pas à pas 28BYJ-48 avec module de contrôle basé sur un UNL2003ARG]
wiki:tutoriels:arduino:moteur-pas-a-pas [2022/06/21 15:31] (Version actuelle)
damien.muti [Câblage]
Ligne 236: Ligne 236:
  
 ===== Moteur pas à pas 28BYJ-48 avec module de contrôle basé sur un UNL2003ARG ===== ===== Moteur pas à pas 28BYJ-48 avec module de contrôle basé sur un UNL2003ARG =====
-{{ :wiki:tutoriels:arduino:stepper-28byj48-arduino-wiring.png?400 |}}+==== Matériel et tutoriels ====
  
-achat sur Amazon : +  * Gotronic [[https://www.gotronic.fr/art-moteur-pas-a-pas-driver-stp01-23568.htm|Moteur pas-à-pas + driver STP01]]
-https://www.amazon.fr/gp/product/B07VGV1XFT/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1+
  
-Tutoriel :+ 
 + 
 +==== Câblage ==== 
 + 
 +{{ :wiki:tutoriels:arduino:stepper-28byj48-arduino-wiring.png?600 |}} 
 + 
 + 
 +====Programme Arduino==== 
 +Le programme de test consiste à effectuer des Aller et Retour de 360° ad vitam æternam. Le programme se trouve sur le site [[https://www.aranacorp.com/fr/pilotez-un-moteur-pas-a-pas-avec-arduino/| Anacorp]]. Téléchargeable ici : {{ :wiki:tutoriels:arduino:moteur_pas_a_pas_module_commande_ntours.zip |}} 
 + 
 +<code> 
 + 
 +///////////////// MOteur pas à pas  
 +#define IN1  11 
 +#define IN2  10 
 +#define IN3  9 
 +#define IN4  8 
 +int Steps = 0; 
 +int Direction = 0; 
 +int number_steps = 512; //= 2048/  : 512 pas correspond à un tour complet... 
 +int unTour = 518; // valeur expérimentale 
 +int nTours = 2; 
 + 
 +void setup() 
 +
 +  Serial.begin(9600); 
 +  pinMode(IN1, OUTPUT); 
 +  pinMode(IN2, OUTPUT); 
 +  pinMode(IN3, OUTPUT); 
 +  pinMode(IN4, OUTPUT); 
 +  // delay(1000); 
 + 
 +  // calcul du nombre de pas relatif à nTours 
 +  number_steps = nTours * unTour; 
 +
 +void loop() 
 +
 +  //1 rotation counter clockwise 
 +  stepper(number_steps); 
 +  delay(500); 
 +  //1 rotation clockwise 
 +  stepper(-number_steps); 
 +  delay(500); 
 +//  //Keep track of step number 
 +//  for (int thisStep = 0; thisStep < number_steps; thisStep++) { 
 +//    stepper(1); 
 +//  } 
 +//  delay(500); 
 +//  for (int thisStep = number_steps; thisStep > 0; thisStep--) { 
 +//    stepper(-1); 
 +//  } 
 +//  delay(500); 
 +
 + 
 + 
 +void stepper(double nbStep) { 
 +  if (nbStep >= 0) { 
 +    Direction = 1; 
 +  } else { 
 +    Direction = 0; 
 +    nbStep = -nbStep; 
 +  } 
 +  for (int x = 0; x < nbStep * 8; x++) { 
 +    switch (Steps) { 
 +      case 0: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, HIGH); 
 +        break; 
 +      case 1: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, HIGH); 
 +        digitalWrite(IN4, HIGH); 
 +        break; 
 +      case 2: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, HIGH); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +      case 3: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, HIGH); 
 +        digitalWrite(IN3, HIGH); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +      case 4: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, HIGH); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +      case 5: 
 +        digitalWrite(IN1, HIGH); 
 +        digitalWrite(IN2, HIGH); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +      case 6: 
 +        digitalWrite(IN1, HIGH); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +      case 7: 
 +        digitalWrite(IN1, HIGH); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, HIGH); 
 +        break; 
 +      default: 
 +        digitalWrite(IN1, LOW); 
 +        digitalWrite(IN2, LOW); 
 +        digitalWrite(IN3, LOW); 
 +        digitalWrite(IN4, LOW); 
 +        break; 
 +    } 
 +    delayMicroseconds(1000); 
 +    if (Direction == 1) { 
 +      Steps++; 
 +    } 
 +    if (Direction == 0) { 
 +      Steps--; 
 +    } 
 +    if (Steps > 7) { 
 +      Steps = 0; 
 +    } 
 +    if (Steps < 0) { 
 +      Steps = 7; 
 +    } 
 +  } 
 +
 +</code> 
 + 
 + 
 +====Tutoriel ====
  
   * https://www.aranacorp.com/fr/pilotez-un-moteur-pas-a-pas-avec-arduino/   * https://www.aranacorp.com/fr/pilotez-un-moteur-pas-a-pas-avec-arduino/
   * https://www.youtube.com/watch?v=ThJ6nTEJG-U   * https://www.youtube.com/watch?v=ThJ6nTEJG-U
 +
 +
 +
 +==== achat sur Amazon ====
 +https://www.amazon.fr/gp/product/B07VGV1XFT/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
 ===== Références ===== ===== Références =====
 Sites : Sites :
wiki/tutoriels/arduino/moteur-pas-a-pas.1646400881.txt.gz · Dernière modification: 2022/03/04 14:34 de damien.muti