| Ligne 116 : |
Ligne 116 : |
| | | | |
| | xxx | | xxx |
| | + | |
| | + | == Script Python - déparasitage logiciel == |
| | + | Voici le script Python incluant le déparasitage logiciel du bouton.<br /> |
| | + | En plus de faire le déparasitage, il stocke également l'état du bouton dans la variable '''BUTTON1_STATE''' en faisant en sorte qu'il soit le vrai reflet de l'état du bouton.<br /> |
| | + | Lorsque le bouton est enfoncé, BUTTON1_STATE est True, lorsque le bouton est relâché BUTTON1_STATE est False. |
| | + | |
| | + | <nowiki>#!/usr/bin/env python |
| | + | # -*- coding: latin-1 -*- |
| | + | |
| | + | import RPi.GPIO as GPIO, time |
| | + | |
| | + | GPIO.setmode(GPIO.BCM) |
| | + | GREEN_LED = 18 |
| | + | RED_LED = 23 |
| | + | |
| | + | BUTTON1 = 24 |
| | + | # Dernier état connu du bouton |
| | + | # Par defaut: le bouton n'est pas considéré comme activé |
| | + | BUTTON1_STATE = False |
| | + | |
| | + | GPIO.setup(GREEN_LED, GPIO.OUT) |
| | + | GPIO.setup(RED_LED, GPIO.OUT) |
| | + | GPIO.setup(BUTTON1, GPIO.IN) |
| | + | |
| | + | while True: |
| | + | # -- Lecture avec déparasitage logiciel |
| | + | # Si le bouton est pressé, la broche GPIO est raccordée |
| | + | # à la masse. Le GPIO est donc à LOW (bas). |
| | + | # Bouton pressé -> Input = LOW = False |
| | + | gpioRead1 = GPIO.input( BUTTON1 ) |
| | + | state1 = not(gpioRead1) |
| | + | # SI changer d'etat ALORS refaire lecture de déparasitage |
| | + | if( state1 != BUTTON1_STATE ): |
| | + | # - attendre 10ms |
| | + | time.sleep( 10 / 1000 ) |
| | + | # faire une 2ieme lecture |
| | + | gpioRead2 = GPIO.input( BUTTON1 ) |
| | + | state2 = not(gpioRead2) |
| | + | # SI les deux lectures concordent |
| | + | # ALORS memoriser le nouvel etat du bouton |
| | + | if( state1 == state2 ): |
| | + | BUTTON1_STATE = state2 |
| | + | |
| | + | |
| | + | # -- Programme principal -- |
| | + | # SI le bouton est pressé |
| | + | # ALORS allumer la LED verte |
| | + | if( BUTTON1_STATE == True ): |
| | + | GPIO.output(GREEN_LED, False) |
| | + | GPIO.output(RED_LED, True) |
| | + | else: |
| | + | GPIO.output(GREEN_LED, True) |
| | + | GPIO.output(RED_LED, False) |
| | + | </nowiki> |