Projet 1 – Activité 3

”Allumer ou éteindre une DEL
avec un bouton-poussoir”

 

 

. Objectif

Dans cette activité, quand les DELs sont éteintes, si on appuie sur le bouton poussoir, une DEL préalablement choisie s’allume, mais contrairement à l’activité précédente la DEL ne s’éteint pas quand on relâche le bouton poussoir.

En effet, si une des DELs est allumée, elle s’éteint en appuyant à nouveau sur le bouton poussoir. Cette fois, le principe de fonctionnement du bouton poussoir est comme celui d’un interrupteur.

Pour réaliser cette activité, on va demander à 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. A l’aide de variables permettant de stocker les valeurs (actuelle et précédente) de cet état, l’Arduino pourra savoir quelle action effectuer (allumer ou éteindre la DEL) après l’appui sur le bouton poussoir.

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/Activity3/PY/Activity3.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)

. OldValButton = 0 (variable pour stocker la valeur précédente de l’état logique de la broche du bouton poussoir)

. State = 0 (variable correspondant à l’action à effectuer)

. 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”) :

 

. Programme en langage Arduino (”Projet1/Activity3/INO/Activity3.ino”)

Déroulement du programme :