第二十三篇、基于Arduino uno,控制RGB灯亮灭——结果导向

news/2024/11/8 0:30:24/

0、结果

说明:RGB灯亮红色,一秒钟闪烁一次,可以很方便的更改灯的颜色,如果是你想要的,可以接着往下看。

1、外观

说明:RGB灯有共阴极的,也有共阳极的,从外观上是看不出来的,原理和代码有一些不同。


2、连线

 说明:只需要连接四根线。
uno————  共阴极RGB接线
 GND-----------COM
    9-----------RED
   10-----------GREEN
   11-----------BLUE

uno————  共阳极RGB接线
 5V-----------COM
    9-----------RED
   10-----------GREEN
   11-----------BLUE

3、源程序

说明:可以很方便的更改颜色,并将对应功能进行函数化,方便移植。

/****************************************rgb part****************************************/
/*共阴极接线:GND------GND9------RED10------GREEN11------BLUE
*/
#define rgbRedVal   255                                             //红灯的值 R:0-255
#define rgbGreenVal 0                                               //绿灯的值 G:0-255
#define rgbBlueVal  0                                               //蓝灯的值 B:0-255#define rgbTimeOut  500                                             //500毫秒检测一次unsigned long rgbTimes = 0;                                         //记录设备运行时间
int redPin = 9;                                                     //对应的引脚
int greenPin = 10;
int bluePin = 11;
/****************************************set up and loop part*********************************/
void setup() {Serial.begin(9600);                                               //设置串口波特率为9600pinMode(redPin, OUTPUT);                                          //配置为输出模式pinMode(greenPin, OUTPUT);                                        //配置为输出模式pinMode(bluePin, OUTPUT);                                         //配置为输出模式Serial.println("设备上线!");
}
void loop() {colorRGB(rgbRedVal, rgbGreenVal, rgbBlueVal);                     //显示RGB的颜色delay(1000);colorRGB(0, 0, 0);                                                //关灯delay(1000);
}
/****************************************rgb part****************************************/
/*显示RGB的颜色*/
void colorRGB(int red, int green, int blue) {if (millis() - rgbTimes >= rgbTimeOut) {                         //一定时间检测一次rgbTimes = millis();analogWrite(redPin, red);analogWrite(greenPin, green);analogWrite(bluePin, blue);}
}

4、注意事项

说明:rgb灯可以直接连接uno的数字引脚,但是不能直接连接5V。当要显示白色的时候,会偏蓝。共阴极的rgb,是高电平占比越多越亮,共阳极则相反。不知道各个颜色的rgb值,可以从画图软件中得到,如下图所示。

 5、基本原理

        RGB灯是一种可以发出各种颜色光的灯,它由红、绿、蓝三个LED灯组成。在Arduino中,RGB灯的工作原理可以描述为以下几个步骤:
        在Arduino的程序中,通过定义引脚的电平值和占空比等参数,可以控制RGB灯的亮度和颜色。
        在控制RGB灯的过程中,需要使用PWM(脉冲宽度调制)技术来模拟出模拟电压值,实现对LED灯的亮度和颜色的控制。
        具体来说,可以利用Arduino的PWM输出功能,将三个LED灯的信号分别连接到不同的引脚上,然后通过控制这些引脚的电平值和占空比,可以实现RGB灯的各种颜色输出。
        在使用RGB灯时,还要注意适当限制输入电压和电流,以便保护LED灯的正常工作,并防止由于过载或者其他因素造成损坏。


http://www.ppmy.cn/news/172557.html

相关文章

iOS开发:__weak __strong解决Block嵌套

Block使用会存在循环引用的问题,多个Block嵌套使用的情况更复杂,还会出现对象nil的问题。 为什么会循环引用? 现在iOS开发都是在ARC引用计数管理模式下的,参考另一篇文章《Block底层原理》,我们知道Block访问外部变量…

ES查询 too_many_clauses,maxClauseCount is set to 5000

一:语法执行背景 ES boo查询中过多的拼接bool导致报maxClauseCount is set to 5000 { "caused_by": { "type": "too_many_clauses","reason": "maxClauseCount is set to 5000" } } 查询DSL语句: { …

【备战秋招】每日一题:4月1日美团春招(二批)第五题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站(含题解) www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200道互联网大厂模拟练习题&…

联想微型计算机boot,联想电脑boot设置图解

联想电脑boot设置图解 不管是台式机还是笔记本如果安装的主板不同,其主板BISO程序也略有不同。联想笔记本的里面的主板BIOS设置就跟别的笔记本的BIOS设置有少许的差异,下面就小编在联想笔记本维修过程中吸取一些关于主板BIOS设置经验,来向各位…

联想电脑 linux BIOS,联想电脑bios怎么设置

BIOS是英文“Basic Input Output System”的缩略语,直译过来就是“基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,那么联想电脑bios怎么设置?下面大家跟着学习啦小编一起来学习一下吧。 联想电脑bios设置方法 1、开机时,按F2&#xf…

联想台式计算机编号怎么查,联想电脑怎么查看主机编号_联想电脑编号在哪里...

联想电脑怎么查看主机编号呢?下面介绍几种方法供你使用 1、主机背面的黑白标识牌 主机编号由主机型号TYPE xxxx-xxx和序列号 S/N xx-xxxxx 14位数字和字母组合而成。 2、电池槽位查看主机编号 如果机器处于开机状态,建议关机后拿掉电池,查看主…

联想电脑 linux bios设置,韩博士分享关于联想电脑bios的基本设置

BIOS设置是很多用户在重装系统时都需要用到的,而关于BIOS品牌的主板也有很多,所以在设置上也会存在一定的差异。一般电脑的开机启动快捷键为F12,有些电脑开机的时候在电脑屏幕下方会显示哪个键可以用来设置启动选项,有些电脑不显示…

联想如何打开计算机配置,联想电脑如何进入bios设置

联想电脑进入BIOS的快捷键有“F2、F1、Del/Delete、NOVO开机” 部分机型按F2、F1时需要FN键配合 注:使用Win8/8.1操作系统的电脑,需要在系统下选择重启,在“开机自检界面”连续点击对应快捷键进入BIOS界面,详细方法见如下解决方案 联想笔记本产品进入BIOS的操作方法 适用范…