驴友花雕 发表于 2024-9-27 18:06:21

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






驴友花雕 发表于 2024-9-27 18:09:18

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

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


驴友花雕 发表于 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万)种通过不同的组合颜色。





驴友花雕 发表于 2024-9-27 18:12:56

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

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


驴友花雕 发表于 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毫秒更新一次

实验开源代码

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

const byte ledPins[] = {38, 39, 40};    // 定义红、绿、蓝LED引脚
const byte chns[] = {0, 1, 2};          // 定义PWM通道
int red, green, blue;

void setup() {
for (int i = 0; i < 3; i++) {   // 设置PWM通道,1KHz,8位
    ledcAttachChannel(ledPins, 1000, 8, chns);
}
}

void loop() {
red = random(0, 256);    // 生成随机红色值
green = random(0, 256);// 生成随机绿色值
blue = random(0, 256);   // 生成随机蓝色值
setColor(red, green, blue);// 设置颜色
delay(500);// 延时500毫秒
}

void setColor(byte r, byte g, byte b) {
ledcWrite(ledPins, r); // 共阴极LED,高电平点亮LED
ledcWrite(ledPins, g);
ledcWrite(ledPins, b);
}


驴友花雕 发表于 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, r):设置红色LED的PWM值(共阴极LED,高电平点亮)。
ledcWrite(ledPins, g):设置绿色LED的PWM值。
ledcWrite(ledPins, b):设置蓝色LED的PWM值。

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

实验场景图



驴友花雕 发表于 2024-9-27 18:23:37

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




页: [1]
查看完整版本: 【花雕学编程】Arduino动手做(232)---ESP32S3 CAM随机颜色灯