”Clignotement d’une DEL à une allure fixée par une entrée analogique”
![](https://www.ardpylab.fr/wp-content/uploads/2020/04/projet2-circuit5.png)
. Objectif
Maintenant que nous maîtrisons le fonctionnement d’une sortie analogique, nous allons aborder, dans cette activité, l’étude des entrées analogiques de l’Arduino.
Ces entrées (A0 à A5), qui peuvent être également utilisées en entrées digitales, sont capables de mesurer la tension réelle, entre 0 et 5V, qui leur est appliquée. On utilisera ces entrées pour les acquisitions avec des capteurs qui délivrent une tension entre 0 et 5 V suivant ce qu’ils mesurent.
Ici, le capteur utilisé est une photorésistance (voir le principe de fonctionnement d’une photorésistance), dont la résistance varie en fonction de l’intensité lumineuse qu’elle reçoit. C’est donc un capteur résistif.
La sortie de la photorésistance est branchée sur une des entrées analogiques de la carte Arduino (entrée A5).
L’objectif est de faire clignoter une DEL à une fréquence dépendant de la lumière ambiante.
Pour cela, on va faire varier le délai entre 2 allumages de la DEL en fonction de la tension de l’entrée A5 et donc de l’intensité lumineuse reçue par la photorésistance.
Quand l’intensité lumineuse reçue par la photorésistance diminue, la fréquence de clignotement augmente
Le code pourra être modifié pour voir l’influence des variables (choix de la DEL).
. Le programme
. Programme en Python (”Projet2/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 = 11 (constante correspondant au n° de la broche sur laquelle la DEL choisie est connectée)
. PinSensor = 5 (constante correspondant au n° de la broche A5 sur laquelle la photorésistance est connectée)
. ValSensor = 0 (variable pour stocker la valeur de la tension de la broche de la photorésistance)
. 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 de la photorésistance en entrée analogique :
PinAnalogInput = AnalogInput(board, PinSensor)
– Attente de 500 ms pour le lancement de l’itérateur
– Boucle principale du programme (boucle ”while True”) :
![](https://www.ardpylab.fr/wp-content/uploads/2020/04/projet2-activity2-1-1-1024x917.png)
. Programme en langage Arduino (”Projet2/Activity2/INO/Activity2.ino”)
Déroulement du programme :
![](https://www.ardpylab.fr/wp-content/uploads/2020/04/projet2-activity2-4-2-662x1024.png)