🛠 Bandeau NeoPixel piloté par le périphérique RMT

ESP32-C3 · intermediaire · Schéma : IMG-esp32-c3-intermediaire-1-neopixel-rmt-gpio.svg — Bandeau de 8 LED WS2812 alimenté en 5 V, données sur GPIO7 du ESP32-C3 via le périphérique RMT, masses communes reliées

Objetivos

Controlar LED direccionables WS2812 (NeoPixel) con el ESP32-C3. La biblioteca Adafruit_NeoPixel utiliza en el C3 el periférico RMT (Remote Control) para generar los intervalos de temporización con precisión de un cuarto de microsegundo, sin monopolizar la CPU. Deberá evitar los pines de configuración (GPIO2, 8, 9) eligiendo el GPIO7 para la línea de datos.

Material

Código completo

#include <Adafruit_NeoPixel.h>

#define PIN_NEO 7      // evite GPIO2/8/9 (strapping) et GPIO9 (BOOT)
#define N     8

Adafruit_NeoPixel strip(N, PIN_NEO, NEO_GRB + NEO_KHZ800);
uint32_t i = 0;

void setup {
  strip.begin;
  strip.setBrightness(40);   // menage l'alimentation
  strip.show;
}

void loop {
  for (uint16_t b = 0; b < N; b++) strip.setPixelColor(b, 0, 0, 0);
  strip.setPixelColor(i % N, strip.Color(255, 60, 0)); // balle orange
  strip.show;
  i++;
  delay(120);
}

Verificación esperada

Un LED naranja recorre la tira en bucle. El ESP32-C3 tiene un solo núcleo y ejecuta la pila Wi-Fi en paralelo: el RMT genera los fotogramas WS2812 sin que la animación se entrecorte.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales