六、ESP32RGB-LED灯

一.介绍
RGB灯有4个引脚,R、G、B三个引脚连接到LED灯的一端,还有一个引脚是共用的正极(阳)或者共用的阴极(负)。我们这里选用的是共阳RGB,展示了三个LED如何华丽蜕变为一个RGB的过程,R、G、B其实就是三个LED的负极,把它们的正极拉到一个公共引脚上了,它们公共引脚是正极,所以称之为共阳RGB。

共阳RGB与共阴RGB的区别

上面我们还遗留一个问题——共阴与共阳在使用上有什么区别?共阳RGB就是把正极拉到一个公共引脚,其他三个端则是负极。下图是可以看出,外表上共阴共阳没有任何区别:
然而在使用上是有区别的,区别分为以下两点:
(1)接线中的改变,共阳的话,共用端需要接5V,而不是GND,否则LED不能被点亮。
(2)第二点就是,在颜色的调配上,与共阴是完全相反的。
使用PWM可以产生0~255之间的全部颜色,共16777216种颜色(256×256×256)。
 
举个例子:共阴RGB显示红色为R-255,G-0,B-0。然而共阳则完全相反,RGB数值是R-0,G-255,B-255。
二.元器件清单
  • ESP32开发板
  • 一个RGB-LED
  • 面包板
  • 导线若干
三.电路图

六、ESP32RGB-LED灯

四.代码设计
对于ESP32PWM的用法我就不多说了,如有不会请查阅ESP32PWM功能,以下是RGB-LED的程序:

[scu name=”arduino-ide-post” platform=”esp32:esp32:esp32″]

  1. uint8_t ledR = 27;
  2. uint8_t ledG = 26;
  3. uint8_t ledB = 25;
  4. void setup()
  5. {
  6. Serial.begin(115200);
  7. delay(10);
  8. ledcAttachPin(ledR, 1); //引脚的通道
  9. ledcAttachPin(ledG, 2);
  10. ledcAttachPin(ledB, 3);
  11. ledcSetup(1, 12000, 8); // 12 kHz PWM,8位的分辨率
  12. ledcSetup(2, 12000, 8);
  13. ledcSetup(3, 12000, 8);
  14. }
  15. void loop()
  16. {
  17. //红色
  18. ledcWrite(1, 0);
  19. ledcWrite(2, 255);
  20. ledcWrite(3, 255);
  21. delay(2000);
  22. //绿色
  23. ledcWrite(1, 255);
  24. ledcWrite(2, 0);
  25. ledcWrite(3, 255);
  26. delay(2000);
  27. //蓝色
  28. ledcWrite(1, 255);
  29. ledcWrite(2, 255);
  30. ledcWrite(3, 0);
  31. delay(2000);
  32. }
五.测试代码
要测试代码,只需使用Arduino IDE上传它。然后,您应该看到RGB-LED变换颜色的效果。以下视频就是实现的效果:
Set danmaku color
Set danmaku type
0:00 / 0:00
Speed
Loop
Show danmaku
Unlimited danmaku
Opacity for danmaku
0.5
0.75
Normal
1.25
1.5
2
[x]
Player version
Player FPS
Video type
Video url
Video resolution
Video duration
 
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    ESP-32

    五、ESP32使用PWM控制蜂鸣器

    2025-4-15 17:01:56

    ESP-32

    七,ESP32 android蓝牙控制LED

    2025-4-15 17:11:23

    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索