Table des matières

Raspberry : montage et programmation avec une LED

Montage à réaliser

Sur ce montage, la LED est reliée :

Code des couleurs

* https://www.apprendre-en-ligne.net/crypto/passecret/ohm.html

Programmation Python avec la bibliothèque RPi.GPIO

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
  • L'état haut correspond à GPIO.HIGH c'est à dire 1 ou encore True.
  • L'état bas correspond à GPIO.LOW c'est à dire 0 ou False.

Un bouton pour allumer la led

Montage

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). ==== Programmation avec la bibliothèque GPIO ==== <code python> # 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 </code> ==== Programmation avec la bibliothèque gpiozero ==== <code python> from gpiozero import LED, Button from signal import pause led = LED(21) bouton = Button(26) bouton.whenpressed = led.on bouton.whenreleased = led.off pause() </code>

L'instruction bouton.whenpressed = 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. </WRAP>

Pour en savoir plus sur gpiozero : gpiozero.pdf

Travail à faire : réaliser un feu tricolore avec un bouton pour piéton :

  • les feux doivent passer régulièrement du vert à l'orange puis au rouge avec la temporisation de votre choix,
  • si un piéton appuie sur le bouton :
    • le feu passe immédiatement à l'orange puis au rouge,
    • le feu rouge doit durer plus longtemps que durant le cycle normal,
    • puis le cycle habituel reprend avec la temporisation initiale.

==== Les activités … ====