Sur ce montage, la LED est reliée :
Découvrez l'environnement de programmation Thonny Python IDE pour vos scripts Python
import RPi.GPIO as GPIO # Choix de la numerotation BCM GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT) # le GPIO4 est une sortie numerique GPIO.setup(4, GPIO.OUT, initial=GPIO.HIGH)# le GPIO4 est une sortie initialement a l'etat haut GPIO.output(4, GPIO.HIGH) # allumer la LED : etat haut GPIO.output(4, GPIO.LOW) # eteindre la LED : etat bas
GPIO.output(4, not GPIO.input(4))
À la fin de tout programme, il est conseillé de remettre les Entrées/sorties dans l'état où le programme les a trouvées. On n'impactera ainsi que les E/S utilisées.
GPIO.cleanup()
Exercice : faire un programme qui fait clignoter une LED. Pour cela utilisez le module time.
import time # Attendre 1/2 seconde time.sleep(0.5)
La bibliothèque gpiozero permet une programmation simplifiée.
from gpiozero import LED led = LED(2) led.on() # allumer la led led.off() # eteindre la led led.blink() # faire clignoter la led led.off() # eteindre la led
led.blink(on_time=x, off_time=y, n=z) # on_time : durée d'éclairage de la LED # off_time : durée d'extinction de la LED # n : nombre de clignotement
Le branchement du bouton :
Cette résistance pull-up permet :
Lorsque l'on pousse le bouton poussoir, le potentiel du GPIO26 est forcé à LOW (valeur 0 - niveau bas) par la mise à la masse.
La LED est toujours reliée à la masse et à la broche 40 (GPIO21).
# Import des modules import RPi.GPIO import time # Initialisation de la numerotation et des E/S GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.OUT, initial=GPIO.LOW) # la led GPIO.setup(26, GPIO.IN) # le bouton # Si on detecte un appui sur le bouton, on allume la LED # et on attend que le bouton soit relache while True: state = GPIO.input(26) if not state: # on a appuye sur le bouton connecte sur la broche 26 GPIO.output(21, GPIO.HIGH) while not state: state = GPIO.input(10) time.sleep(0.02) # Pause pour ne pas saturer le processeur GPIO.output(21, GPIO.LOW) time.sleep(0.02) # Pause pour ne pas saturer le processeur
from gpiozero import LED, Button from signal import pause led = LED(21) bouton = Button(26) bouton.when_pressed = led.on bouton.when_released = led.off pause()
L'instruction bouton.when_pressed = led.on n'appelle pas la fonction (méthode) led.on mais crée une référence à cette fonction de telle sorte que la fonction led.on sera appelée seulement quand l'événement bouton.when_pressed se produira.
De la même l'instruction bouton.when_released = led.off permet d'indiquer qu'il faut exécuter la fonction (méthode) led.off quand on relâche le bouton.
Pour en savoir plus sur gpiozero : gpiozero.pdf
Travail à faire : réaliser un feu tricolore avec un bouton pour piéton :