Ceci est une ancienne révision du document !
Table des matières
Les moteurs pas à pas
les documents
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); }