Stepper moteurs sont idéales pour applications où Il est nécessaire de connaître le angle de rotation, par exemple en robotique. Contrairement à un moteur normal, moteurs pas à pas pouvez contrôler le pas individuellement et pouvez par conséquent détecter la position exacte.
Pour contrôle facilelingue un tel moteur, un chauffeur IC comme le L293D ou le ULN2003 sont nécessaires. L’utilisation des deux Conducteurs est montré dans ce tutoriel.
le plus commun de ces deux est le ULN2003, cette est aussi souvent inclus sur rérivière planches avec le 28BYJ–48e Là est une tension de 5V et 12V possible.
le L293D toutefois ouvre la possibilité se connecter une source d’alimentation externe, par exemple un plus haut intensité de courant (lequel dans certaines moteurs est nécessaire) peut être connecté.
Accessoires
- Moteur pas à pas, par ex. le 28BYJ-48 avec carte pilote ULN2003 (NOUS / Royaume-Uni)
- Circuit intégré du pilote L293D (NOUS / Royaume-Uni)
- alternativement, sinon L293D est recherché: Circuit intégré Darlington ULN2003 IC (NOUS / Royaume-Uni)
- Cavalier (NOUS / Royaume-Uni)
- peut-être une source d’alimentation externe, par exemple des piles
Bien sûr, vous pouvez utiliser n’importe quel autre moteur pas à pas, mais il est important d’identifier les couleurs de fil éventuellement différentes lorsque vous les connectez (voir fiche technique).
Ces couleurs reflètent dans mon cas le 28BYJ-48 (Fiche technique):
Câblage L293D
Si vous avez un moteur avec carte pilote ULN2003 ou IC pilote ULN2003, vous pouvez ignorer cette étape.
le Fiche technique montre qu’une source d’alimentation externe est possible. La structure est donc la suivante:
Si l’ampérage du moteur nécessite plus que ce que la Raspberry PI peut fournir, vous devez disposer d’une source d’alimentation externe (une source de courant fixe est meilleure que les batteries). La pré-résistance est également spécifiée dans la fiche technique. Faites attention à ce que vous ayez suffisamment de tension et d’ampérage, car c’est la cause la plus courante, pourquoi le moteur ne fonctionne pas plus tard comme il se doit. Cependant, avec le 28BYJ-48, ce n’est pas le cas.
Câblage ULN2003
Contrairement au L293D, seules les tensions d’entrée 5V ou 12V sont autorisées (Fiche technique). Étant donné que le Raspberry Pi ne dispose que de 5 V, nous ne pouvons également utiliser que des moteurs pas à pas qui nécessitent un maximum de 5 V.
Essai
Lorsque vous utilisez le 28BYJ–48, le séquence est comme suit. Si vous utilisez un moteur différent, vous devez Ajuste le séquence correspondant à votre Fiche technique.
Alors on créer un script:
sudo nano stepper.py
et ajoutez le script suivant:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
importation RPi.GPIO comme GPIO importation temps GPIO.mode réglages(GPIO.BCM) GPIO.avertissements(Faux) coil_A_1_pin = 4 # rose coil_A_2_pin = 17 # Orange coil_B_1_pin = 23 # bleu coil_B_2_pin = 24 # Jaune # ajuster si différent StepCount = 8 Seq = gamme(0, StepCount) Seq[[0] = [[0,1,0,0] Seq[[1] = [[0,1,0,1] Seq[[2] = [[0,0,0,1] Seq[[3] = [[1,0,0,1] Seq[[4] = [[1,0,0,0] Seq[[5] = [[1,0,1,0] Seq[[6] = [[0,0,1,0] Seq[[7] = [[0,1,1,0] GPIO.installer(enable_pin, GPIO.EN DEHORS) GPIO.installer(coil_A_1_pin, GPIO.EN DEHORS) GPIO.installer(coil_A_2_pin, GPIO.EN DEHORS) GPIO.installer(coil_B_1_pin, GPIO.EN DEHORS) GPIO.installer(coil_B_2_pin, GPIO.EN DEHORS) GPIO.production(enable_pin, 1) def setStep(w1, w2, w3, w4): GPIO.production(coil_A_1_pin, w1) GPIO.production(coil_A_2_pin, w2) GPIO.production(coil_B_1_pin, w3) GPIO.production(coil_B_2_pin, w4) def vers l’avant(retard, pas): pour je dans gamme(pas): pour j dans gamme(StepCount): setStep(Seq[[j][[0], Seq[[j][[1], Seq[[j][[2], Seq[[j][[3]) temps.dormir(retard) def en arrière(retard, pas): pour je dans gamme(pas): pour j dans renversé(gamme(StepCount)): setStep(Seq[[j][[0], Seq[[j][[1], Seq[[j][[2], Seq[[j][[3]) temps.dormir(retard) si __Nom__ == ‘__principale__’: tandis que Vrai: retard = entrée brute(« Délai (ms)? ») pas = entrée brute(« Combien de pas en avant? ») vers l’avant(int(retard) / 1000,0, int(pas)) pas = entrée brute(« Combien de pas en arrière? ») en arrière(int(retard) / 1000,0, int(pas)) |
Ensuite, enregistrez simplement avec CTRL + O et CTRL + X et quittez. Vous pouvez le démarrer avec:
sudo python stepper.py
Avec setStep(0,0,0,0)
vous pouvez régler le moteur pas à pas au ralenti, car sinon, l’énergie est consommée tout le temps (par les électro-aimants du moteur).
Sachez que si vous choisissez une valeur de retard élevée (par étape), le moteur se déplace très lentement (par exemple, avec un retard de 100 ms, un tour complet prend déjà 51,2 secondes, car le moteur a un total de 512 pas. Des valeurs de retard trop petites peuvent , cependant, ont l’effet inverse, de sorte que les signaux sont transmis trop rapidement et que le moteur ne fait que « bégayer ». Si vous voulez un moteur plus rapide, choisissez un modèle avec un angle de pas plus grand).
-
HeyNana Micro Servo Moteur pour Arduino Raspberry Pi RC Robot Commandes du bateau de l'aérodrome de l'hélicoptèreQuantité: 2 pièces Tension de travail: 4,8 V - 6,0 V. Température de fonctionnement : -30 à +60 degrés. Couple de démarrage : 17,5 oz / in (1,2 kg/cm). Dimensions : 22 x 12 x 29 mm Vitesse de fonctionnement : 0,12 seconde/60 degrés (4,8 V sans charge)