led_bouton.py

Adafruit Feather nRF52840 Express · Fichier : led_bouton.py · Langage : Python · Usage : Allumer la LED rouge sur appui bouton

Le couple LED/bouton classique en CircuitPython : un bouton entre D5 et GND allume la LED rouge de la Feather. Le pull-up interne remplace la résistance externe, et l’inversion not bouton.value gère la logique active-basse sans if.

Matériel requis

Une Adafruit Feather nRF52840 Express (SoC nRF52840 Cortex-M4F, BLE 5 / 802.15.4) avec NeoPixel embarqué, LED rouge, 2 Mo de flash QSPI pour le système de fichiers CircuitPython et connecteur batterie LiPo. Un bouton poussoir ; la LED rouge est déjà sur la carte (board.LED défini par le port CircuitPython).

Câblage

Une patte du bouton sur la broche D5 marquée sur la carte, l’autre sur une broche GND. Pas de résistance : le pull-up interne de 40 kΩ fait le travail.

Fonctionnement

digitalio configure sortie/pull-up au démarrage ; la boucle copie simplement l’état inversé du bouton sur la LED. CircuitPython reste réactif car la boucle ne bloque sur rien.

Exécution

CircuitPython (build feather_nrf52840_express) installé via le bootloader UF2 (double reset) ; éditer code.py sur le lecteur CIRCUITPY, console dans Mu/Thonny.

Variantes

Ajouter un anti-rebond avec time.monotonic, détecter les appuis longs, ou faire clignoter la LED en motif (SOS) quand le bouton est maintenu.

led_bouton.py

# Bouton sur D5 -> LED rouge embarquée (board.LED).
# Le bouton est câblé entre D5 et GND ; pull-up interne activé.
import board
import digitalio

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

bouton = digitalio.DigitalInOut(board.D5)
bouton.direction = digitalio.Direction.INPUT
bouton.pull = digitalio.Pull.UP   # relâché = HIGH, enfoncé = LOW

while True:
    # not bouton.value : logique inversée car appui -> masse
    led.value = not bouton.value
# Teste avec un simple bouton poussoir ; pour un interrupteur,
# cable un seul pole vers D5 et laisse le pull-up faire le reste.

← Retour à la fiche