Faire clignoter 3 LEDs à des fréquences différentes avec 3 Timers¶
Ce que l'on va faire ici¶
Dans ce programme Micropython, nous allons faire clignoter 3 LEDs à des vitesses différentes... mais avec 3 timers !
Matériel¶
- une carte Pi Pico flashée avec MicroPython et préparée pour utilisation en vertical sur plaque d'essai
- 1 module "prêt à câbler" à 3 LEDs Rouge, Jaune, Vert
- +/- une petite plaque d'essai (pas indispensable ici)
- quelques jumpers
Le schéma théorique¶
On connecte logiquement 4 broches :
- celle commune à l'ensemble des LEDs est le - (cathode commune) à connecter à GND (=0V)
- et une pour chaque LED de couleur à connecter à une broche de la carte en sortie.
Le montage à réaliser¶
On utilise ici la carte Pi Pico en vertical sur la plaque d'essai.
Ici, on connecte :
- la LED verte sur la broche 18
- la LED jaune sur la broche 19
- la LED rouge sur la broche 20
Le 0V du module est connecté à la broche GND de la carte adjacente à la broche 18.
Info
En utilisant un câble 4 brins, le montage est très propre.
Le code¶
-
les broches utilisées sont mises en sortie sous forme d'un
list
-
pour chaque LED, un timer appelle la fonction loop() à intervalle régulier, chaque timer ayant une fréquence différente.
# code Micropython - www.micropython.fr - CC BY SA
from machine import Pin, Timer # importe les classes Pin et Timer
leds=[Pin(18,Pin.OUT), Pin(19,Pin.OUT), Pin(20,Pin.OUT)]
vert, jaune, rouge=0,1,2 # index des LEDs
timer=Timer() # création objet timer
timer0=Timer() # création objet timer
timer1=Timer() # création objet timer
timer2=Timer() # création objet timer
def loop0(timer0): # fonction de clignotement
leds[vert].toggle() # inverse état LED
def loop1(timer1): # fonction de clignotement
leds[jaune].toggle() # inverse état LED
def loop2(timer2): # fonction de clignotement
leds[rouge].toggle() # inverse état LED
# rappel fonction loop à fréquence voulue
timer0.init(freq=2, callback=loop0)
timer1.init(freq=5, callback=loop1)
timer2.init(freq=11, callback=loop2)
Résultat¶
Les 3 LEDs clignotent à des fréquences différentes.
Info
N'hésitez pas à modifier les valeurs des fréquences de clignotement.