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.

b) Modifier le programme pour imprimer seulement quand l'état de l'interrupteur change.

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 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 LEDs et enclencher si le bouton est pressé une première fois et la déclencher 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

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2021-07-05 - UliRaich
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback