🛠 Faire clignoter la LED RGB native sur GPIO48
Objetivos
Descubrir la ESP32-S3 (doble núcleo Xtensa LX7 hasta 240 MHz, Wi-Fi 2,4 GHz + Bluetooth 5 LE) con su primer programa: controlar el LED RGB direccionable WS2812 que la mayoría de las tarjetas incorporan en el GPIO48 (DevKitC-1 v1.1, Seeed XIAO ESP32S3, LILYGO T-Display-S3). Aprenderás a instalar el core de Espressif en el IDE de Arduino, a elegir el tipo de tarjeta correcto y a entender por qué un LED «RGB» sobre el papel es en realidad un LED direccionable controlado mediante un protocolo serie, y no mediante tres pines.
Material
- 1 tarjeta ESP32-S3 (DevKitC-1 v1.1, XIAO ESP32S3 o T-Display-S3, flash de 8 MB como mínimo)
- 1 cable USB de datos (USB-C o micro-USB según la tarjeta)
- Ningún componente externo: el WS2812 está soldado en la tarjeta
Código completo
// WS2812 embarque sur GPIO48 (DevKitC-1 v1.1, XIAO, T-Display-S3)
#include <Adafruit_NeoPixel.h>
#define LED_PIN 48
#define N_LED 1
Adafruit_NeoPixel px(N_LED, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup {
px.begin;
px.setBrightness(40); // limiter le courant dans le pixel
}
void loop {
static uint32_t c = 0;
c += 0x10101; // rampe lente de couleur
px.setPixelColor(0, c);
px.show; // trame RMT vers la LED
delay(50);
}
Verificación esperada
Tras la carga del programa (tipo de tarjeta «ESP32S3 Dev Module», USB CDC activado), el píxel integrado recorre continuamente una rampa suave de colores. No es necesario realizar ninguna conexión: el chip WS2812 ya está alimentado a 3,3 V y conectado al GPIO48. Si tu tarjeta posee varios píxeles (algunas T-Display), cambia N_LED a 2 o 3.
Errores frecuentes
- Confundirlo con un LED RGB de tres pines: el WS2812 es un LED direccionable que recibe tramas de datos en un solo pin; un simple digitalWrite no produce ningún resultado significativo.
- GPIO incorrecto: en la S3 es el GPIO48, no el GPIO2 como en la ESP32 clásica; verifica el esquema de TU tarjeta.
- Olvidar la biblioteca: instala «Adafruit NeoPixel» a través del gestor de bibliotecas del IDE de Arduino.
- Tipo de tarjeta incorrecto: elige una tarjeta «ESP32S3…», no «ESP32 Dev Module» (Xtensa clásica), de lo contrario el binario podría no arrancar.
- Cable USB solo de carga: el puerto serie no aparece en el IDE; prueba con otro cable.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino