Programme:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
moteur1 = {"PWM":17, "Avancer":27, "Reculer":22}
GPIO.setup(moteur1["PWM"], GPIO.OUT)
GPIO.setup(moteur1["Avancer"], GPIO.OUT)
GPIO.setup(moteur1["Reculer"], GPIO.OUT)
moteurPWM = GPIO.PWM(moteur1["PWM"], 50)
moteurPWM.start(0)
moteurPWM.ChangeDutyCycle(50)
GPIO.output(moteur1["Avancer"],GPIO.HIGH)
GPIO.output(moteur1["Reculer"],GPIO.LOW)
time.sleep(2)
GPIO.output(moteur1["Avancer"],GPIO.LOW)
GPIO.output(moteur1["Reculer"],GPIO.LOW)
moteurPWM.stop()
GPIO.cleanup()
Ce programme fait avancer la voiture pendant 2 secondes.
Programme:
import RPi.GPIO as GPIO
import time
# Utiliser la numerotation electronique du GPIO
GPIO.setmode(GPIO.BCM)
# définir les broches du GPIO a utiliser en sortie dans un tableau associatif
fleche={"avancer":16, "reculer":19, "droite":13, "gauche":26}
# Configurer les broches en sortie
GPIO.setup(fleche["avancer"],GPIO.OUT)
GPIO.setup(fleche["reculer"],GPIO.OUT)
GPIO.setup(fleche["droite"],GPIO.OUT)
GPIO.setup(fleche["gauche"],GPIO.OUT)
print("Activer la flèche avancer pendant 1 seconde :")
GPIO.output(fleche["avancer"],GPIO.HIGH)
time.sleep(1)
GPIO.output(fleche["avancer"],GPIO.LOW)
time.sleep(1)
print("Activer la flèche reculer pendant 1 seconde :")
GPIO.output(fleche["reculer"],GPIO.HIGH)
time.sleep(1)
GPIO.output(fleche["reculer"],GPIO.LOW)
time.sleep(1)
print("Activer la flèche droite pendant 1 seconde :")
GPIO.output(fleche["droite"],GPIO.HIGH)
time.sleep(1)
GPIO.output(fleche["droite"],GPIO.LOW)
time.sleep(1)
print("Activer la flèche gauche pendant 1 seconde :")
GPIO.output(fleche["gauche"],GPIO.HIGH)
time.sleep(1)
GPIO.output(fleche["gauche"],GPIO.LOW)
time.sleep(1)
# libérer les ports du GPIO utilises
GPIO.cleanup()
Ce programme fait s'allumer les 4 led à la chaîne.
Programme finale marche avant/arrière:
import RPi.GPIO as GPIO import time import click GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) moteur1 = {"PWM":17, "Avancer":27, "Reculer":22} fleche={"avancer":16, "reculer":19, "droite":13, "gauche":26} GPIO.setup(moteur1["PWM"], GPIO.OUT) GPIO.setup(moteur1["Avancer"], GPIO.OUT) GPIO.setup(moteur1["Reculer"], GPIO.OUT) GPIO.setup(fleche["avancer"],GPIO.OUT) GPIO.setup(fleche["reculer"],GPIO.OUT) GPIO.setup(fleche["droite"],GPIO.OUT) GPIO.setup(fleche["gauche"],GPIO.OUT) moteurPWM = GPIO.PWM(moteur1["PWM"], 50) continuer=1 dc=15 moteurPWM.start(0) moteurPWM.ChangeDutyCycle(dc) while continuer : key = click.getchar() if key=='z' : GPIO.output(moteur1["Avancer"],GPIO.HIGH) GPIO.output(moteur1["Reculer"],GPIO.LOW) GPIO.output(fleche["avancer"],GPIO.HIGH) GPIO.output(fleche["reculer"],GPIO.LOW) if key=='s' : GPIO.output(moteur1["Avancer"],GPIO.LOW) GPIO.output(moteur1["Reculer"],GPIO.HIGH) GPIO.output(fleche["avancer"],GPIO.LOW) GPIO.output(fleche["reculer"],GPIO.HIGH) if key=='e': GPIO.output(moteur1["Avancer"],GPIO.LOW) GPIO.output(moteur1["Reculer"],GPIO.LOW) GPIO.output(fleche["avancer"],GPIO.LOW) GPIO.output(fleche["reculer"],GPIO.LOW) if key=='r': if dc<=95: dc=dc+5 moteurPWM.ChangeDutyCycle(dc) if key=='f': if dc>=30: dc=dc-5 moteurPWM.ChangeDutyCycle(dc) if key=='a': continuer=0 moteurPWM.stop() GPIO.cleanup()