ESP32-S3 IDF框架 控制 WS2812 灯条:实现多种灯效
概述
本组件名叫ws2812_control,依赖乐鑫led_strip 驱动实现了一个用于控制 WS2812 LED 灯条各种灯效的库,适用于 ESP32系列微控制器IDF框架,IDF版本>=4.4.7。该库包含了多种效果,如呼吸、渐变、闪烁和彩虹效果,以及基本的开关功能。设计时考虑了模块化和易集成性,方便在其他项目中使用。
使用下面命令将组件添加到你的项目
idf.py add-dependency "1589326497/ws2812_control^1.1.0"
功能特性
- HSV 到 RGB 转换:提供了一个辅助函数,用于将 HSV 颜色空间转换为 RGB 颜色空间。
- 多种 LED 效果:支持常亮、关闭、呼吸、渐入、慢闪、快闪和彩虹效果。
- 单个 LED 控制:可以单独设置某个 LED 的颜色。
- 颜色宏定义:预定义了多种常用颜色,如白色、绿色、红色、蓝色等。
- 模块化设计:代码结构清晰,易于扩展和维护。
使用方法
1. 创建 WS2812 控制句柄
首先,需要创建一个 WS2812 控制句柄,用于后续的 LED 控制操作。
led_strip_t* strip = ws2812_create();
2. 设置 LED 效果
可以通过调用 ws2812_set 函数来设置 LED 的效果。例如,设置所有 LED 为常亮状态,颜色为红色:
led_color_t color = COLOR_RED;
led_effect_t effect = LED_EFFECT_ON;
ws2812_set(strip, color, effect);
3. 其他功能
-
设置单个 LED 颜色:
set_led_color(strip, 0, COLOR_GREEN); // 设置第0个LED为绿色 -
关闭所有 LED:
led_set_off(strip); -
呼吸效果:
led_set_breath(strip, COLOR_BLUE); -
彩虹效果:
led_set_rainbow(strip);
示例代码
以下是一个简单的示例代码,展示了如何使用该库控制 WS2812 LED 灯条:
#include "ws2812_control.h"
void app_main() {
led_strip_t* strip = ws2812_create();
// 设置所有 LED 为常亮状态,颜色为红色
led_color_t color = COLOR_RED;
led_effect_t effect = LED_EFFECT_ON;
ws2812_set(strip, color, effect);
// 等待一段时间
vTaskDelay(pdMS_TO_TICKS(2000));
// 设置呼吸效果
effect = LED_EFFECT_BREATH;
ws2812_set(strip, color, effect);
// 等待一段时间
vTaskDelay(pdMS_TO_TICKS(5000));
// 关闭所有 LED
effect = LED_EFFECT_OFF;
ws2812_set(strip, color, effect);
}
仓库地址
https://github.com/NingZiXi/ws2812_control.git
3580

被折叠的 条评论
为什么被折叠?



