Comment faire clignoter deux LED en alternance sur le Raspberry Pi ?
Il est possible de connecter les composants électroniques sur la breadboard sans T-cobbler. Dans ce cas, tu as besoin d'un câble jumper de type femelle - mâle pour la connexion au connecteur J6 du Raspberry Pi, c'est-à-dire une prise pour le Raspberry Pi et une prise pour le breadboard.
Le code du programme (LED clignotant en alternance sur le Raspberry Pi)
# A partir d'ici, le code peut être copié directement dans le logiciel Python.
# En noir, en couleur = code et en gris = explications
#Nous commençons par importer les modules du programme
import RPI.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # Nous réglons le mode sur BCM
GPIO.setup(23,GPIO.OUT) #La broche 23 est une sortie.
GPIO.setup(24,GPIO.OUT) #Pin 24 est une sortie.
# Ici commence la boucle
try:
while True : #Boucle While pour que le programme fonctionne sans interruption
GPIO.output(23,GPIO.HIGH) # Allume la LED sur la broche 23.
GPIO.output(24,GPIO.LOW) # Eteint la LED sur la broche 24.
time.sleep(1) # Attendre 1 seconde
GPIO.output(23,GPIO.LOW) # Eteint la LED sur la broche 23.
GPIO.output(24,GPIO.HIGH) # Allume la LED sur la broche 24.
time.sleep(1)
# Ici à la fin, le programme saute au début de la partie de la boucle. Alors..
# ...allume la LED sur la broche 23.
# ... etc... etc... etc..
except KeyboardInterrupt : # Avec CTRL+C, nous interrompons le programme
print ("Terminé") # Ecris "Terminé" dans la fenêtre du shell
GPIO.cleanup() # Terminer le programme
Dans l'exemple n° 01 LED clignotante, nous avions réalisé la boucle infinie avec while True et l'indentation des lignes de code suivantes. Celui qui a interrompu cette boucle infinie avec la combinaison de touches Ctrl-C aura remarqué que, premièrement, il reçoit un message d'erreur et que, deuxièmement, la LED continue éventuellement de briller. Pour éviter ces deux effets indésirables, quelques lignes de code ont été ajoutées dans cet exemple. Avant la boucle while True, la ligne try : est insérée. Les deux points entraînent l'indentation de toute la boucle. Si une erreur se produit dans cette boucle lors de l'exécution du programme, il n'y a pas de message d'erreur, mais le programme se poursuit à except KeyboardInterrupt :. La commande print permet d'afficher la fin du programme dans le shell Python (fenêtre inférieure chez Thonny), GPIO.cleanup() permet d'éteindre les GPIO (donc nos LED) et de les libérer pour d'autres utilisations.
Exemple : cycle de feux de signalisation sur Raspberry Pi
Voici une proposition de solution pour un cycle de feux de signalisation en utilisant le module gpiozero :