🛠 Pilote le NeoPixel embarqué (broche D13)

Adafruit Feather nRF52840 Express · intermediaire · Schéma : IMG-nrf52840-feather-intermediaire-2-nrf52840-neopixel-d13.svg — Gros plan sur le NeoPixel d'état de la Feather nRF52840, broche D13 et alimentation 3,3 V commandées depuis la broche data, ruban de couleurs d'exemple.

Objetivos

Controlar el NeoPixel de estado soldado en la Feather nRF52840 con la biblioteca Adafruit_NeoPixel: color, brillo y una animación de «latido de corazón» no bloqueante. El NeoPixel se alimenta a 3,3 V y su línea de datos está conectada al pin que el BSP expone mediante PIN_NEOPIXEL; la documentación general suele indicarlo como «D13». > SIN VERIFICAR: el alias «D13» del NeoPixel no está confirmado en la documentación de Adafruit recuperada (que incluso señala una contradicción sobre el pin del LED rojo) — utilice la constante BSP PIN_NEOPIXEL, garantizada como correcta por el core.

Material

Código completo

// nrf52840-neopixel-d13.ino
#include <Adafruit_NeoPixel.h>

#define NEO_PIN PIN_NEOPIXEL  // broche NeoPixel embarquee (alias courant D13)
Adafruit_NeoPixel neo(1, NEO_PIN, NEO_GRB + NEO_KHZ800);

uint32_t t0 = 0;

void setup {
  neo.begin;
  neo.setBrightness(40);      // 40/255 : evite d'aveugler et menage la batterie
}

void loop {
  uint32_t t = millis % 1600;              // periode 1,6 s
  float phase = t / 1600.0f * 2.0f * PI;
  uint8_t pulse = (uint8_t)(60 + 195 * pow(sin(phase), 6)); // battement
  neo.setPixelColor(0, neo.Color(pulse, pulse / 6, 0));
  neo.show;
  if (millis - t0 > 20) t0 = millis;     // cadence ~50 fps sans delay
}

Verificación esperada

El NeoPixel «respira» en naranja cálido en un bucle continuo, sin parpadeos bruscos. Al tocar apenas el pin de datos (con el dedo), no se produce ningún reinicio parásito con el código anterior, ya que no se emite ninguna otra trama WS2812.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales