Boujour à tous,
je solicite aujourd'hui votre aide car nous sommes dans une impasse.
Nous devons faire tourner un moteur pas à pas dans les 2 sens pour notre projet de TIPE. Le code que nous utilisons est ci contre, mais ne permets pas de le faire touner dans les 2 sens. Il ne tourne que dans le sens horaire. Pourriez vous nous aider en nous proposant un pogamme ?
Cela nous sauverait notre projet
En esperant que vous pouurez m'aider.
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# PIN-Assignment
A=18
B=23
C=24
D=25
time = 0.001
# defining the PINs
GPIO.setup(A,GPIO.OUT)
GPIO.setup(B,GPIO.OUT)
GPIO.setup(C,GPIO.OUT)
GPIO.setup(D,GPIO.OUT)
GPIO.output(A, False)
GPIO.output(B, False)
GPIO.output(C, False)
GPIO.output(D, False)
# driving the motor
def Pas_a_pas(n):
def Step1():
GPIO.output(D, True)
sleep (time)
GPIO.output(D, False)
def Step2():
GPIO.output(D, True)
GPIO.output(C, True)
sleep (time)
GPIO.output(D, False)
GPIO.output(C, False)
def Step3():
GPIO.output(C, True)
sleep (time)
GPIO.output(C, False)
def Step4():
GPIO.output(B, True)
GPIO.output(C, True)
sleep (time)
GPIO.output(B, False)
GPIO.output(C, False)
def Step5():
GPIO.output(B, True)
sleep (time)
GPIO.output(B, False)
def Step6():
GPIO.output(A, True)
GPIO.output(B, True)
sleep (time)
GPIO.output(A, False)
GPIO.output(B, False)
def Step7():
GPIO.output(A, True)
sleep (time)
GPIO.output(A, False)
def Step8():
GPIO.output(D, True)
GPIO.output(A, True)
sleep (time)
GPIO.output(D, False)
GPIO.output(A, False)
# start one complete turn
for i in range (n):
Step1()
Step2()
Step3()
Step4()
Step5()
Step6()
Step7()
Step8()
GPIO.cleanup()
Pas_a_pas(512)
Aide moteur pas à pas
Modérateurs : Francois, Manfraid
Re: Aide moteur pas à pas
Bonjour,
Comment est connecté le Raspberry, vous utiliser un pilote de moteur ? à base de transistor ULN2003 ? c'est branché comment ?
Votre code est incompréhensible parce que Python exploite les indentations pour définir les blocs d'instructions. Pourriez vous utiliser le bouton "</>" du forum pour mettre le code (il sert à ça).
Enfin, tel que je vois votre code, vous avez mis ceci :
Et vous appelez :
C'est à dire une fonction qui ne fait rien
S'il se passe quelque chose ce ne peut-être que parce qu'il y a du code sans indentation donc exécuté systématiquement (et invisible pour nous puisqu'on ne voit pas les indentations)
Sinon, il y a un article ici en Français.
https://www.aranacorp.com/fr/pilotez-un ... spberrypi/
le programme n'est pas "joli" mais ça fonctionne, en appelant steps avec un nombre >0, le moteur tourne dans le sens horaire et avec un nombre <0 dans le sens anti-horaire.
Comment est connecté le Raspberry, vous utiliser un pilote de moteur ? à base de transistor ULN2003 ? c'est branché comment ?
Votre code est incompréhensible parce que Python exploite les indentations pour définir les blocs d'instructions. Pourriez vous utiliser le bouton "</>" du forum pour mettre le code (il sert à ça).
Enfin, tel que je vois votre code, vous avez mis ceci :
Code : Tout sélectionner
def Pas_a_pas(n):
def Step1():
Code : Tout sélectionner
Pas_a_pas(512)
S'il se passe quelque chose ce ne peut-être que parce qu'il y a du code sans indentation donc exécuté systématiquement (et invisible pour nous puisqu'on ne voit pas les indentations)
Sinon, il y a un article ici en Français.
https://www.aranacorp.com/fr/pilotez-un ... spberrypi/
le programme n'est pas "joli" mais ça fonctionne, en appelant steps avec un nombre >0, le moteur tourne dans le sens horaire et avec un nombre <0 dans le sens anti-horaire.
1 Pi 4 Emby / Samba
1 Pi4 Librelec
1 Pi3 / Hifiberry OSMC
1 Pi0 : traker GPS et acquisitions de données moteur automobile
1 Pi 2 : pilotage de serrures / RFID
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
1 Pi4 Librelec
1 Pi3 / Hifiberry OSMC
1 Pi0 : traker GPS et acquisitions de données moteur automobile
1 Pi 2 : pilotage de serrures / RFID
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
Re: Aide moteur pas à pas
Bonjour,
nous utilisons un contrôleur (référence ULN2003) ainsi que le programme fourni avec (que vous pouvez trouver sur le lien suivant)
https://www.joy-it.net/en/products/SBC-Moto1
La fonction pas à pas a été crée afin de pouvoir insérer le programme, et n'a donc aucune valeur ajoutée
nous utilisons un contrôleur (référence ULN2003) ainsi que le programme fourni avec (que vous pouvez trouver sur le lien suivant)
https://www.joy-it.net/en/products/SBC-Moto1
La fonction pas à pas a été crée afin de pouvoir insérer le programme, et n'a donc aucune valeur ajoutée
Re: Aide moteur pas à pas
Ce programme n'est bien que pour faire une petite démo.
Bref, la réponse à votre question est simple : il suffit de refaire les étapes dans l'autre sens :
Si vous voulez faire un une fonction dans laquelle vous pourrez choisir de combien de degrés vous voulez faire la rotation et dans quel sens, il faudra faire autrement (le lien que j'ai fournis est pas mal, il utilise des tableaux de valeurs , ça semble plus compliqué au 1er abord mais en faire à l'usage c'est beaucoup plus souple et simple)
Bref, la réponse à votre question est simple : il suffit de refaire les étapes dans l'autre sens :
Si vous voulez faire un une fonction dans laquelle vous pourrez choisir de combien de degrés vous voulez faire la rotation et dans quel sens, il faudra faire autrement (le lien que j'ai fournis est pas mal, il utilise des tableaux de valeurs , ça semble plus compliqué au 1er abord mais en faire à l'usage c'est beaucoup plus souple et simple)
Code : Tout sélectionner
# SENS HORAIRE
for i in range (512):
Step1()
Step2()
Step3()
Step4()
Step5()
Step6()
Step7()
Step8()
# SENS ANTI-HORAIRE
for i in range (512):
Step8()
Step7()
Step6()
Step5()
Step4()
Step3()
Step2()
Step1()
1 Pi 4 Emby / Samba
1 Pi4 Librelec
1 Pi3 / Hifiberry OSMC
1 Pi0 : traker GPS et acquisitions de données moteur automobile
1 Pi 2 : pilotage de serrures / RFID
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
1 Pi4 Librelec
1 Pi3 / Hifiberry OSMC
1 Pi0 : traker GPS et acquisitions de données moteur automobile
1 Pi 2 : pilotage de serrures / RFID
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32