Exercices avec les interrupteurs
Exercice 1 :
Connecter l'interrupteur à un pin GPIO. L'interrupteur mécanique 1-button du kit WeMos D1 utilise GPIO 22.
a) Écrire un script qui lit l'état de l'interrupteur à un intervalle de 100 ms et imprime le résultat. Utiliser la résistance "pull-up" du port GPIO de l'ESP32.
b) Modifier le programme pour imprimer seulement quand l'état de l'interrupteur change.
c) Allumer la LED sur la carte CPU si l'interrupteur est poussé.
Exercice 2 :
Accomplir la même tache qu’exercice 1b mais en utilisant les interruptions et une routine "callback".
Exercice 3 :
Combiner cet exercice avec l'exercice des LEDs: Allumer la LED utilisateur sur la carte CPU si le bouton est pressé et l'éteindre quand le bouton est relâché.
Exercice 4 :
Modifié l'exercice 3 de telle sorte que la LED est enclenché si le bouton est pressé une première fois et déclenché si on pousse le bouton une deuxième fois. On trouve ce type d'interrupteurs sur les lampes de bureau. Vous pouvez trouver que votre programme ne marche pas correctement d'une manière aléatoire ce qui peut être causé par des rebonds de l'interrupteur (switch bouncing). Dans ce cas rajouter à votre programme un algorithme qui ne prend pas en compte des changements d'état de l'interrupteur pendent 20 ms après le premier changement. (Attendre que l'état de l'interrupteur se stabilise).
Attention : Les rebonds arrive aussi bien en poussant le bouton qu’en le relâchant.
Exercice 5 :
L'ESP32 possède une interface pour lire les capteurs de touché capacitifs. (voir
https://docs.micropython.org/en/latest/esp32/quickref.html?highlight=touchpad#capacitive-touch)
Écrire un script qui détermine si le bout d'un câble a été touché ou non. On peut aussi allumer la LED si le câble est touché et l'éteindre sinon.
Exercice 6 :
Écrire un programme qui vérifie avec un capteur PIR si une personne est proche.
--
Uli Raich - 2021-07-05
Comments