WS2812B控制指令完整使用说明
指令架构总览
指令格式(22字节)
text
DD 55 EE [模式] [速度] [亮度] [参数1-9] [LED数量] [R] [G] [B] [校验码1] [校验码2]
字节索引表
| 索引 | 名称 | 说明 | 范围 | 默认值 |
|---|---|---|---|---|
| 0-2 | 帧头 | 固定为 DD 55 EE | - | DD 55 EE |
| 3 | 模式选择 | 控制7种不同特效模式 | 0-6 | 00 |
| 4 | 速度 | 特效变化速度(ms) | 1-255 | 1E (30ms) |
| 5 | 亮度 | 最大亮度值 | 0-255 | 96 (150) |
| 6 | 参数1 | 方向/宽度等参数 | 0-255 | 01 |
| 7 | 参数2 | 备用参数 | 0-255 | 00 |
| 8 | 参数3 | 备用参数 | 0-255 | 99 |
| 9 | 参数4 | 备用参数 | 0-255 | 01 |
| 10 | 参数5 | 备用参数 | 0-255 | 00 |
| 11 | 参数6 | 备用参数 | 0-255 | 00 |
| 12 | 参数7 | 备用参数 | 0-255 | 00 |
| 13 | 参数8 | 备用参数 | 0-255 | 03 |
| 14 | 参数9 | 备用参数 | 0-255 | 00 |
| 15 | LED数量 | 控制灯珠数量 | 1-100 | 28 (40) |
| 16 | 颜色R | 红色分量 | 0-255 | FF |
| 17 | 颜色G | 绿色分量 | 0-255 | 00 |
| 18 | 颜色B | 蓝色分量 | 0-255 | 00 |
| 19 | 校验码1 | 固定AA | - | AA |
| 20 | 校验码2 | 固定BB | - | BB |
7种模式详解
模式0:静态颜色模式 (Static Color)
-
模式值 :
00 -
说明: 所有LED显示相同的静态颜色
-
参数使用:
-
参数1-9: 未使用(保持默认值)
-
LED数量: 控制点亮灯珠数量
-
颜色R/G/B: 设置静态颜色
-
-
示例指令:
python
# 40个LED显示红色 DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 28 FF 00 00 AA BB # 60个LED显示绿色 DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 3C 00 FF 00 AA BB # 20个LED显示蓝色 DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 14 00 00 FF AA BB
模式1:彩虹呼吸灯模式 (Rainbow Breathing)
-
模式值 :
01 -
说明: 所有LED同步彩虹色呼吸变化
-
参数使用:
-
速度: 控制呼吸快慢(建议20-100ms)
-
亮度: 控制最大亮度
-
LED数量: 控制灯珠数量
-
颜色: 未使用(可设为任意值)
-
-
参数扩展:
- 参数1: 呼吸平滑度(0-255,值越大越平滑)
-
示例指令:
python
# 彩虹呼吸,速度50ms,亮度200,40个LED DD 55 EE 01 32 C8 20 00 99 01 00 00 00 03 00 28 00 00 00 AA BB # 快速彩虹呼吸,速度20ms,亮度150,60个LED DD 55 EE 01 14 96 10 00 99 01 00 00 00 03 00 3C 00 00 00 AA BB
模式2:彩虹流水灯模式 (Rainbow Flow)
-
模式值 :
02 -
说明: 彩虹色在LED上流动
-
参数使用:
-
速度: 控制流动速度
-
亮度: 控制整体亮度
-
参数1: 流动方向(0=正向,1=反向)
-
参数2: 流水宽度(1-10,默认3)
-
LED数量: 控制灯珠数量
-
-
示例指令:
python
# 正向彩虹流水,速度40ms,亮度180,宽度3,40个LED DD 55 EE 02 28 B4 00 03 99 01 00 00 00 03 00 28 00 00 00 AA BB # 反向彩虹流水,速度60ms,亮度200,宽度5,60个LED DD 55 EE 02 3C C8 01 05 99 01 00 00 00 03 00 3C 00 00 00 AA BB # 快速正向流水,速度15ms,宽度2,30个LED DD 55 EE 02 0F C8 00 02 99 01 00 00 00 03 00 1E 00 00 00 AA BB
模式3:彩虹波浪模式 (Rainbow Wave)
-
模式值 :
03 -
说明: 彩虹色波浪在LED上传播
-
参数使用:
-
速度: 控制波浪传播速度
-
亮度: 控制整体亮度
-
参数1: 波浪宽度(1-100,默认30)
-
参数2: 波浪间隔(1-100,默认10)
-
LED数量: 控制灯珠数量
-
-
示例指令:
python
# 彩虹波浪,速度30ms,宽度30,间隔10,40个LED DD 55 EE 03 1E C8 1E 0A 99 01 00 00 00 03 00 28 00 00 00 AA BB # 快速宽波浪,速度15ms,宽度50,间隔5,50个LED DD 55 EE 03 0F C8 32 05 99 01 00 00 00 03 00 32 00 00 00 AA BB # 慢速窄波浪,速度80ms,宽度20,间隔15,60个LED DD 55 EE 03 50 C8 14 0F 99 01 00 00 00 03 00 3C 00 00 00 AA BB
模式4:颜色扫除模式 (Color Wipe)
-
模式值 :
04 -
说明: 单个颜色点在LED上扫过
-
参数使用:
-
速度: 控制扫除速度
-
亮度: 控制颜色亮度
-
参数1: 扫除方向(0=正向,1=反向)
-
颜色R/G/B: 扫除颜色
-
LED数量: 控制灯珠数量
-
-
示例指令:
python
# 绿色正向扫除,速度25ms,40个LED DD 55 EE 04 19 C8 00 00 99 01 00 00 00 03 00 28 00 FF 00 AA BB # 红色反向扫除,速度40ms,60个LED DD 55 EE 04 28 C8 01 00 99 01 00 00 00 03 00 3C FF 00 00 AA BB # 蓝色快速扫除,速度10ms,30个LED DD 55 EE 04 0A C8 00 00 99 01 00 00 00 03 00 1E 00 00 FF AA BB
模式5:剧场追逐模式 (Theater Chase)
-
模式值 :
05 -
说明: 红绿蓝三色追逐效果
-
参数使用:
-
速度: 控制追逐速度
-
亮度: 控制颜色亮度
-
参数1: 追逐模式(0=红绿蓝,1=自定义颜色)
-
参数2-4: 自定义颜色1(当模式=1时使用)
-
参数5-7: 自定义颜色2(当模式=1时使用)
-
参数8-9: 自定义颜色3(当模式=1时使用)
-
LED数量: 控制灯珠数量
-
-
示例指令:
python
# 标准红绿蓝追逐,速度35ms,40个LED DD 55 EE 05 23 C8 00 00 99 01 00 00 00 03 00 28 00 00 00 AA BB # 自定义三色追逐,速度50ms,颜色:红、黄、蓝,50个LED DD 55 EE 05 32 C8 01 FF 00 00 FF FF 00 00 00 FF 32 00 00 00 AA BB # 参数说明: # 参数1=01(自定义模式) # 参数2-4: FF 00 00(红色) # 参数5-7: FF FF 00(黄色) # 参数8-9: 00 00 FF(蓝色)
模式6:单色呼吸灯模式 (Single Color Breathing)
-
模式值 :
06 -
说明: 单色呼吸效果
-
参数使用:
-
速度: 控制呼吸速度
-
亮度: 控制最大亮度
-
参数1: 呼吸模式(0=单色,1=彩虹呼吸)
-
颜色R/G/B: 呼吸颜色(当模式=0时使用)
-
LED数量: 控制灯珠数量
-
-
示例指令:
python
# 蓝色呼吸,速度40ms,最大亮度200,40个LED DD 55 EE 06 28 C8 00 00 99 01 00 00 00 03 00 28 00 00 FF AA BB # 红色呼吸,速度60ms,最大亮度180,60个LED DD 55 EE 06 3C B4 00 00 99 01 00 00 00 03 00 3C FF 00 00 AA BB # 彩虹呼吸(参数1=01),速度30ms,50个LED DD 55 EE 06 1E C8 01 00 99 01 00 00 00 03 00 32 00 00 00 AA BB
高级功能:参数组合使用
1. 渐变效果(通过参数控制)
python
# 使用参数3-5控制渐变起点颜色,参数6-8控制渐变终点颜色
# 彩虹渐变模式(需要扩展代码支持)
# 示例:从红色渐变到蓝色,40个LED,速度50ms
# (需要代码中实现渐变算法)
DD 55 EE 01 32 C8 00 00 99 01 FF 00 00 00 00 FF 28 00 00 00 AA BB
2. 音乐节奏模式(扩展功能)
python
# 使用参数1作为音乐灵敏度,参数2作为节奏模式
# 需要外部音频输入支持
# 示例:中等灵敏度,节奏模式1,40个LED
DD 55 EE 07 00 C8 80 01 99 01 00 00 00 03 00 28 FF FF FF AA BB
3. 温度色彩模式(扩展功能)
python
# 使用参数1-3设置温度-颜色映射
# 示例:20°C显示蓝色,30°C显示红色,40个LED
DD 55 EE 08 00 C8 14 1E 99 01 00 00 FF FF 00 00 28 00 00 00 AA BB
完整指令生成工具(Python)
python
class WS2812B_Command_Generator:
"""WS2812B指令生成器"""
# 默认固定字节
DEFAULT_FIXED = [0x01, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00]
CHECKSUM = [0xAA, 0xBB]
@staticmethod
def generate_command(mode, speed, brightness, led_count, r, g, b, **params):
"""
生成22字节指令
参数:
mode: 模式 (0-6)
speed: 速度 (ms)
brightness: 亮度 (0-255)
led_count: LED数量 (1-100)
r, g, b: 颜色分量
params: 扩展参数
- param1: 参数1 (默认0)
- param2: 参数2 (默认0)
- ... param9: 参数9 (默认0)
"""
# 创建指令数组
command = [0xDD, 0x55, 0xEE] # 帧头
# 模式、速度、亮度
command.append(mode & 0xFF)
command.append(speed & 0xFF)
command.append(brightness & 0xFF)
# 参数1-9
command.append(params.get('param1', 0) & 0xFF)
command.append(params.get('param2', 0) & 0xFF)
command.append(params.get('param3', 0x99) & 0xFF)
command.append(params.get('param4', 0x01) & 0xFF)
command.append(params.get('param5', 0) & 0xFF)
command.append(params.get('param6', 0) & 0xFF)
command.append(params.get('param7', 0) & 0xFF)
command.append(params.get('param8', 0x03) & 0xFF)
command.append(params.get('param9', 0) & 0xFF)
# LED数量和颜色
command.append(led_count & 0xFF)
command.append(r & 0xFF)
command.append(g & 0xFF)
command.append(b & 0xFF)
# 校验码
command.extend([0xAA, 0xBB])
return command
@staticmethod
def command_to_hex(command):
"""将命令数组转换为十六进制字符串"""
return ' '.join([f'{b:02X}' for b in command])
@staticmethod
def get_preset_commands():
"""获取预设指令集"""
presets = {
# 静态颜色预设
'static_red': [0xDD, 0x55, 0xEE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0xFF, 0x00, 0x00, 0xAA, 0xBB],
'static_green': [0xDD, 0x55, 0xEE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0xFF, 0x00, 0xAA, 0xBB],
'static_blue': [0xDD, 0x55, 0xEE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0xFF, 0xAA, 0xBB],
'static_white': [0xDD, 0x55, 0xEE, 0x00, 0x00, 0x00, 0x01, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0xFF, 0xFF, 0xFF, 0xAA, 0xBB],
# 特效预设
'rainbow_breath_fast': [0xDD, 0x55, 0xEE, 0x01, 0x14, 0xC8, 0x10, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0xAA, 0xBB],
'rainbow_flow_forward': [0xDD, 0x55, 0xEE, 0x02, 0x28, 0xC8, 0x00, 0x03, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0xAA, 0xBB],
'rainbow_wave': [0xDD, 0x55, 0xEE, 0x03, 0x1E, 0xC8, 0x1E, 0x0A, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0xAA, 0xBB],
'green_wipe': [0xDD, 0x55, 0xEE, 0x04, 0x19, 0xC8, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0xFF, 0x00, 0xAA, 0xBB],
'theater_chase': [0xDD, 0x55, 0xEE, 0x05, 0x23, 0xC8, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0xAA, 0xBB],
'blue_breath': [0xDD, 0x55, 0xEE, 0x06, 0x28, 0xC8, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0xFF, 0xAA, 0xBB],
}
return presets
# 使用示例
if __name__ == "__main__":
generator = WS2812B_Command_Generator()
# 生成自定义指令
cmd = generator.generate_command(
mode=2, # 彩虹流水模式
speed=40, # 40ms
brightness=200, # 亮度200
led_count=50, # 50个LED
r=0, g=0, b=0, # 颜色(彩虹模式不使用)
param1=0, # 正向流动
param2=3 # 流水宽度3
)
print("生成指令:", generator.command_to_hex(cmd))
# 使用预设指令
presets = generator.get_preset_commands()
print("\n预设红色指令:", generator.command_to_hex(presets['static_red']))
串口发送工具(多种语言)
Python发送工具
python
import serial
import time
class WS2812B_Controller:
def __init__(self, port='COM3', baudrate=115200):
self.serial = serial.Serial(port, baudrate, timeout=1)
time.sleep(2) # 等待串口初始化
def send_command(self, command_hex):
"""发送十六进制指令"""
# 转换十六进制字符串为字节
hex_bytes = command_hex.replace(' ', '')
data = bytes.fromhex(hex_bytes)
self.serial.write(data)
print(f"已发送: {command_hex}")
def send_preset(self, preset_name):
"""发送预设指令"""
generator = WS2812B_Command_Generator()
presets = generator.get_preset_commands()
if preset_name in presets:
command = presets[preset_name]
command_hex = generator.command_to_hex(command)
self.send_command(command_hex)
else:
print(f"预设 '{preset_name}' 不存在")
def close(self):
self.serial.close()
# 使用示例
controller = WS2812B_Controller('COM3')
controller.send_preset('static_red')
time.sleep(1)
controller.send_preset('rainbow_breath_fast')
controller.close()
C#发送工具
csharp
using System.IO.Ports;
public class WS2812BController
{
private SerialPort serialPort;
public WS2812BController(string portName = "COM3", int baudRate = 115200)
{
serialPort = new SerialPort(portName, baudRate);
serialPort.Open();
}
public void SendCommand(string hexCommand)
{
// 移除空格
hexCommand = hexCommand.Replace(" ", "");
// 转换十六进制字符串为字节数组
byte[] data = new byte[hexCommand.Length / 2];
for (int i = 0; i < hexCommand.Length; i += 2)
{
data[i / 2] = Convert.ToByte(hexCommand.Substring(i, 2), 16);
}
serialPort.Write(data, 0, data.Length);
Console.WriteLine($"已发送: {hexCommand}");
}
public void SendPreset(string presetName)
{
Dictionary<string, string> presets = new Dictionary<string, string>
{
{"static_red", "DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 28 FF 00 00 AA BB"},
{"static_green", "DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 28 00 FF 00 AA BB"},
{"rainbow_breath", "DD 55 EE 01 1E C8 10 00 99 01 00 00 00 03 00 28 00 00 00 AA BB"}
};
if (presets.ContainsKey(presetName))
{
SendCommand(presets[presetName]);
}
}
public void Close()
{
serialPort.Close();
}
}
上位机对接方案
1. 简易上位机设计
python
import tkinter as tk
from tkinter import ttk, colorchooser
import serial
import threading
class WS2812B_Control_App:
def __init__(self):
self.window = tk.Tk()
self.window.title("WS2812B LED控制器")
self.window.geometry("800x600")
# 串口设置
self.serial_port = None
self.init_ui()
def init_ui(self):
# 串口设置区域
port_frame = ttk.LabelFrame(self.window, text="串口设置", padding=10)
port_frame.pack(fill="x", padx=10, pady=5)
ttk.Label(port_frame, text="串口号:").grid(row=0, column=0, padx=5)
self.port_combo = ttk.Combobox(port_frame, values=self.get_available_ports())
self.port_combo.grid(row=0, column=1, padx=5)
ttk.Button(port_frame, text="连接", command=self.connect_serial).grid(row=0, column=2, padx=5)
ttk.Button(port_frame, text="断开", command=self.disconnect_serial).grid(row=0, column=3, padx=5)
# 模式选择区域
mode_frame = ttk.LabelFrame(self.window, text="模式选择", padding=10)
mode_frame.pack(fill="x", padx=10, pady=5)
self.mode_var = tk.IntVar(value=0)
modes = [
("静态颜色", 0),
("彩虹呼吸", 1),
("彩虹流水", 2),
("彩虹波浪", 3),
("颜色扫除", 4),
("剧场追逐", 5),
("单色呼吸", 6)
]
for i, (text, value) in enumerate(modes):
rb = ttk.Radiobutton(mode_frame, text=text, variable=self.mode_var, value=value)
rb.grid(row=i//4, column=i%4, padx=10, pady=5, sticky="w")
# 参数控制区域
param_frame = ttk.LabelFrame(self.window, text="参数控制", padding=10)
param_frame.pack(fill="x", padx=10, pady=5)
# LED数量
ttk.Label(param_frame, text="LED数量:").grid(row=0, column=0, padx=5)
self.led_count_slider = ttk.Scale(param_frame, from_=1, to=100, orient="horizontal")
self.led_count_slider.set(40)
self.led_count_slider.grid(row=0, column=1, padx=5)
self.led_count_label = ttk.Label(param_frame, text="40")
self.led_count_label.grid(row=0, column=2, padx=5)
# 速度控制
ttk.Label(param_frame, text="速度:").grid(row=1, column=0, padx=5)
self.speed_slider = ttk.Scale(param_frame, from_=1, to=255, orient="horizontal")
self.speed_slider.set(30)
self.speed_slider.grid(row=1, column=1, padx=5)
self.speed_label = ttk.Label(param_frame, text="30ms")
self.speed_label.grid(row=1, column=2, padx=5)
# 亮度控制
ttk.Label(param_frame, text="亮度:").grid(row=2, column=0, padx=5)
self.brightness_slider = ttk.Scale(param_frame, from_=0, to=255, orient="horizontal")
self.brightness_slider.set(150)
self.brightness_slider.grid(row=2, column=1, padx=5)
self.brightness_label = ttk.Label(param_frame, text="150")
self.brightness_label.grid(row=2, column=2, padx=5)
# 颜色选择
ttk.Label(param_frame, text="颜色:").grid(row=3, column=0, padx=5)
self.color_button = tk.Button(param_frame, text="选择颜色",
command=self.choose_color, bg="#FF0000")
self.color_button.grid(row=3, column=1, padx=5)
# 发送按钮
ttk.Button(self.window, text="发送指令", command=self.send_command).pack(pady=20)
# 绑定滑块事件
self.led_count_slider.configure(command=self.update_led_count_label)
self.speed_slider.configure(command=self.update_speed_label)
self.brightness_slider.configure(command=self.update_brightness_label)
def get_available_ports(self):
# 获取可用串口列表
import serial.tools.list_ports
ports = [port.device for port in serial.tools.list_ports.comports()]
return ports if ports else ["COM3", "COM4", "COM5"]
def connect_serial(self):
port = self.port_combo.get()
try:
self.serial_port = serial.Serial(port, 115200, timeout=1)
print(f"已连接到 {port}")
except Exception as e:
print(f"连接失败: {e}")
def disconnect_serial(self):
if self.serial_port and self.serial_port.is_open:
self.serial_port.close()
print("已断开连接")
def choose_color(self):
color = colorchooser.askcolor()[0]
if color:
r, g, b = [int(c) for c in color]
self.color_button.config(bg=f"#{r:02x}{g:02x}{b:02x}")
self.selected_color = (r, g, b)
def update_led_count_label(self, value):
self.led_count_label.config(text=f"{int(float(value))}")
def update_speed_label(self, value):
self.speed_label.config(text=f"{int(float(value))}ms")
def update_brightness_label(self, value):
self.brightness_label.config(text=f"{int(float(value))}")
def send_command(self):
if not self.serial_port or not self.serial_port.is_open:
print("请先连接串口")
return
# 获取参数
mode = self.mode_var.get()
speed = int(self.speed_slider.get())
brightness = int(self.brightness_slider.get())
led_count = int(self.led_count_slider.get())
# 获取颜色
if hasattr(self, 'selected_color'):
r, g, b = self.selected_color
else:
r, g, b = 255, 0, 0 # 默认红色
# 生成指令
generator = WS2812B_Command_Generator()
command = generator.generate_command(
mode=mode,
speed=speed,
brightness=brightness,
led_count=led_count,
r=r, g=g, b=b
)
# 发送指令
hex_command = generator.command_to_hex(command)
self.serial_port.write(bytes(command))
print(f"已发送指令: {hex_command}")
def run(self):
self.window.mainloop()
if __name__ == "__main__":
app = WS2812B_Control_App()
app.run()
调试与故障排除
常见问题及解决方案
-
LED不亮
-
检查电源连接(5V,地线)
-
检查数据线方向(DI输入)
-
检查LED数量设置是否正确
-
-
颜色不正确
-
确认颜色顺序(WS2812B是GRB顺序)
-
检查颜色值是否正确传输
-
确认电源电压是否足够(5V)
-
-
特效不工作
-
检查模式字节是否正确
-
确认速度参数是否合适(太小可能看不到变化)
-
检查是否有复位信号发送
-
-
通信失败
-
检查串口波特率(115200)
-
确认帧头正确(DD 55 EE)
-
检查指令长度(22字节)
-
调试工具
python
# 调试脚本
import serial
import time
def debug_connection():
port = 'COM3'
try:
ser = serial.Serial(port, 115200, timeout=1)
print(f"连接到 {port}")
# 发送测试指令
test_commands = [
"DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 01 FF 00 00 AA BB", # 1个红色
"DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 01 00 FF 00 AA BB", # 1个绿色
"DD 55 EE 00 00 00 01 00 99 01 00 00 00 03 00 01 00 00 FF AA BB", # 1个蓝色
]
for cmd in test_commands:
print(f"发送: {cmd}")
ser.write(bytes.fromhex(cmd.replace(' ', '')))
time.sleep(1)
ser.close()
print("调试完成")
except Exception as e:
print(f"错误: {e}")
if __name__ == "__main__":
debug_connection()
性能优化建议
1. 内存优化
-
使用静态缓冲区避免频繁分配内存
-
优化颜色转换算法
-
使用查表法替代实时计算
2. 速度优化
-
使用DMA传输SPI数据
-
优化中断处理
-
使用硬件加速
3. 稳定性优化
-
添加错误校验机制
-
实现指令队列
-
添加看门狗定时器
扩展功能计划
第一阶段:基础功能 ✓
-
静态颜色显示
-
基本特效模式
第二阶段:高级特效
-
音乐频谱显示
-
温度色彩映射
-
图像显示模式
-
文本滚动显示
第三阶段:网络控制
-
WiFi控制
-
蓝牙控制
-
Web界面控制
-
手机App控制
第四阶段:智能功能
-
定时任务
-
场景保存/调用
-
自动亮度调节
-
语音控制
这个完整的指令说明涵盖了从基础使用到高级功能的所有方面。您可以根据实际需求选择使用相应的功能。如有特定需求,我可以进一步为您定制开发。