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()