风筝
发表于: 2018-11-25 15:50:37 | 显示全部楼层

在本篇文章中,我们将了解什么是RGB全彩LED灯以及如何使用Arduino开发板点亮它。


什么是RGB LED灯?

RGB LED灯可以通过混合红色、绿色和蓝色这三种基本颜色来发出不同的颜色。所以它实际上由3个独立的LED组成,红色、绿色和蓝色包装在一个盒子里。这就是为什么它有4个引脚,3种颜色中的每一种都有一种引线,而RGB LED类型则有一种共用阴极或阳极。在本篇文章中,我使用的是共阴极。

RGB-LED.png


所需的组件

本篇文章所需的组件如下所示:

●    RGB LED灯

●    3个220欧电阻

●    Arduino面包板

●    面包板和跳线


电路原理图

我们将阴极接地,3个阳极通过220欧姆电阻连接到Arduino开发板上的3个数字引脚,这些引脚可提供PWM信号。我们将使用PWM模拟模拟输出,这将为LED提供不同的电压电平,以便我们可以获得所需的颜色。

Circuit-Schematics_bb.png


我们将使用PWM模拟输出,这将为LED提供不同的电压电平,以便我们可以获得所需的颜色。

PWM-and-Color-Table.png


源代码

现在让我们看看Arduino草图。我将使用引脚7、6和5,分别将它们命名为redPin、greenPin和bluePin。在setup部分,我们需要将它们定义为输出。在草图的底部,我们有一个名为setColor()的自定义函数,它接受3个不同的参数redValue、greenValue和blueValue。这些参数表示LED的亮度或使用analogWrite()函数创建的PWM信号的占空比。这些值可以在0到255之间变化,表示PWM信号的100%占空比或最大LED亮度。

  1. int redPin= 7;
  2. int greenPin = 6;
  3. int bluePin = 5;
  4. void setup() {
  5.   pinMode(redPin, OUTPUT);
  6.   pinMode(greenPin, OUTPUT);
  7.   pinMode(bluePin, OUTPUT);
  8. }
  9. void loop() {
  10.   setColor(255, 0, 0); // Red Color
  11.   delay(1000);
  12.   setColor(0, 255, 0); // Green Color
  13.   delay(1000);
  14.   setColor(0, 0, 255); // Blue Color
  15.   delay(1000);
  16.   setColor(255, 255, 255); // White Color
  17.   delay(1000);
  18.   setColor(170, 0, 255); // Purple Color
  19.   delay(1000);
  20. }
  21. void setColor(int redValue, int greenValue, int blueValue) {
  22.   analogWrite(redPin, redValue);
  23.   analogWrite(greenPin, greenValue);
  24.   analogWrite(bluePin, blueValue);
  25. }
复制代码

所以现在在loop函数中我们将制作程序,它将每秒改变LED的颜色。 为了在LED获得红光,我们将调用setColor()函数,并为redValue参数设置值255,另外两个参数设置0。 我们分别可以得到另外两种基本颜色,绿色和蓝色。 为了获得其他颜色,我们需要混合参数值。 因此,例如,如果将所有3个LED设置为最大亮度,我们将获得白光,如果我们将以下值设置为参数:170 redValue、0 greenValue和255 blueValue,我们将获得紫色光。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-25 16:06 , Processed in 0.038254 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表