Skip to main content

XIAO LED驱动板入门指南


XIAO LED驱动板是一个紧凑而强大的解决方案,支持5V和12V LED灯带,包括流行的可寻址RGB LED,如NeoPixel WS2812、WS2813、WS2815。与所有XIAO开发板兼容,当使用XIAO ESP32系列时,可通过WLED和Home Assistant实现智能控制和自动化,同时提供灵活的电源选项和全面的保护,确保您的照明设置安全可靠运行。

介绍

特性

规格参数

项目详细信息
电源输入DC 12V/2A
LED电源支持DC 12V / DC 5V
最大工作电流12V/2A 5V/3A
LED连接器4针3.81mm螺丝端子块连接器:
12V | 5V | A0 | GND
Grove I²C连接器D5 | D4 | 5V | GND
用户按钮D3
用户引脚排针SPI x1,Uart x1,Digital x2

硬件概述

适配的电源输入

支持的 LED 指南

入门指南

这款LED驱动板专为Seeed Studio XIAO系列设计。其功能根据配对的XIAO微控制器而有所不同。例如,当与XIAO nRF52840配合使用时,它可以读取板载IMU数据来动态改变LED颜色。当与ESP32系列板配对时,它可以集成到Home Assistant中实现无缝智能家居控制。此外,与XIAO ESP32-C3配合使用时,它支持运行WLED以实现高级LED效果。请按照下面的教程详细探索这些功能。

使用Arduino

您需要为XIAO配置Arduino环境并添加板载包。

tip

如果这是您第一次使用Arduino,我们强烈建议您参考Arduino入门指南

软件准备

步骤1. 启动Arduino应用程序。

步骤2. 选择您的开发板型号并将其添加到Arduino IDE中。

  • 如果您想在后续教程中使用Seeed Studio XIAO SAMD21,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO RP2040,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO RP2350,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO nRF52840,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO ESP32C3,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO ESP32C6,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO ESP32S3,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO RA4M1,请参考**此教程**完成添加。

  • 如果您想在后续教程中使用Seeed Studio XIAO MG24,请参考**此教程**完成添加。

步骤3. 安装所需的库。

  • 打开Arduino IDE,导航到**Sketch > Include Library > Manage Libraries...**搜索库,在Arduino库管理器中输入关键词"Adafruit_NeoPixel"库并安装最新版本。
  • 下载Seeed_Arduino_LSM6DS3库作为zip文件,打开Arduino IDE,导航到**Sketch > Include Library > Add .ZIP Library...**并打开下载的zip文件。
note

MG24目前不被标准NeoPixel库支持。但是,Silicon Labs在官方MG24核心中提供了一个替代方案:ezWS2812驱动程序,它通过硬件SPI或GPIO支持WS2812 LED。您可以在这里找到更多详细信息。

简单示例

步骤1. 硬件准备

Seeed Studio XIAO RP2350XIAO LED驱动板Grove - RGB LED灯条 (15-WS2813 Mini)

步骤 2. 按照下图所示连接 Seeed Studio XIAO RP2350、XIAO LED 驱动板和 Grove - RGB LED 灯条(15-WS2813 Mini):

步骤 3. 以下示例程序控制包含 3 个 NeoPixel 的 LED,使三个灯珠分别显示红色绿色蓝色

#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.

}

上传程序并为LED驱动板供电,如果一切顺利,你可以看到如下效果:

动作-颜色同步LED

步骤 1. 硬件准备

XIAO nRF52840XIAO LED驱动板WS2812 LED

步骤 2. 按照下图所示连接 Seeed Studio XIAO nRF52840、XIAO LED 驱动板和 WS2812 LED:

步骤 3. 以下代码通过读取 XIAO nRF52840 板载 LSM6DS3 加速度传感器的数据,实时改变 LED 灯带的颜色,颜色根据当前加速度值进行映射。

#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);
}

上传程序并为LED驱动板供电,如果一切顺利,您可以看到如下效果:

当您摇动模块时,灯带的颜色会发生变化。摇动得越剧烈,颜色就越亮。

通过 ESPHome 与 Home Assistant 配合使用

硬件准备

Home Assistant 设备

软件准备

ESPHome 是一个旨在让管理您的 ESP 开发板尽可能简单的工具。它读取 YAML 配置文件并创建自定义固件,然后将其安装到您的 ESP 设备上。在 ESPHome 配置中添加的设备或传感器将自动显示在 Home Assistant 的用户界面中。ESPHome 可以帮助您连接设备并将数据发送到 Home Assistant。

note

如果这是您第一次使用 Home Assistant 和 ESPHome,您可以按照这里的分步指南来安装 Home Assistant。

ESPHome 作为 Home Assistant 插件提供,可以通过插件商店简单安装。

  • 步骤 1. 点击 INSTALL
  • 步骤 2. 启用所有选项并点击 START

如果 ESPHome 成功加载,您将看到以下窗口

温度-颜色同步 LED

步骤 1. 硬件准备

XIAO ESP32S3XIAO LED 驱动板Grove - 温湿度传感器 (DHT11)WS2812 LED

步骤 2. 按照下图所示连接 Seeed Studio XIAO ESP32S3、XIAO LED 驱动板和 WS2812 LED:

步骤 3. 打开 ESPHome 页面,点击 + NEW DEVICE

步骤 4. 点击 CONTINUE

步骤 5. 为设备输入一个名称,并输入 WiFi 凭据,如网络名称密码。然后点击 NEXT

步骤 6. 选择 ESP32-S3 并点击

步骤 7. 点击 SKIP,因为我们将手动配置此板

步骤 8. 点击新创建板下的 EDIT

步骤 9. 将以下代码复制到 .yaml 文件的末尾,XIAO ESP32S3 从 DHT11 传感器读取温度,并根据温度与目标值的偏差程度改变 RGB LED 的颜色,使用蓝色表示冷,红色表示热,绿色表示正常。

# 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();

步骤 10. 点击右上角的安装按钮。然后选择最后一项 Manual download,选择 Modern format

然后需要很长时间来下载和编译,请耐心等待。一切准备就绪后,固件将自动下载到您的计算机。

步骤 11. 使用 ESPhome Web 工具 将固件上传到 XIAO ESP32S3,点击 CONNECT

在弹出窗口中选择 XIAO ESP32 串口,点击 INSTALL,然后选择从上述步骤下载的 .bin 文件。

步骤 11. 安装成功后,您可以看到如下效果:

当冷空气吹向温湿度传感器时,随着温度下降,灯带的颜色逐渐从红色变为蓝色。

步骤 12. 添加到仪表板

打开 Setting >> Devices & Services,您可以找到您的 ESPhome 设备,点击 ADD 并将其添加到仪表板,您可以看到如下效果:

运行 WLED

硬件准备

XIAO ESP32C3XIAO LED 驱动板WS2812 LED

连接 Seeed Studio XIAO nRF52840、XIAO LED 驱动板和 WS2812 LED,如下所示:

安装 WLED

步骤 1. 打开 WLED 安装网页,将您的 XIAO ESP32C3 连接到 PC,点击 Install,连接您的端口。

步骤 2. 安装成功后,需要配置设备 wifi,建议将您的 XIAO ESP32C3 和您的计算机/手机保持在同一局域网中。

步骤 3. 现在,您可以点击 VISIT DEVICE 来控制您的 LED 灯带。

步骤 4. 或者您可以在手机应用市场安装 WLED 应用,并通过软件右上角的 + 号找到您的 LED 设备。

如果一切正常,您可以看到如下效果:

资源

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...