Skip to content

Faire clignoter 2 LEDs à vitesse différentes

Ce que l'on va faire ici

Dans ce programme Micropython, nous allons faire clignoter non pas une mais 2 LEDs à des vitesses différentes.

Success

Ce programme vous montre tout l'intérêt d'utiliser des Timers pour faire du "multi-tâches" très simplement. Merci Micropython !

Matériel

  • une carte Pi Pico flashée avec MicroPython et préparée pour utilisation en vertical sur plaque d'essai

  • 2 x LED 5mm

  • 2 x résistance 270 Ohms (entre 200 et 300 Ohms)

  • une petite plaque d'essai

  • quelques jumpers

Une autre possibilité est l'utilisation de 2 modules prêt à câbler à LED :

Le schéma théorique

Les 2 LEDs en série avec leur résistance sont connectée entre une broche et le 0V (GND).

Le montage à réaliser

  • On utilise ici la carte Pi Pico en vertical sur la plaque d'essai.
  • La 1ère LED et la résistance en série sont connectées sur la broche 16.
  • La 2ème LED et la résistance en série sont connectées sur la broche 18.

  • Le bus du 0V de la plaque d'essai est connecté à une broche GND de la carte.

Le code

  • les broches utilisées sont mises en sortie
  • on utilise 2 Timers pour assurer le clignotement à des fréquences différentes
# code Micropython - www.micropython.fr - CC-BY-SA

from machine import Pin, Timer # importe les classes Pin et Timer

led1=Pin(16,Pin.OUT) # déclaration broche en sortie
led2=Pin(18,Pin.OUT) # déclaration broche en sortie

timer1=Timer() # création objet timer
timer2=Timer() # création objet timer

def loop1(timer1): # fonction de clignotement
    led1.toggle() # inverse état LED

def loop2(timer2): # fonction de clignotement
    led2.toggle() # inverse état LED

# rappel fonction loop à fréquence voulue
timer1.init(freq=2, callback=loop1) 

# rappel fonction loop à fréquence voulue
timer2.init(freq=10, callback=loop2) 

# Note : La LED clignote à la fréquence f/2

Résultat

Les 2 LEDs clignotent à des fréquences différentes.

Info

N'hésitez pas à modifier la valeur des fréquences de clignotement pour voir les LEDs clignoter à des fréquences différentes.