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> |