Primeros Pasos con la Placa Controladora de LED para XIAO

La Placa Controladora de LED para XIAO es una solución compacta pero potente que soporta tiras LED de 5V y 12V, incluyendo LEDs RGB direccionables populares como NeoPixel WS2812, WS2813, WS2815. Compatible con todas las placas XIAO, permite control inteligente y automatización a través de WLED y Home Assistant cuando se usa con la Serie XIAO ESP32, mientras ofrece opciones de alimentación flexibles y protección integral para una operación segura y confiable en tu configuración de iluminación.
Introducción
Características
-
Amplia Compatibilidad con LEDs
Controlador versátil que soporta tiras LED de 5V/3A y 12V/2A con regulación de potencia integrada. Compatible con LEDs de un solo color y RGB direccionables incluyendo NeoPixel WS2811, WS2812(B), WS2813, WS2815, SK6812, y otros LEDs de protocolo de 1 cable, proporcionando extensas opciones de iluminación.
-
Compatibilidad XIAO para Control Inteligente
Diseñado para todas las placas Seeed Studio XIAO. Cuando se combina con la Serie XIAO ESP32 (ESP32-C3/S3/C6), desbloquea características inteligentes a través de:
- Soporte para la aplicación WLED - Controla colores, efectos, brillo y crea animaciones personalizadas (XIAO ESP32C3 es altamente recomendado)
- Integración con Home Assistant vía ESPHome - Habilita control remoto, automatización y escenarios de hogar inteligente
-
Compatibilidad con el Ecosistema Grove
La interfaz Grove integrada plug-and-play es compatible con más de 400 módulos de Seeed Studio, permitiéndote mejorar fácilmente la interactividad de la iluminación con el entorno y movimiento para efectos más inteligentes y personalizados:
-
Para Detección de Visión AI
-
Para Detección de Temperatura y Humedad
Grove - Sensor de Temperatura y Humedad (DHT11)
Grove - AHT20 I2C Sensor de Temperatura y Humedad de Grado Industrial
-
Para Detección de Movimiento
Grove - Sensor de Movimiento PIR
-
Especificaciones
Elemento | Detalle |
---|---|
Entrada de Alimentación | DC 12V/2A |
Soporte de Alimentación LED | DC 12V / DC 5V |
Corriente Máxima de Operación | 12V/2A 5V/3A |
Conector LED | Conector de Bloque Terminal de Tornillo de 4 Pines 3.81mm: 12V | 5V | A0 | GND |
Conector Grove I²C | D5 | D4 | 5V | GND |
Botón de Usuario | D3 |
Cabecera de Pines de Usuario | SPI x1, Uart x1, Digital x2 |
Descripción General del Hardware

