top of page

Allumer une LED avec un bouton poussoir.

​

Ce dernier test nous a permis d'utiliser un composant plus complexe : le bouton poussoir.

​

sudo nano poussoir.py

# Importation des librairies pour controle du port GPIO
import RPi.GPIO as GPIO

# Declaration des emplacements
Poussoir = 18
LedRouge = 23
LedJaune = 24

# Acces au port GPIO avec la numerotation Broadcom
mode = GPIO.BCM         #Lecture des LED et bouton par "nom"
#mode = GPIO.BOARD      #Lecture des LED et bouton par emplacement

# Parametrage
def Parametrage():
    GPIO.setmode(mode)
    GPIO.setwarnings(False)
    GPIO.setup(Poussoir, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Ecoute le bouton
    GPIO.setup(LedRouge, GPIO.OUT, initial=GPIO.HIGH)       #Allume LED Rouge
    GPIO.setup(LedJaune, GPIO.OUT, initial=GPIO.LOW)      #Eteint LED Jaune

# Fonction appelee pour permuter les LED
def ChangeLed ():
    # Lecture de la LED (LOW = eteint // HIGH = allume)
    StatutLedRouge = GPIO.input(LedRouge)
    # On change l'etat des LED
    if StatutLedRouge == GPIO.HIGH:
        print ('On eteint la rouge')
        GPIO.output(LedRouge, GPIO.LOW)
        print ('On allume la jaune')
        GPIO.output(LedJaune, GPIO.HIGH)
    else:
        print ('On allume la rouge')
        GPIO.output(LedRouge, GPIO.HIGH)
        print ('On eteint la jaune')
        GPIO.output(LedJaune, GPIO.LOW)

# Fonction appelee si appui sur le bouton
def AppuiBouton(ev=None):
    print("Pression sur le boutton")
    ChangeLed()

# Boucle du programme pour intercepter les appels du bouttons poussoir
def Boucle():
    GPIO.add_event_detect(Poussoir, GPIO.FALLING, callback=AppuiBouton) #Attend d'etre appele
    while True:
        pass   # on ne fait rien

def Reinitialisation(): # Eteindre les LED et reinitialiser le circuit GPIO
    GPIO.output(LedRouge, GPIO.LOW)
    GPIO.output(LedJaune, GPIO.LOW)
    GPIO.cleanup()                     # Relacher les ressources

# Le programme demarre ici
if __name__ == '__main__':
    Parametrage()
    try:
        Boucle()
    except KeyboardInterrupt:  # Si on interrompt le programme, on passe d'abord par la fonction Reinitialisation
        Reinitialisation()

 

Nous avons trouvés le programme sur le site "https://bitbucket.org/raspberryteam/raspberryexamples/src/6146ec580a2aa554ed33ad16958c7e542e5abeba/Programmes/02-pushbtn.py?at=master&fileviewer=file-view-default" et nous l'avons ensuite modifié pour pouvoir l'utiliser avec notre circuit.

​

Nous avons utilisé 2 LED, un bouton poussoir, 2 résistances et une nappe pour relier le Raspberry à une platine d'essai. Les LED sont reliées à la masse du Raspberry et sont branchées au port GPIO avec une résistance de 330 Ohms entre chaque LED et le port GPIO. La LED rouge est branchée sur le port 23 du GPIO et la LED jaune est branchée sur le port 24. Le bouton poussoir est relié à la masse du Raspberry sur une patte et au GPIO 18 sur l'autre patte.

​

​

Avec ce circuit et ce programme, nous avons pu changer l'état de 2 LED et ainsi les allumer ou les éteindre. 

​

Ce programme est plus complexe avec la définition de fonctions liées au paramétrage du programme, au changement d'état des LED et à l'appui du bouton poussoir. Comme le précédent programme, celui se répète indéfiniment jusqu'à l'intervention de l'utilisateur et l'appui des touches "Ctrl+C".

​

En conclusion, ces 3 tests nous aurons permis de nous familiariser avec l'utilisation du Raspberry et du langage Python. Nous pouvons maintenant commencer les montages pour la réalisation d'une voiture autonome.

bottom of page