entrees_num.py

Adafruit Feather nRF52840 Express · Archivo : entrees_num.py · Lenguaje : Python · Uso : Surveiller quatre entrées numériques

Cuatro botones o sensores digitales en D5, D6, D9, D10 monitorizados en bucle con cada cambio trazado por serie. El panel de depuración de todo montaje con varias entradas.

Hardware

Una Adafruit Feather nRF52840 Express (nRF52840, BLE 5) con NeoPixel, LED rojo, 2 MB de flash QSPI para CircuitPython y conector LiPo. Hasta cuatro botones o salidas digitales de 3,3 V; masas comunes con la Feather. Los pines son de 3,3 V: nada de 24 V ni 5 V en estas entradas.

Cableado

Cada botón entre su pin (D5/D6/D9/D10) y GND. Los pines vecinos 3V3 y GND sirven de rieles de prueba; nunca superar 3,3 V en una entrada.

Funcionamiento

Cada pin es un objeto digitalio con pull-up; el bucle compara con el estado guardado en un dict e imprime solo al cambiar, a 50 Hz. Ligero, legible, extensible.

Ejecución

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

Variantes

Pasar a interrupciones (digitalio + alarm para despertar), contar pulsaciones por pin, o enviar el estado por BLE UART a un teléfono.

entrees_num.py

# Moniteur de 4 entrées : D5, D6, D9, D10 (broches Feather marquées).
# Trace l'état sur la console série (Ctrl-C dans Mu/Thonny pour sortir).
import time
import board
import digitalio

ENTREES = {}
for nom, broche in [("D5", board.D5), ("D6", board.D6),
                    ("D9", board.D9), ("D10", board.D10)]:
    ligne = digitalio.DigitalInOut(broche)
    ligne.direction = digitalio.Direction.INPUT
    ligne.pull = digitalio.Pull.UP
    ENTREES[nom] = ligne

dernier = {}
while True:
    for nom, ligne in ENTREES.items():
        etat = ligne.value
        if dernier.get(nom) != etat:          # trace sur changement
            print(nom, "->", "ENFONCE" if not etat else "libre")
            dernier[nom] = etat
    time.sleep(0.02)

← Volver a la ficha