neopixel_pulsation.py
El primer saludo de la Feather: el NeoPixel soldado en la placa pulsa en naranja. board.NEOPIXEL es el pin dedicado que CircuitPython define para este board exacto: sin cableado, sin resistencia, la corriente pasa por el regulador embarcado.
Hardware
Una Adafruit Feather nRF52840 Express (nRF52840, BLE 5) con NeoPixel, LED rojo, 2 MB de flash QSPI para CircuitPython y conector LiPo. Solo la Feather nRF52840 Express alimentada por su conector USB. La librería neopixel viene en el bundle de Adafruit.
Cableado
Ninguno. Para una tira NeoPixel externa: DATA a un pin libre (D5 por ejemplo), VOUT a 5 V si se alimenta por USB, masas comunes.
Funcionamiento
neopixel.NeoPixel pilota la trama WS2812 por hardware; el bucle sube la componente roja de 0 a 255 en pasos de 4 con pausas de 10 ms: una respiración de ~1,3 s.
Ejecución
CircuitPython (build feather_nrf52840_express) vía bootloader UF2 (doble reset); editar code.py en la unidad CIRCUITPY.
Variantes
Cambiar el motivo (arcoíris, persiana), conectar una tira de N píxeles en D5, o ligar el color a un sensor I2C para testigo ambiental.
neopixel_pulsation.py
# Pulsation du NeoPixel embarqué de la Feather nRF52840 Express.
# Bibliothèque : adafruit_neopixel (incluse dans la distribution).
import time
import board
import neopixel
# Un seul pixel, liaison NeoPixel du board (broche dédiée, déjà câblée)
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2)
while True:
# Montée progressive orange (R > G), 0 -> 255
for i in range(0, 256, 4):
pixel[0] = (i, i // 4, 0)
time.sleep(0.01)
# Descente symétrique
for i in range(255, -1, -4):
pixel[0] = (i, i // 4, 0)
time.sleep(0.01)