Utiliser les timers et les interrupions de la Pi Pico dans un script MicroPython
Définition
On souhaite ici définir une durée avant qu’une interruption se déclenche.
Script squelette minimal
Script minimal
Ce script minimal ci-dessous permet de déclencher l’interruption interruption_handler()
à la fin de chaque période du timer.
1 2 3 4 5 6 |
|
Ici la période du timer est fixée à 1000ms soit 1 seconde.
- Le mode
Timer.PERIODIC
pour que l’interruption se déclenche chaque fois que la période du timer est atteinte ouTimer.ONE_SHOT
pour avoir un seul déclenchement - La période du timer voulue en millisecondes ici
1000
- La routine d’interruption (la fonction) qui sera invoquée via l’interruption déclenchée par le timer, ici
interruption_handler
.
Application - Clignotement
Objectif
Avec ce script, la LED intégrée de la Pico se met à clignoter toutes les secondes, sans utiliser de boucles.
1 2 3 4 5 6 7 8 9 10 11 |
|
J’utilise une petite astuce pour inverser l’état de la LED. On récupère l’état actuel de la LED avec pin_led.value()
, soit 0 ou 1, on inverse la valeur avec l’opérateur not
. On utilise la même fonction pin_led.value()
pour actualiser la nouvelle valeur.
Exercice 8.1
Exécuter le programme précédent.
Application - Incrémenter une variable
Objectif
Voici un script Python qui incrémente une variable à chaque interruption du timer
.
Dans la boucle principale, lorsque la variable vaut 10, une tâche précise qui peut prendre plusieurs secondes à être exécutée est réalisée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Exercice 8.2
Exécuter le programme précédent.