如何使用Arduino控制RGB LED

描述

在本指南中,您将学习如何使用Arduino控制RGBLED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本Arduino RGB LED威廉希尔官方网站 ,并以一些基本颜色为例循环。

使用提供的原理图和试验板图像,以及下面的示例代码,您应该拥有轻松设置和控制RGBLED颜色输出所需的一切。

所需零件

ArduinoUno的

面包板(和一些面包板电线)

3x电阻(220Ω)

RGB发光二极管

RGBLED有两种类型:共阳极和共阴极。我们将在下面提供两种类型的示例原理图和代码。

如何将RGBLED连接到Arduino

这是威廉希尔官方网站 原理图。该图使用三个电阻器和一个共阳极RGBLED(您将在下面找到共阴极的原理图)。

Arduino

如果您使用的是共阳极LED,则需要将共阳极引脚连接到5V,如下所示:

Arduino

在试验板上连接威廉希尔官方网站 的步骤

如果您使用的是共阴极RGBLED,请将阴极连接到Arduino上的GND引脚。如果您的RGBLED是公共阳极,请将阳极连接到Arduino上的5V引脚。

将LED的红色、绿色和蓝色支腿分别连接到Arduino的引脚11、10和9,每个引脚都通过一个220欧姆电阻器。

确保您的Arduino通过USB电缆连接到计算机。

使用下面的面包板图像之一作为设置连接的视觉指南:

Arduino

连接到Arduino的共阴极RGBLED

Arduino

连接到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创建彩色显示器!
审核编辑:陈陈

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分