MagPI 3 Page 9

De Le French MagPi
Aller à : Navigation, rechercher

Lorsque vous en avez assez, appuyez sur les touches CTRL-C (Control-C) pour arrêter le programme.

Voir la LED qui s'allume lorsque l'on appuie sur un bouton n'est pas vraiment utile car cela nous donne le même résultat obtenu précédemment avec la LED connectée directement au commutateur. Créons quelque chose de plus intéressant.

L'électronique meurt

Parce que la LED et le commutateur sont maintenant indépendants, nous avons une utilisation plus flexible. Nous allons écrire un programme qui va faire clignoter un nombre au hasard entre 1 et 6 lorsque le bouton est pressé.

  1. !/usr/bin/python

import RPi.GPIO as GPIO import time import random GPIO.setup (11, GPIO.IN) GPIO.setup (12, GPIO.OUT) while True: if not GPIO.input(11): # Si on appuie sur le bouton clignote = random.randint(1,6) # Génération du nombre entier aléatoire while not GPIO.input(11): # Tant que le bouton n'est pas relâché GPIO.output(12,True) while clignote > 0: # Tant que le chiffre aléatoire est strictement supérieur à 0 GPIO.output(12, False) # Allumé la LED time.sleep(.5) # Attendre 0,5 seconde GPIO.output(12, True) # Eteindre la LED time.sleep(.5) # Attendre 0,5 seconde clignote -= 1 # On enlève 1 à clignote else: GPIO.output(12,True) # On éteint tout

Description du programme

Le programme commence avec une boucle while (tant que) qui attend l'appuie sur le bouton. Dès que l'on appuie sur le bouton, nous générons un nombre entier aléatoire compris entre 1 et 6. Un nombre entier signifie un chiffre rond sans virgule pour avoir des nombres comme 2 et 3 plutôt que 2,45678. Dès que le chiffre aléatoire a été généré, nous attendons que le bouton soit relâché avant de continuer pour éviter les tricheries. Lorsque le bouton est relâché, nous entrons dans une boucle de compte à rebours qui fait clignoter la LED et enlève 1 à chaque clignotement jusqu'à ce qu'il atteigne 0. Le programme retourne alors dans la boucle principale où il attend que l'on appuie de nouveau sur le bouton pour recommencer.

Conclusion

Nous avons maintenant couvert les basiques du monitoring de l'état d'une entrée pour changer l'état allumé/éteint (on/off) en utilisant une sortie (output). Avec cette simple mise en place d'un commutateur et d'une LED, nous pouvons déjà faire des choses utiles.

Pourquoi ne pas essayer de modifier le programme AppuiSurBouton pour que la LED soit allumé mais s'éteigne lorsque l'on appuie sur le bouton. Il y a plusieurs moyen d'y arriver, pouvez-vous trouver deux ou plusieurs moyens ?

Beaucoup de gens ont demandé comment contrôler des éléments qui demande plus de courant qu'une petite LED. Dans le prochain lab, nous verrons différents moyens pour y parvenir.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils