Outils pour utilisateurs

Outils du site


start:arduino:pasapas

Ceci est une ancienne révision du document !


Les moteurs pas à pas

les documents

Moteur pas à pas 28byj-48 avec son driver ULN2003

Fonctionnement du 28BYJ-48

Utilisation de l'extension Stepper_Drive avec mBlock version 3

J 'ai regardé l'extension “ stepper_drive” que tu as utilisées lundi soir , elle ne pouvait pas fonctionner , des erreurs dans le code de l'extension ne permettait pas de télécharger le programme. .sb2

Je t'envoie le fichier de l'extension corrigé ( stepper.s2e) , mais il faut remplacer le tien par celui ci ou modifier directement le tien. Voir le chemin du fichier en remplacement mon nom par ton nom dans le chemin

l'utilisation du programme :

“stepperpinleri” veut en gros dire définition des pins du moteurs pas à pas dans notre cas = 8 10 9 11 dans cet ordre là sinon cela ne fonctionne pas

“döndü: hiz:” veut en gros dire vitesse de rotation , il faut mettre un petit chiffre 3 c'est bien, 1 ou 2 bloquent le moteur et plus grand > 3 tu ralentis le moteur

“yon” signifie sens de rotation : 0 dans un sens 1 dans l'autre sens. ( avec le fichier stepper.s2e modifié sinon pas de changement de sens )

“adimsayisi” veut dire nombre de pas du moteur par tour, j'ai mis 512 mais tu peux mettre plus cela ne change rien comme 2048

Fichiers

stepper_drive_modif_gl_18022020.zip

La partie du code modifié dans le nouveau fichier “stepper_drive” stepper.s2e

"work":
"if({1}==1){ \n 
    for(int i=0;i<{2};i++){ \n   
       if(count==0)
		{digitalWrite(p1,HIGH); 
		digitalWrite(p2,LOW); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,LOW);} \n 
 
else if(count==1)
		{digitalWrite(p1,LOW); 
		digitalWrite(p2,HIGH); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,LOW);} \n 
 
else if(count==2)
		{digitalWrite(p1,LOW);
		 digitalWrite(p2,LOW); 
		 digitalWrite(p3,HIGH);
		 digitalWrite(p4,LOW);} \n 
 
else if(count==3)
		{digitalWrite(p1,LOW); 
		digitalWrite(p2,LOW); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,HIGH);} \n
 
      if(count==3){count=0;} \n
 
count++; \n 
 
delay({0}); \n }} \n 
 
else if({1}==0){ \n 
   for(int i=0;i<{2};i++){ \n 
     if(count==0)
		{digitalWrite(p1,LOW); 
		digitalWrite(p2,LOW); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,HIGH);} \n 
 
else if(count==1)
		{digitalWrite(p1,LOW); 
		digitalWrite(p2,LOW); 
		digitalWrite(p3,HIGH); 
		digitalWrite(p4,LOW);} \n 
 
else if(count==2)
		{digitalWrite(p1,LOW); 
		digitalWrite(p2,HIGH); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,LOW);} \n 
 
else if(count==3)
 
		{digitalWrite(p1,HIGH); 
		digitalWrite(p2,LOW); 
		digitalWrite(p3,LOW); 
		digitalWrite(p4,LOW);} \n
 
count++; \n 
delay({0}); \n }} \n ", 
  "loop":""  
 

le programme de test pour moteur pas à pas 28BYJ-48

moteurpaspas.ino
int Pin0 = 40; // broche 40 pour arduino  mega 2560 ou  8 pour  Uno
int Pin1 = 42; // broche 42 pour arduino  mega 2560 ou 10 pour  Uno
int Pin2 = 41; // broche 41 pour arduino  mega 2560 ou  9 pour  Uno
int Pin3 = 43; // broche 43 pour arduino  mega 2560 ou 11 pour  Uno
int _step = 0; 
boolean dir = 0;// sens de rotation :  0 dans un sens et 1 dans l'autre sens
void setup() 
{ 
 pinMode(Pin0, OUTPUT);  
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
} 
 void loop() 
{ 
 switch(_step){ 
   case 0: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, HIGH); 
   break;  
   case 1: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, HIGH); 
   break;  
   case 2: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 3: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 4: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 5: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
     case 6: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 7: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, HIGH); 
   break;  
   default: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
 } 
 if(dir){ 
   _step++; 
 }else{ 
   _step--; 
 } 
 if(_step>7){ 
   _step=0; 
 } 
 if(_step<0){ 
   _step=7; 
 } 
 delay(1); 
}
/home/chanteri/www/fablab37110/data/attic/start/arduino/pasapas.1598461645.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)