Table des matières
Les moteurs pas à pas
les documents
Les moteurs Pas à pas Nema ....
Moteur pas à pas 28byj-48 avec son driver ULN2003
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