【史上最全面esp32教程】RGB彩灯篇

您所在的位置:网站首页 广告灯箱rgb控制器怎么接线 【史上最全面esp32教程】RGB彩灯篇

【史上最全面esp32教程】RGB彩灯篇

2023-12-10 18:35| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 rgb彩灯的介绍使用方法连线库操作 彩灯变换颜色实验彩灯呼吸灯效果总结

提示:以下是本篇文章正文内容,下面案例可供参考

rgb彩灯的介绍

ESP32 RGB彩灯是一种可以通过ESP32开发板控制的灯具,它可以实现多种灯光效果,如闪烁、跳变、渐变等。使用ESP32 RGB彩灯可以实现远程控制,可以通过Wi-Fi或蓝牙连接到ESP32开发板,然后使用Arduino IDE编写代码来控制RGB彩灯的亮度和颜色。此外,还可以使用PWM波来控制RGB彩灯的亮度,以实现更多的灯光效果。使用ESP32 RGB彩灯可以实现多种灯光效果,可以为家庭或办公室带来更多的色彩和活力。 B站的RGB彩灯效果展示:

Arduino开源硬件编程学习炫酷玩法-RGB全彩灯珠点阵,彩灯效果,汉字显示,字符显示,传感器扩展,声控音乐效果灯

使用方法 连线

pin16连接到rgb彩灯上面即可。

需要在软件中选择"项目"–>“加载库”–>“管理库”–>输入"Adafruit_NeoPixel"安装即可。

操作

包含头文件#include 定义彩灯类Adafruit_NeoPixel pixels(彩灯数量, pin脚, NEO_GRB + NEO_KHZ800);

rgb灯珠的开始

pixels.begin();

设置亮度:

pixels.setBrightness(255);

设置全部灯珠颜色:

pixels.fill(0xFF0000);

清除

pixels.clear();

设置指定的灯珠的rgb值:

pixels.setPixelColor(index, pixels.Color(r,g,b));

显示:

pixels.show(); 彩灯变换颜色实验

我这里只有5个灯珠,所以最大灯珠就写了5.

#include // 设置灯珠数量 #define NUMPIXELS 5 // 设置输出数据引脚 #define PIN_NEOPIXEL 16 // 初始化灯珠控制实例 Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800); // 当前灯珠指向 int16_t idx = 0; // 启动设置 void setup() { // 灯珠控制开始 pixels.begin(); // 设置亮度为255 pixels.setBrightness(255); // 设置灯珠颜色,全部关闭 pixels.fill(0x000000); delay(100); // 设置灯珠颜色 pixels.fill(0xFF0000); delay(100); pixels.clear(); } uint16_t c1 = 0; uint16_t c2 = 0; uint16_t c3 = 0; uint16_t sign_bit =0; uint16_t sign = 1; // 循环主体程序 void loop() { if(sign_bit == 0) { //这个if语句在循环体内只运行一次,该if语句及下方if语句可以用switch代替 if(sign) { c1++; if(c1>=255) sign=0; } else { c2++; if(c2>=255) { sign=1; sign_bit = 1; } } } if(sign_bit == 1) { if(sign) { c1--; if(c1 sign=1; sign_bit = 2; } } } if(sign_bit == 2) { if(sign) { c2--; if(c2 sign=1; sign_bit = 3; } } } if(sign_bit == 3) { if(sign) { c3--; if(c3 sign=1; sign_bit = 1; } } } //在这里注释的是一个一个将灯珠点亮并实现渐变 idx++; idx%=5; pixels.setPixelColor(idx, pixels.Color(c1,c2,c3)); /*======================================= 全部点亮用该函数 pixels.fill(pixels.Color(c1,c2,c3)); =======================================*/ delay(10);//延时,改变速度 // 显示 pixels.show(); }

if里面的东西可以直接抄,以及上面的变量,其他的实验请大家自己完成。

彩灯呼吸灯效果

原理:通过setBrightness(255);函数实现。

/* 深圳市普中科技有限公司(PRECHIN 普中) 技术支持:www.prechin.net * * 实验名称:RGB彩灯实验 * * 接线说明:RGB彩灯模块-->ESP32 IO * WS-->(16) * * 实验现象:程序下载成功后,RGB彩灯循环点亮且循环变化颜色 * * 注意事项:需要在软件中选择"项目"-->"加载库"-->"管理库"-->输入"Adafruit_NeoPixel"安装即可。 * */ #include // 设置灯珠数量 #define NUMPIXELS 5 // 设置输出数据引脚 #define PIN_NEOPIXEL 16 // 初始化灯珠控制实例 Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800); // 当前灯珠指向 int16_t idx = 0; // 启动设置 void setup() { // 调试串口速率设置 Serial.begin(115200); // 灯珠控制开始 pixels.begin(); // 设置亮度为255 pixels.setBrightness(0); // 设置灯珠颜色,全部关闭 pixels.fill(0x000000); delay(100); // 设置灯珠颜色 pixels.fill(0xFF0000); delay(100); pixels.clear(); } unsigned int bright = 0;//定义亮度变量 // 循环主体程序 void loop() { pixels.setPixelColor(0,pixels.Color(220,255,251)); bright++; bright%=256; pixels.setBrightness(bright); delay(10);//延时,改变速度 // 显示 pixels.show(); }

运行后就可以看到第一个rgb彩灯在变换亮度。 一起变换也是一样的,指定index,设置亮度就ok了。

总结

大家可以想一些其他的好看的效果,并实现他。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3