在本指南中,您将学习如何使用Arduino控制RGBLED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本Arduino RGB LED威廉希尔官方网站 ,并以一些基本颜色为例循环。
使用提供的原理图和试验板图像,以及下面的示例代码,您应该拥有轻松设置和控制RGBLED颜色输出所需的一切。
所需零件
ArduinoUno的
面包板(和一些面包板电线)
3x电阻(220Ω)
RGB发光二极管
RGBLED有两种类型:共阳极和共阴极。我们将在下面提供两种类型的示例原理图和代码。
如何将RGBLED连接到Arduino
这是威廉希尔官方网站 原理图。该图使用三个电阻器和一个共阳极RGBLED(您将在下面找到共阴极的原理图)。
如果您使用的是共阳极LED,则需要将共阳极引脚连接到5V,如下所示:
在试验板上连接威廉希尔官方网站 的步骤
如果您使用的是共阴极RGBLED,请将阴极连接到Arduino上的GND引脚。如果您的RGBLED是公共阳极,请将阳极连接到Arduino上的5V引脚。
将LED的红色、绿色和蓝色支腿分别连接到Arduino的引脚11、10和9,每个引脚都通过一个220欧姆电阻器。
确保您的Arduino通过USB电缆连接到计算机。
使用下面的面包板图像之一作为设置连接的视觉指南:
连接到Arduino的共阴极RGBLED
连接到Arduino的共阳极RGBLED
上传ArduinoRGBLED代码
使用ArduinoIDE将下面的代码上传到您的Arduino,您应该会看到LED循环使用不同的颜色,每种颜色停止一秒钟。
RGBLED(共阴极)的完整Arduino代码:
int redPin= 11;
int greenPin = 10;
int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0); // Red Color
delay(1000);
setColor(0, 255, 0); // Green Color
delay(1000);
setColor(0, 0, 255); // Blue Color
delay(1000);
setColor(255, 255, 0); // Yellow Color
delay(1000);
setColor(0, 255, 255); // Cyan Color
delay(1000);
setColor(255, 0, 255); // Magenta Color
delay(1000);
setColor(255, 165, 0); // Orange Color
delay(1000);
setColor(128, 0, 128); // Purple Color
delay(1000);
setColor(255, 255, 255); // White Color
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
如果您使用的是共阳极RGBLED,则与共阴极RGBLED相比,逻辑是相反的。在共阴极RGBLED中,您为特定引脚提供电源(HIGH)以打开颜色。对于共阳极RGBLED,将特定引脚接地(LOW)以打开颜色。
因此,对于普通阳极RGBLED,要设置颜色,您需要在应用之前从最大值(即255)中减去每个颜色值。此反转可确保特定颜色的值为255(全强度)会导致该颜色被关闭,而值为0(无强度)会导致该颜色完全打开。
RGBLED(共阳极)的完整Arduino代码:
int redPin= 11;
int greenPin = 10;
int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0); // Red Color
delay(1000);
setColor(0, 255, 0); // Green Color
delay(1000);
setColor(0, 0, 255); // Blue Color
delay(1000);
setColor(255, 255, 0); // Yellow Color
delay(1000);
setColor(0, 255, 255); // Cyan Color
delay(1000);
setColor(255, 0, 255); // Magenta Color
delay(1000);
setColor(255, 165, 0); // Orange Color
delay(1000);
setColor(128, 0, 128); // Purple Color
delay(1000);
setColor(255, 255, 255); // White Color
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, 255 - redValue);
analogWrite(greenPin, 255 - greenValue);
analogWrite(bluePin, 255 - blueValue);
}
代码的工作原理
此代码首先通过变量redPin、greenPin和bluePin设置RGBLED引脚。如果您使用的引脚与示例威廉希尔官方网站 中的引脚不同,请更改这些引脚。
然后,代码以红色、绿色、蓝色、黄色、青色、品红色、橙色、紫色和白色点亮RGBLED,并在每种颜色上暂停一秒钟。
结论
通过更改函数中的值来尝试不同的颜色组合!请记住,RGBLED结合了红光、绿光和蓝光来产生多种颜色。您现在可以使用Arduino和RGBLED创建彩色显示器!
审核编辑:陈陈
全部0条评论
快来发表一下你的评论吧 !