”Allumer une DEL avec un bouton-poussoir”
. Objectif
Dans cette activité, la DEL, préalablement choisie, s’allume en appuyant sur le bouton poussoir et s’éteint si on le relâche. L’objectif est de se familiariser avec les entrées numériques de l’Arduino.
En effet, en appuyant sur le bouton poussoir, une tension de + 5V est appliquée sur la broche sur laquelle celui-ci est connecté. La broche est alors à un niveau haut. Si on relâche le bouton poussoir, le circuit électrique est ouvert, la tension sur la broche du bouton poussoir est alors de 0 V et passe à un niveau bas.
Si on demande à l’Arduino d’interroger l’état logique (niveau haut ou bas) de la broche du bouton poussoir qui a été déclaré comme une entrée numérique, on peut savoir si celui-ci est appuyé ou pas et donc lui donner l’ordre d’allumer ou d’éteindre la DEL.
Le code pourra être modifié pour voir l’influence des variables (numéro de la broche de la DEL).
. Le programme
. Programme en Python (”Projet1/Activity2/PY/Activity2.py”)
Déroulement du programme :
– Importation des librairies et définition de fonctions :
. Le module ”ConnectToArduino.py”, contenant les fonctions de connexion à l’Arduino via le protocole ”Firmata standard”,
. Le module ”PyFirmataDef.Py” regroupant toutes les fonctions utiles à l’utilisation de ”PyFirmata” (fonction de déclaration des entrées et sorties, d’itérateur, d’écritures…)
. La bibliothèque ”time” pour la gestion des temps de pause.
– Déclaration des constantes et variables :
. PinLED = 8 (constante correspondant au n° de la broche sur laquelle la DEL rouge est connectée)
. PinButton = 12 (cst correspondant au n° de la broche sur laquelle le bouton poussoir est connecté)
. ValButton = 0 (variable pour stocker la valeur de l’état logique de la broche du bouton poussoir)
. PortComArduino (port COM sur lequel l’Arduino est connecté)
– Connexion à l’Arduino :
. Détection du port COM, tentative d’ouverture du port COM sélectionné et connexion à l’Arduino:
PortComArduino = SelectPortCOM()
board = OpenPortCom(PortComArduino)
. Si la connexion à l’Arduino est réussie:
– Lancement de l’itérateur :
ArduinoIterateur = Iterateur(board),
– Déclaration de la broche du bouton poussoir en entrée digitale :
InputPin = DigitalInput(board, PinButton),
– Attente de 500 ms pour le lancement de l’itérateur
– Boucle principale du programme (boucle ”while True”) :
. lecture de l’état logique de la broche du bouton poussoir :
ValButton = InputPin.read()
. La DEL est allumée ou éteinte suivant la valeur de ValButton :
if ValButton == 1:
DigitalWrite(board,PinLED,1)
else:
DigitalWrite(board,PinLED,0)
– Fin du programme en appuyant sur Ctrl-C :
–> La DEL est éteinte et le port COM est fermé.
. Programme en langage Arduino (”Projet1/Activity2/INO/Activity2.ino”)
Déroulement du programme :