CARTE DE DEVELOPPEMENT RASPBERRY PICO W

LED intégrée à la carte
Sur la Raspberry Pi Pico, il y a une petite LED intégrée à la carte.
Cette LED est reliée à une broche spéciale.
Quand on met cette broche :
- à 1 (ON) → la LED s’allume
- à 0 (OFF) → la LED s’éteint

Comment la Pico contrôle la LED ?
La Pico utilise une sortie numérique.
C’est comme un interrupteur :
- ON = courant qui passe
- OFF = courant coupé
En MicroPython, on utilise la classe Pin.
Allumer la LED
from machine import Pin
led = Pin("LED",Pin.OUT) # LED sur la carte
led.on() # Allumer la LED
La LED s’allume
Eteindre la LED
led.off() # Éteindre la LED
La LED s’éteint
Faire clignoter la LED
from machine import Pin
from time import sleep
led = Pin("LED", Pin.OUT)
while True:
led.on() # LED allumée
sleep(1) # attendre 1 seconde
led.off() # LED éteinte
sleep(1) # attendre 1 seconde
Résultat :
- la LED s’allume 1 seconde
- puis s’éteint 1 seconde
- et recommence en boucle
Une autre façon
from machine import Pin, Timer
# led de la carte
led=Pin("LED",Pin.OUT)
timerLed=Timer() # déclare un objet timer
def loopLed(timerLed):
led.toggle()
timerLed.init(freq=5, callback=loopLed)
La LED clignote toute seule, sans bloquer le programme.
C’est comme une alarme tous les x secondes :
- tu règles l’heure
- et il sonne tout seul
- même si tu fais autre chose
Création du timer
Timer→ pour créer un minuteur automatique
timerLed = Timer()
On crée un minuteur qui appellera une fonction tout seul.
Démarrage du timer
timerLed.init(freq=5, callback=loopLed)
freq=5→ 5 fois par secondecallback=loopLed→ appelle la fonctionloopLed
La fonction appelée par le timer
def loopLed(timerLed):
led.toggle()
Cette fonction :
- est appelée automatiquement par le timer
- change l’état de la LED à chaque appel (allumée, éteinte)
Faire clignoter une LED sur le PIN GP2
Installe une LED de couleur bleue sur le port GP2 :

from machine import Pin, Timer
# led de la carte
ledBlue=Pin(2,Pin.OUT)
timerLedBlue=Timer() # déclare un objet timer
def loopLedBlue(timerLedBlue):
ledBlue.toggle()
timerLedBlue.init(freq=1, callback=loopLedBlue)
Faire clignoter une LED bleue avec un Timer
(sans boucle
while)
- La LED clignote toute seule,
- une fois par seconde,
- sans bloquer le programme.
C’est comme un réveil :
- tu règles le rythme
- et il déclenche la LED tout seul
- pendant que le programme fait autre chose
La LED
ledBlue = Pin(2, Pin.OUT)
La LED est branchée sur la broche 2
C’est une sortie (ON / OFF)
Allumer / éteindre une LED avec un bouton poussoir (interruption)
Quand on appuie sur le bouton poussoir :
- la LED change d’état
- allumée → éteinte
- éteinte → allumée
Installe une LED de couleur bleue sur le port GP2 et un bouton poussoir sur GP3 :
Le code complet
from machine import Pin, Timer
# led de la carte
ledBlue = Pin(2, Pin.OUT)
button1 = Pin(3, Pin.IN, Pin.PULL_UP)
ledBlue.off()
button1.irq(
#définition de l'interruption sur la broche
handler = lambda btn1: ledBlue.toggle(),
# mode de déclenchement IRQ_RISING IRQ_FALLING
trigger = button1.IRQ_FALLING
)
Explication ligne par ligne
Importation
from machine import Pin, Timer
On utilise :
Pin→ pour la LED et le bouton
La LED bleue sur GP2
ledBlue = Pin(2, Pin.OUT)
La LED est branchée sur la broche 2
C’est une sortie (ON / OFF)
Le bouton poussoir sur GP3
button1 = Pin(3, Pin.IN, Pin.PULL_UP)
Le bouton est :
- sur la broche 3
- configuré en entrée
- avec une résistance pull-up interne
Pull-up, ça veut dire :
- sans appui → niveau 1
- bouton appuyé → niveau 0
Éteindre la LED au départ
ledBlue.off()
On commence avec la LED éteinte
État connu = pas de surprise
La partie la plus importante : l’interruption
button1.irq(
handler = lambda btn1: ledBlue.toggle(),
trigger = button1.IRQ_FALLING
)
C’est quoi une interruption ? :
- le programme fait autre chose
- Ding ! → bouton appuyé
- la Pico réagit tout de suite
IRQ_FALLING
L’interruption se déclenche :
- quand le signal passe de 1 à 0
- donc quand on appuie sur le bouton
(parce qu’il est en pull-up)
ledBlue.toggle()
toggle() le LED inverse son état :
- ON → OFF
- OFF → ON
Pourquoi lambda btn1: ?
C’est une petite fonction rapide :
lambda btn1: ledBlue.toggle()
- Elle est appelée automatiquement
btn1représente le bouton (obligatoire)- On n’en a pas besoin ici, mais MicroPython l’exige
Pourquoi utiliser une interruption ? (le gros avantage)
Sans interruption
while True:
if button1.value() == 0:
ledBlue.toggle()
sleep(0.3)
Le programme regarde le bouton tout le temps
Risque de rater un appui
Le robot est ralenti
Avec interruption
- Le bouton est détecté instantanément
- Le programme reste rapide
C’est quoi lambda en Python ?
lambda permet de créer une toute petite fonction,
- en une seule ligne,
- sans lui donner de nom.
Une fonction jetable, rapide à écrire.
Une fonction normale (classique)
def addition(a, b):
return a + b
Cette fonction :
- a un nom (
addition) - fait une action
- renvoie un résultat
La même chose avec lambda
addition = lambda a, b: a + b
C’est exactement pareil, mais :
- en une seule ligne
- plus court
- sans
def
Comment lire une lambda
lambda a, b: a + b
Ça se lit comme :
« Une fonction qui prend
aetbet qui retournea + b»
Tout ce qui est après : est le résultat
