”Thermomètre à diodes électroluminescentes ”
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity3-0.png)
. Objectif
Dans cette activité, nous allons utiliser les DELS rouge, verte et bleue afin de visualiser la zone dans laquelle se situe la température mesurée (Tmesurée) par un capteur TMP 36 ou LM 35 par rapport à une valeur de référence (Tref) et un écart de température (ΔT) à définir :
![](https://www.ardpylab.fr/wp-content/uploads/2020/03/image-97.png)
. Le programme
Le code de l’activité en Python ou en langage Arduino pourra être modifié pour voir l’influence des variables (température de référence, écart de température).
. Programme en Python (”Projet5\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 Express”,
. Le module ”PymataExpressDef.Py” regroupant toutes les fonctions utiles à l’utilisation de ”Pymata-express” (fonction de déclaration des entrées et sorties, de lectures, d’écritures…),
. La bibliothèque ”time” pour la gestion des temps de pause.
– Déclaration des constantes et variables :
. PinSensor = 0 (cst correspondant au n° de la broche A0 sur laquelle le capteur de température est connecté)
. ValSensor = 0 (variable pour stocker la valeur de la broche du capteur de température)
. tension = 0 (variable correspondant à la valeur de la tension en V de la broche du capteur de température)
. Temp = 0 (variable correspondant à la température en °C calculée à partir de la valeur de la broche du capteur)
. OldTemp = 0 (variable correspondant à la température en °C calculée précédemment)
. TempRef = 20 (constante correspondant à la température de référence en °C)
. DT = 1 (cst correspondant à l’écart de température en °C par rapport à la température de référence)
. PinButton = 12 (cst correspondant au n° de la broche sur laquelle le bouton poussoir est connecté)
. PinLedR = 8 (cst correspondant au n° de la broche sur laquelle la DEL rouge est connectée)
. PinLedV = 7 (cst correspondant au n° de la broche sur laquelle la DEL verte est connectée)
. PinLedB = 2 (cst correspondant au n° de la broche sur laquelle la DEL verte est connectée). 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)
. OldState = 0 (variable pour stocker la valeur précédente de la variable state)
. 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 :
– Déclaration de la broche du capteur de température en entrée analogique :
Set_AnalogInput_Pin(board, PinSensor)
– Déclaration des broches des DELs en sorties numériques :
Set_DigitalOutput_Pin(board, PinLedR)
Set_DigitalOutput_Pin(board, PinLedV)
Set_DigitalOutput_Pin(board, PinLedB)
– Déclaration de la broche du bouton poussoir en entrée numérique :
Set_DigitalInput_Pin(board, PinButton)
– Boucle principale du programme (boucle ”while True”) :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity3-2.png)
Résultats dans la fenêtre Python Shell :
![](https://www.ardpylab.fr/wp-content/uploads/2020/05/projet5-activity3-3.png)
. Programme en langage Arduino (”Projet5\Activity3\INO\Activity3.ino”)
Le code de l’activité en langage Arduino a déjà été étudié dans la partie:
”Activités pour les lycées / Températures / Activité 3”