首页 >  其他分享 >【史上最全面esp32教程】RGB彩灯篇

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

时间:2023-08-06 19:31:53浏览次数:308  
标签: --  esp32  sign  RGB  彩灯  灯珠  pixels

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

@TOC


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

rgb彩灯的介绍

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

[video(video-TTC6QmVQ-1677235948357)(type-bilibili)(url- https://player.bilibili.com/player.html?aid=591684889)(image- /i/ll/?i=img_convert/87091975dd9e1788d1b739bc44c72f2f.jpeg)(title-Arduino开源硬件编程学习炫酷玩法-RGB全彩灯珠点阵,彩灯效果,汉字显示,字符显示,传感器扩展,声控音乐效果灯)]

使用方法

连线

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

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

操作

包含头文件#include <Adafruit_NeoPixel.h> 定义彩灯类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 <Adafruit_NeoPixel.h>

// 设置灯珠数量
#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<=0)
            sign=0;
        }
        else
        {
          c3++;
          if(c3>=255)
          {
            sign=1;
            sign_bit = 2;
          }
        }
    }
    if(sign_bit == 2)
    {
        if(sign)
        {
          c2--;
          if(c2<=0)
            sign=0;
        }
        else
        {
          c1++;
          if(c1>=255)
          {
            sign=1;
            sign_bit = 3;
          }
        }
    }
    if(sign_bit == 3)
    {
        if(sign)
        {
          c3--;
          if(c3<=0)
            sign=0;
        }
        else
        {
          c2++;
          if(c2>=255)
          {
            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 <Adafruit_NeoPixel.h>

// 设置灯珠数量
#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了。

总结

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

标签: --, esp32, sign, RGB, 彩灯, 灯珠, pixels
From: https://blog.51cto.com/u_16176403/6986351

相关文章

  • 【史上最全面esp32教程】oled显示篇
    @TOC前言本节课主要讲的是OLED的基础使用。使用的oled为0.96寸,128*64。大家的其他型号也是可以用的。提示:以下是本篇文章正文内容,下面案例可供参考介绍及库下载oled的简介:OLED英文全名OrganicLight-EmittingDiode,又可称为「有机发光二极体」或是「有机电雷射显示」。OLED有着色......
  • android RGB颜色参考
    <?xmlversion="1.0"encoding="utf-8"?><resources><colorname="white">#FFFFFF</color><!--白色--><colorname="ivory">#FFFFF0</color><!--象牙色--><colorna......
  • [ESP] ESP32开机自动配网运行iperf
    esp-idf版本tag-V4.4.2示例路径examples/wifi/iperfiperf_example_main.c(修改后的版本)/*Wi-FiiperfExampleThisexamplecodeisinthePublicDomain(orCC0licensed,atyouroption.)Unlessrequiredbyapplicablelaworagreedtoinwritin......
  • ESP32连接云服务器【WebSocket】
    ESP32连接云服务器【ESP32+宝塔面板】......
  • WIFI&蓝牙(ESP32)转CAN总线&串口TTL模块-A2-蓝牙和CAN总线透传通信(经典蓝牙主机)
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>          实现的......
  • 论文解读|用于从RGB-D数据进行3D物体检测的Frustum PointNets
    原创|文BFT机器人01摘要论文研究了室内和室外场景中基于RGBD数据的3D目标检测。论文的方法不仅仅依赖于3D方案,而是利用成熟的2D对象检测器和先进的3D深度学习进行对象定位,即使是小对象也能实现高效率和高召回。直接在原始点云中学习,可以在强遮挡或非常稀疏的点下也能够精确地估......
  • ESP32连接MQ Sensor实现气味反应
    ESP32连接MQSensor实现气味反应ESP32+MQTT+MySQL实现发布订阅【气味数据收集】......
  • ESP32 VScode环境问题
    vsdcodeesp-idf插件安装报错:Espressif\tools\idf-python\3.11.2\python.exe-mpip"isnotvalid.(ERROR_INVALID_PIP)打开命令窗口使用命令:python-mpipinstall--upgrade,出现提示Nomodulenamedpip,使用python-mensurepip重新安装pip,回到esp-idf重新运行python-mpi......
  • esp32笔记[4]-基于ESP-NOW协议的点对点数据收发
    摘要基于ESP-NOW协议的点对点数据收发,用两片ESP8266/ESP32实现远程控制小灯亮灭。硬件平台ESP8266小灯:IO2开发平台ArduinoIDEESP-NOW协议简述[https://www.zhihu.com/tardis/zm/art/344109867?source_id=1002]ESP-NOW是由乐鑫开发的另一款无线通信协议,可以使多个设......
  • RGB、HSV、HSL和CMYK颜色空间
    简介这四种颜色空间在不同的应用领域有不同的用途:RGB主要用于计算机图形学和显示设备中,可以通过调整红、绿、蓝三个分量的值来实现颜色的调整。HSV和HSL主要用于图像处理和设计领域,可以更直观地表示颜色的属性,比如色相、饱和度和亮度。CMYK主要用于印刷行业,可以准确地表示颜......

赞助商

阅读排行

  • Python3网络爬虫浓缩系列
  • visual studio 2022离线安装包制作教程
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百三十七题-可伸缩属性
  • Codeforces
  • 使用U盘制作启动盘并重装系统
  • 编写HelloWorld程序
  • departments/components/add.vue
  • 1081. 度的数量
  • js- day03- 将数据变成柱形图
  • leetcode 22 括号生成
  • nginx使用
  • webrtc-streamer实现简单rtsp视频监控
  • wordpress外贸独立站商城 如此简单
  • 函数练习错题
  • 利用TableAdapter更新数据库

玻璃钢生产厂家济源公园标识玻璃钢景观雕塑武汉佛山玻璃钢仿真动物雕塑厂家河北环保玻璃钢雕塑制作河北超市商场美陈售价漳州玻璃钢花盆花器运城学校校园玻璃钢景观雕塑公司玻璃钢鹿马赛克雕塑玻璃钢人物景观雕塑定制北京通州玻璃钢花盆厂家山东商场节庆美陈雕塑工厂莆田玻璃钢人物雕塑价格大庆玻璃钢雕塑内江玻璃钢人物雕塑厂家海口玻璃钢雕塑服务放心可靠商场美陈匠心品质内江商场美陈花器泰安玻璃钢雕塑设计西安玻璃钢雕塑工厂陕西玻璃钢商场美陈上海玻璃钢游乐场门头雕塑临沂动物玻璃钢雕塑生产厂家北京主题商场美陈销售北京走廊商场美陈怎么样吉林人物玻璃钢雕塑批发广宁玻璃钢动物雕塑价格东山玻璃钢雕塑厂家梧州玻璃钢泡沫雕塑富阳区玻璃钢雕塑尺寸玻璃钢雕塑案例玻璃钢雕塑公园上海香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化