🛠 Faire clignoter la LED RGB native sur GPIO48
Objectifs
Découvrir l'ESP32-S3 (double cœur Xtensa LX7 jusqu'à 240 MHz, Wi-Fi 2,4 GHz + Bluetooth 5 LE) avec son premier programme : piloter la LED RGB adressable WS2812 que la plupart des cartes embarquent sur GPIO48 (DevKitC-1 v1.1, Seeed XIAO ESP32S3, LILYGO T-Display-S3). Vous apprendrez à installer le core Espressif dans l'IDE Arduino, à choisir le bon type de carte et à comprendre pourquoi une LED « RGB » sur le papier est en réalité une LED adressable pilotée par un protocole série, et non par trois broches.
Matériel
- 1 carte ESP32-S3 (DevKitC-1 v1.1, XIAO ESP32S3 ou T-Display-S3, flash 8 Mo minimum)
- 1 câble USB data (USB-C ou micro-USB selon la carte)
- Aucun composant externe : le WS2812 est soudé sur la carte
Code complet
// 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);
}
Vérification attendue
Après le téléversement (type de carte « ESP32S3 Dev Module », USB CDC activé), le pixel embarqué parcourt en continu une rampe douce de couleurs. Aucun branchement n'est nécessaire : la puce WS2812 est déjà alimentée en 3,3 V et reliée à GPIO48. Si votre carte possède plusieurs pixels (certaines T-Display), passez N_LED à 2 ou 3.
Erreurs fréquentes
- Confondre avec une LED RGB à trois broches : le WS2812 est une LED adressable qui reçoit des trames de données sur une seule broche ; un simple digitalWrite ne donne aucun résultat probant.
- Mauvais GPIO : sur S3 c'est GPIO48, pas GPIO2 comme sur l'ESP32 classique ; vérifier le schéma de VOTRE carte.
- Oublier la bibliothèque : installer « Adafruit NeoPixel » via le gestionnaire de bibliothèques de l'IDE Arduino.
- Mauvais type de carte : choisir une carte « ESP32S3… », pas « ESP32 Dev Module » (Xtensa classique), sinon le binaire peut ne pas démarrer.
- Câble USB de charge seule : le port série n'apparaît pas dans l'IDE ; tester un autre câble.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinodht22.inoArduinooled-i2c.inoArduinoserveur-web.inoArduino