Outils pour utilisateurs

Outils du site


start:arduino:pasapas

Les moteurs pas à pas

les documents

Les moteurs Pas à pas Nema ....

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); 
}

NEMA 17

Moteur pas à pas NEMA 17

Moteur pas à pas bipolaire puissant, d'un couple de 2.6 Kg.cm au format standard NEMA17.

Un moteur pas à pas est un moteur brushless, à haute durée de vie, qui se commande comme son nom l'indique pas par pas, avec précision. Ces moteurs ont 200 pas par tour soit 1.8° par pas.

Ce moteur pas à pas est un moteur à quatre fils : Rouge , Bleu , Vert , Noir. Il y a 4 demi-bobines, câblées en parallèles 2 à 2 pour former au final 2 bobines: 2 fils par bobines, les fils “rouge” et “bleu” étant les extrémités d'une bobine, les fils “noir” et “vert” les extrémités de l'autre bobine. En cas de doutes les extrémités des bobines peuvent être repérées par un multimètre en mode “continuité ” ou “ testeur”. En effet une bobine étant un élément inductif, un multimètre indiquera qu'il y a continuité entre les deux extrémités d'une même bobine.

Ce sont les moteurs qui sont généralement utilisés pour les imprimantes 3D et autres machines à commande numérique.

Afin d'utiliser un moteur pas à pas il est nécessaire d'utiliser un “driver de moteur pas à pas”. Ces drivers permettent de transmettre la puissance électrique au moteur afin de le faire tourner.

Généralement les drivers de moteurs pas à pas permettent de commander les moteurs en fractions de pas complet. En mode demi-pas, le moteur devra alors faire 400 demi-pas pour faire un tour complet soit 0.9° par demi-pas. Certains drivers permettent de faire du 16ème de pas et même du 128ème de pas …

Caractéristiques techniques :

Couple 1.8 Kg.cm à 1.6A / 2.6 Kg.cm à 2.6A Tension de bobines : 2.55V Courant par phase : 3.4A Résistance du bobinage: 0.8 Ohms

https://eskimon.fr/tuto-arduino-603-a-petits-pas-le-moteur-pas-%C3%A0-pas

Les moteurs pas à pas Nema ...

/home/chanteri/www/fablab37110/data/pages/start/arduino/pasapas.txt · Dernière modification : 2024/02/03 10:10 de gerardadmin