首页
ESP32系列
ESP32-S2
ESP32-S2模拟HID鼠标键盘
ESP32编程
Web控制ESP32-S2模拟HID鼠标
ESP32简介
ESP32驱动WS2812灯
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
ESP32驱动WS2812灯
库文件安装 打开arduino,点击菜单栏的工具,选择管理库。 搜索“Freenove” ,找到 Freenove WS2812 Lib for ESP32。点击安装即可。 ```cpp #include "Freenove_WS2812_Lib_for_ESP32.h" #define LEDS_COUNT 1 //彩灯数目 #define LEDS_PIN 18 //ESP32控制ws2812的引脚 #define CHANNEL 0 //控制通道,最多8路 Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);//申请一个彩灯控制对象 void setup() { strip.begin(); //初始化彩灯控制引脚 } void loop() { for (int j = 0; j < 255; j += 2) { for (int i = 0; i < LEDS_COUNT; i++) { strip.setLedColorData(i, strip.Wheel((i * 256 / LEDS_COUNT + j) & 255));//设置彩灯颜色数据 } strip.show();//显示颜色 delay(5); } } ``` 注: 在c语言中a&b是进行逻辑与运算。 &是C的位运算符的一种,进行逻辑与运算,格式是:变量1&变量2,进行计算时,将会把类型提升为int。二进制运算符&通过对两个操作数一位一位的比较产生一个新的值,对于每个位,只有两个操作数的对应位都为1时结果才为1。如10000001&11000000的结果为“10000000”。 上述示例使用&是为了限制给strip.Wheel()数值结果不大于255,使用串口打印下面的数值可知 strip.Wheel(0)返回数值:16711680 strip.Wheel(85)返回数值:65280 ```cpp Serial.println(strip.Wheel((i * 256 / LEDS_COUNT + j) & 255)); Serial.println(i * 256 / LEDS_COUNT + j); Serial.println((i * 256 / LEDS_COUNT + j) & 255); ``` 设置颜色数据为红色 `strip.setLedColorData(i, 16711680)` 这里颜色用十进制数字表示 RGB:红色 = `255, 0, 0` = `ff0000` = `16711680` 设置颜色数据为绿色 `strip.setLedColorData(i, 65280)` RGB:绿色 = `0, 255, 0` = `00ff00` = `65280` 颜色对照参考 [1.十六进制](http://www.360doc.com/content/19/0629/02/11213896_845500078.shtml "1") [2.十进制](https://www.veryhuo.com/a/view/18142.html "2") ![](/media/202112/2021-12-02_155624.png) ```cpp #include "Freenove_WS2812_Lib_for_ESP32.h" #define LEDS_COUNT 1 #define LEDS_PIN 18 #define CHANNEL 0 Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB); u8 m_color[5][3] = { {255, 0, 0}, {0, 255, 0}, {0, 0, 255}, {255, 255, 255}, {0, 0, 0} }; int delayval = 100; void setup() { strip.begin(); strip.setBrightness(10); } void loop() { for (int j = 0; j < 5; j++) { for (int i = 0; i < LEDS_COUNT; i++) { strip.setLedColorData(i, m_color[j][0], m_color[j][1], m_color[j][2]); strip.show(); delay(delayval); } delay(500); } } ``` 参考:[ESP32驱动WS2812的库](https://blog.csdn.net/weixin_38476200/article/details/115531592 "ESP32驱动WS2812的库")
local
2021年12月2日 15:56
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码