Entrada de alimentación adaptada
- Adaptador de Corriente, 12V/2A/24W, Enchufe Estándar Europeo, Salida DC
- Adaptador de Corriente, 12V/2A/24W, Enchufe Estándar Americano, Salida DC
- Otro Adaptador de Corriente DC 12V con Conector 5.5mm x 2.1mm x 10±0.3mm
- Cable DC 12V
Guía de LEDs Compatibles
Producto | Nombre | Voltaje de Operación | Conectar vía |
---|---|---|---|
![]() | Grove - RGB LED (WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Stick (10-WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Stick (15-WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Stick (20-WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Ring (16-WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Ring (20-WS2813 Mini) | 5V | Grove |
![]() | Grove - RGB LED Ring (24-WS2813 Mini) | 5V | Grove |
![]() | Grove - Ultimate RGB LED Ring | 5V | Grove |
![]() | Grove - WS2813B RGB LED Flexi-Strip 30 LED/m - 1m | 5V | Bloque de Terminales |
![]() | Grove - WS2813B RGB LED Flexi-Strip 60 LED/m - 1m | 5V | Bloque de Terminales |
![]() | Grove - WS2813 RGB LED Strip Waterproof - 30 LED/m - 1m | 5V | Grove |
![]() | Grove - WS2813 RGB LED Strip Waterproof - 60 LED/m - 1m | 5V | Grove |
Comenzando
Esta placa controladora de LED está diseñada específicamente para la serie Seeed Studio XIAO. Su funcionalidad varía dependiendo del microcontrolador XIAO emparejado. Por ejemplo, cuando se usa con el XIAO nRF52840, puede leer datos del IMU integrado para cambiar dinámicamente los colores de los LED. Cuando se empareja con placas de la serie ESP32, puede integrarse en Home Assistant para un control perfecto del hogar inteligente. Además, con el XIAO ESP32-C3, soporta ejecutar WLED para efectos LED avanzados. Sigue el tutorial a continuación para explorar estas capacidades en detalle.
Jugar con Arduino
Necesitas configurar el entorno Arduino para el XIAO y añadir el paquete integrado.
Si esta es tu primera vez usando Arduino, te recomendamos encarecidamente que consultes Comenzando con Arduino.
Preparación del Software
Paso 1. Inicia la aplicación Arduino.

Paso 2. Selecciona tu modelo de placa de desarrollo y añádelo al Arduino IDE.
-
Si quieres usar Seeed Studio XIAO SAMD21 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO RP2040 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO RP2350 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO nRF52840 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO ESP32C3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO ESP32C6 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO ESP32S3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO RA4M1 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO MG24 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
Paso 3. Instala las librerías necesarias.
- Abre Arduino IDE, navega a Sketch > Include Library > Manage Libraries... para buscar la librería, escribe la palabra clave "Adafruit_NeoPixel" en el Administrador de librerías de Arduino e instala la versión más reciente.

- Descarga la Librería Seeed_Arduino_LSM6DS3 como un archivo zip, abre Arduino IDE, navega a Sketch > Include Library > Add .ZIP Library... y abre el archivo zip descargado.

Ejemplo Simple
Paso 1. Preparación del hardware
Seeed Studio XIAO RP2350 | Placa Controladora LED para XIAO | Grove - Barra LED RGB (15-WS2813 Mini) |
---|---|---|
![]() | ![]() | ![]() |
Paso 2. Conecta Seeed Studio XIAO RP2350, LED Driver Board for XIAO y Grove - RGB LED Stick (15-WS2813 Mini) como se muestra a continuación:

Paso 3. El siguiente programa de ejemplo controla LEDs que contienen 3 NeoPixel para que cada una de las tres perlas muestre los colores rojo, verde y azul
#include <Adafruit_NeoPixel.h>
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN D5
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 3
// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin(); // INITIALIZE NeoPixel strip object
}
void loop() {
pixels.clear(); // Set all pixel colors to 'off'
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
// The first NeoPixel in a strand is #0, second is 1, all the way up
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
pixels.setPixelColor(1, pixels.Color(0, 255, 0));
pixels.setPixelColor(2, pixels.Color(0, 0, 255));
// pixels.setBrightness() takes brightness values, from 0 up to 255
pixels.setBrightness(255);
pixels.show(); // Send the updated pixel colors to the hardware.
}
Sube el programa y enciende la Placa Controladora de LED, si todo va bien, puedes ver algo así:

LED de Sincronización Movimiento-Color
Paso 1. Preparación del hardware
XIAO nRF52840 | Placa Controladora de LED para XIAO | LED WS2812 |
---|---|---|
![]() | ![]() | ![]() |
Paso 2. Conecta el Seeed Studio XIAO nRF52840, la Placa Controladora de LED para XIAO y el LED WS2812 como se muestra a continuación:

Paso 3. El siguiente código funciona leyendo los datos del sensor de aceleración LSM6DS3 integrado en el XIAO nRF52840 y cambiando el color de la tira de LED en tiempo real, con el color mapeado desde el valor de aceleración actual.
#include <Arduino.h>
#include "LSM6DS3.h"
#include <Adafruit_NeoPixel.h>
#include "Wire.h"
#include "math.h"
// Define the pin connected to the NeoPixel data input
#define PIN A0
// Total number of NeoPixel LEDs
#define NUMPIXELS 300
// Create a NeoPixel strip object
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Variables for accelerometer data
float ax = 0;
float ay = 0;
float az = 0;
// RGB color components
uint8_t r = 0;
uint8_t g = 0;
uint8_t b = 0;
// Packed 24-bit RGB color value
uint32_t packedRGB = 0;
// Create an instance of the LSM6DS3 IMU in I2C mode at address 0x6A
LSM6DS3 myIMU(I2C_MODE, 0x6A);
void setup() {
Serial.begin(9600);
// Initialize the IMU sensor and check for errors
if (myIMU.begin() != 0) {
Serial.println("Device error");
} else {
Serial.println("Device OK!");
}
// Initialize the NeoPixel strip
pixels.begin();
}
void loop() {
// Read acceleration values from the IMU
ax = myIMU.readFloatAccelX();
ay = myIMU.readFloatAccelY();
az = myIMU.readFloatAccelZ();
// Map acceleration (-1g to +1g) to RGB values (0 to 255)
// Centered at 128 to allow both positive and negative variations
r = constrain(ax * 100 + 128, 0, 255);
g = constrain(ay * 100 + 128, 0, 255);
b = constrain(az * 100 + 128, 0, 255);
// Combine RGB components into a single 24-bit color value
packedRGB = (r << 16) | (g << 8) | b;
// Clear all existing pixels
pixels.clear();
// Fill all LEDs with the computed color
pixels.fill(packedRGB, 0, NUMPIXELS);
pixels.setBrightness(255);
pixels.show();
delay(100);
}
Sube el programa y enciende la Placa Controladora de LED, si todo va bien, puedes ver algo así:
Cuando agitas el módulo, el color de la tira de luces cambia. Cuanto más violenta sea la agitación, más brillante será el color.
Jugar con Home Assistant a través de ESPHome
Preparación del Hardware
Dispositivos de Home Assistant |
---|
![]() |
Preparación del Software

ESPHome es una herramienta que tiene como objetivo hacer que la gestión de tus placas ESP sea lo más simple posible. Lee un archivo de configuración YAML y crea firmware personalizado que instala en tu dispositivo ESP. Los dispositivos o sensores añadidos en la configuración de ESPHome aparecerán automáticamente en la interfaz de usuario de Home Assistant. ESPHome puede ayudarte a conectar y enviar los datos a dispositivos de Home Assistant.
Si esta es tu primera vez usando Home Assistant y ESPHome, puedes seguir aquí para una guía paso a paso sobre la instalación de Home Assistant.
ESPHome está disponible como un Complemento de Home Assistant y se puede instalar simplemente a través de la tienda de complementos.

- Paso 1. Haz clic en INSTALL

- Paso 2. Habilita todas las opciones y haz clic en START

Verás la siguiente ventana si ESPHome se carga exitosamente

LEDs de Sincronización Temperatura-Color
Paso 1. Preparación del hardware
XIAO ESP32S3 | Placa Controladora de LED para XIAO | Grove - Sensor de Temperatura y Humedad (DHT11) | LED WS2812 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
Paso 2. Conecta Seeed Studio XIAO ESP32S3, LED Driver Board for XIAO y WS2812 LED como se muestra a continuación:

Paso 3. Abre la página de ESPHome, y haz clic en + NEW DEVICE

Paso 4. Haz clic en CONTINUE

Paso 5. Ingresa un Nombre para el dispositivo e ingresa las credenciales WiFi como Nombre de red y Contraseña. Luego haz clic en NEXT

Paso 6. Selecciona ESP32-S3 y haz clic

Paso 7. Haz clic en SKIP porque configuraremos esta placa manualmente

Paso 8. Haz clic en EDIT debajo de la placa recién creada

Paso 9. Copia los siguientes códigos al final del archivo .yaml, el XIAO ESP32S3 lee la temperatura de un sensor DHT11 y cambia el color de un LED RGB basado en qué tan lejos está la temperatura de un valor objetivo, usando azul para frío, rojo para caliente, y verde para normal.
# DHT11 temperature and humidity sensor
sensor:
- platform: dht
pin: GPIO6
model: DHT11 # Change to DHT22 or AM2302 if using a different model
temperature:
name: "Temperature"
id: temp_sensor
humidity:
name: "Humidity"
update_interval: 3s # Read new values every 3 seconds
# RGB LED (WS2812 single LED)
light:
- platform: neopixelbus
variant: ws2813 # ⚠️ Adjust based on your actual LED type (e.g., ws2812, ws2813, sk6812)
type: GRB # Color order (Green-Red-Blue)
pin: GPIO1
num_leds: 50 # Total number of NeoPixel LEDs
name: "Temperature Color LED"
id: rgb_led
restore_mode: ALWAYS_ON
default_transition_length: 0s
# Adjustable center temperature threshold
number:
- platform: template
name: "Target Temperature" # Center temperature value
id: target_temp
optimistic: true
min_value: 0
max_value: 40
step: 0.1
initial_value: 20.0 # Default center temperature (°C)
- platform: template
name: "Temperature Tolerance" # Tolerance around target temperature
id: temp_tolerance
optimistic: true
min_value: 0
max_value: 10
step: 0.1
initial_value: 5.0 # Default tolerance value (°C)
# Every 3 seconds, the LED color is updated:
# - Blue if too cold (below center - tolerance),
# - Red if too hot (above center + tolerance),
# - Green if temperature is close to the center,
# - Gradient between blue–green–red in transitional ranges.
#- If the temperature is not available, the LED blinks purple to indicate a sensor error.
interval:
- interval: 3s
then:
- lambda: |-
float t = id(temp_sensor).state;
float center = id(target_temp).state;
float tolerance = id(temp_tolerance).state;
float r = 0.0, g = 0.0, b = 0.0;
float ratio = 0.0;
if (isnan(t)) {
// Flash purple to indicate missing temperature
static bool blink = false;
blink = !blink;
auto call = id(rgb_led).turn_on();
call.set_rgb(blink ? 0.5 : 0.0, 0.0, blink ? 0.5 : 0.0);
call.perform();
return;
}
// Calculate RGB values based on temperature
if (t <= (center - tolerance)) {
b = 1.0;
g = 0.0;
} else if (t >= (center + tolerance)) {
r = 1.0;
g = 0.0;
} else if (t <= center) {
ratio = (center - t) / tolerance;
b = ratio;
g = 1.0 - ratio;
} else {
ratio = (t - center) / tolerance;
r = ratio;
g = 1.0 - ratio;
}
// Update LED
auto call = id(rgb_led).turn_on();
call.set_rgb(r, g, b);
call.perform();
Paso 10. Haz clic en el botón Install en la esquina superior derecha. Luego selecciona el último elemento Manual download, Selecciona Modern format

Entonces tomará mucho tiempo descargar y compilar, así que por favor ten paciencia. Una vez que todo esté listo, el firmware se descargará automáticamente a tu computadora.
Paso 11. Usando la herramienta web ESPhome para subir el firmware al XIAO ESP32S3, haz clic en CONNECT

Selecciona el puerto serie del XIAO ESP32 en la ventana emergente, haz clic en INSTALL y luego selecciona el archivo .bin descargado de los pasos anteriores.


Paso 11. Una vez instalado exitosamente, puedes ver algo así:
Cuando se sopla aire frío al sensor de temperatura y humedad, el color de la tira de luces cambia gradualmente de rojo a azul a medida que la temperatura baja.
Paso 12. Agregar al Panel de Control
Abre Setting >> Devices & Services, puedes encontrar tu dispositivo ESPhome, haz clic en ADD y agrégalo al panel de control, puedes ver algo así:





Ejecutar WLED
Preparación de Hardware
XIAO ESP32C3 | Placa Controladora de LED para XIAO | LED WS2812 |
---|---|---|
![]() | ![]() | ![]() |
Conecta el Seeed Studio XIAO nRF52840, la Placa Controladora de LED para XIAO y el LED WS2812 como se muestra a continuación:

Instalar WLED
Paso 1. Abre sitio web de instalación de WLED, y conecta tu XIAO ESP32C3 a tu PC, haz clic en Install, conecta tu puerto.

Paso 2. Después de instalar exitosamente, necesitas configurar el wifi del dispositivo, se recomienda mantener tu XIAO ESP32C3 y tu computadora/teléfono móvil en la misma LAN.
Paso 3. Ahora, puedes hacer clic en VISIT DEVICE para controlar tu tira de LED.

Paso 4. O puedes instalar la aplicación WLED en tu tienda de aplicaciones del teléfono, y encontrar tu dispositivo LED con el signo + en la esquina superior derecha del software.
Si todo funciona bien, puedes ver algo así:
Recursos
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.