led_bouton.py

Adafruit Feather nRF52840 Express · Archivo : led_bouton.py · Lenguaje : Python · Uso : Allumer la LED rouge sur appui bouton

El clásico par LED/botón en CircuitPython: un botón entre D5 y GND enciende el LED rojo de la Feather. El pull-up interno sustituye la resistencia externa, y la inversión not bouton.value resuelve la lógica activa-bajo sin if.

Hardware

Una Adafruit Feather nRF52840 Express (nRF52840, BLE 5) con NeoPixel, LED rojo, 2 MB de flash QSPI para CircuitPython y conector LiPo. Un pulsador; el LED rojo ya está en la placa (board.LED lo define el port CircuitPython).

Cableado

Una pata del botón en el pin D5 marcado en la placa, la otra en cualquier pin GND. Sin resistencia: el pull-up interno de 40 kΩ hace el trabajo.

Funcionamiento

digitalio configura salida/pull-up al arrancar; el bucle solo copia el estado invertido del botón en el LED. CircuitPython sigue reactivo porque el bucle no bloquea en nada.

Ejecución

CircuitPython (build feather_nrf52840_express) vía bootloader UF2 (doble reset); editar code.py en la unidad CIRCUITPY.

Variantes

Añadir antirrebote con time.monotonic, detectar pulsaciones largas, o hacer parpadear el LED en un motivo (SOS) mientras se mantiene el botón.

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.

← Volver a la ficha