196浏览
查看: 196|回复: 6

[项目] 【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

[复制链接]
【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图2

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图3

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:09:18

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

这里将会测试控制RGB LED,它可以发出不同颜色的光。接下来,使用RGB LED制作多色光。项目5.1随机颜色的光在这个项目中,我们将制作一个彩色的LED。我们可以控制RGB LED来切换不同的颜色。

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:10:52

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

相关知识
RGB LED集成了3个LED,可以分别发出红光、绿光和蓝光。它有4个引脚。这个
长引脚(1)是公共端口,即3个LED的正极或负极端口。RGB LED具有公共正极
端口及其符号如下所示。通过控制这3个参数,我们可以使RGB LED发出各种颜色的光,LED发出不同亮度的光。

红、绿、蓝被称为三原色。当你将这三种原色灯光组合在一起时,它具有不同的亮度,几乎可以产生各种可见光。电脑屏幕,单像素单元,手机屏幕、霓虹灯等都是在这个原理下工作的。如果我们使用三个8位PWM来控制RGB LED,理论上,我们可以创建16777216(1600万)种通过不同的组合颜色。
【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:12:56

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

Arduino实验接线示意图(这里使用共阴极RGB模块)

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:15:17

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
   实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
   OV2640/5640摄像头模组
  {花雕动手做}项目之十三:ESP32-S3 CAM 控制LED灯随机显示不同的颜色,每500毫秒更新一次

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.    实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
  4.    OV2640/5640摄像头模组
  5.   {花雕动手做}项目之十三:ESP32-S3 CAM 控制LED灯随机显示不同的颜色,每500毫秒更新一次
  6. */
  7. const byte ledPins[] = {38, 39, 40};    // 定义红、绿、蓝LED引脚
  8. const byte chns[] = {0, 1, 2};          // 定义PWM通道
  9. int red, green, blue;
  10. void setup() {
  11.   for (int i = 0; i < 3; i++) {   // 设置PWM通道,1KHz,8位
  12.     ledcAttachChannel(ledPins[i], 1000, 8, chns[i]);
  13.   }
  14. }
  15. void loop() {
  16.   red = random(0, 256);    // 生成随机红色值
  17.   green = random(0, 256);  // 生成随机绿色值
  18.   blue = random(0, 256);   // 生成随机蓝色值
  19.   setColor(red, green, blue);  // 设置颜色
  20.   delay(500);  // 延时500毫秒
  21. }
  22. void setColor(byte r, byte g, byte b) {
  23.   ledcWrite(ledPins[0], r); // 共阴极LED,高电平点亮LED
  24.   ledcWrite(ledPins[1], g);
  25.   ledcWrite(ledPins[2], b);
  26. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:20:51

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

代码解释
1、引脚定义:
const byte ledPins[] = {38, 39, 40}:定义红、绿、蓝LED的引脚。
const byte chns[] = {0, 1, 2}:定义PWM通道。

2、setup函数:
for (int i = 0; i < 3; i++) { ledcAttachChannel(ledPins, 1000, 8, chns); }:设置每个LED引脚为PWM输出模式,频率为1KHz,分辨率为8位。

3、loop函数:
red = random(0, 256):生成0到255之间的随机红色值。
green = random(0, 256):生成0到255之间的随机绿色值。
blue = random(0, 256):生成0到255之间的随机蓝色值。
setColor(red, green, blue):调用setColor函数设置LED颜色。
delay(500):延时500毫秒。

4、setColor函数:
ledcWrite(ledPins[0], r):设置红色LED的PWM值(共阴极LED,高电平点亮)。
ledcWrite(ledPins[1], g):设置绿色LED的PWM值。
ledcWrite(ledPins[2], b):设置蓝色LED的PWM值。

这个代码的功能是:LED灯会随机显示不同的颜色,每500毫秒更新一次。

实验场景图

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-27 18:23:37

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图2

【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail