RGB LED灯在arudino中应用

1.红色、绿色和蓝色(RGB)LED

1.RGB LED(红绿蓝发光二极管)是一种能够发出多种颜色光的LED灯,通过调节红、绿、蓝三种基本颜色的亮度组合,可以形成几乎所有可见的颜色。每个RGB LED通常由三个引脚控制,每个引脚连接到不同的LED芯片。

2.原理图图标示意

RGB LED有四个引脚,分别是红色、绿色、蓝色和共同阴极(或阳极,取决于LED的设计):

  • 红色引脚:控制红色光的亮度。
  • 绿色引脚:控制绿色光的亮度。
  • 蓝色引脚:控制蓝色光的亮度。
  • 共同阴极/阳极:连接到电源或接地,取决于LED的类型。

3.判断正负

共阴级RGB LED灯引脚

4.LED闪烁实例

物料:

3PCS 220欧姆电阻

1PCS RGB灯

1PCS UNO开发板

接线图:

代码示例:

C++
const int ledR = 11; // 红色 LED 引脚,必须是 PWM 引脚
const int ledG = 10; // 绿色 LED 引脚,必须是 PWM 引脚
const int ledB = 9;  // 蓝色 LED 引脚,必须是 PWM 引脚

void setup()
{
  pinMode(ledR, OUTPUT);
  pinMode(ledG, OUTPUT);
  pinMode(ledB, OUTPUT);
}

void loop()
{
  // 1. 红色呼吸灯
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledR, brightness);
    analogWrite(ledG, 0);
    analogWrite(ledB, 0);
    delay(10); // 调节亮度变化的速度
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledR, brightness);
    analogWrite(ledG, 0);
    analogWrite(ledB, 0);
    delay(10);
  }

  // 2. 绿色呼吸灯
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledR, 0);
    analogWrite(ledG, brightness);
    analogWrite(ledB, 0);
    delay(10);
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledR, 0);
    analogWrite(ledG, brightness);
    analogWrite(ledB, 0);
    delay(10);
  }

  // 3. 蓝色呼吸灯
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledR, 0);
    analogWrite(ledG, 0);
    analogWrite(ledB, brightness);
    delay(10);
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledR, 0);
    analogWrite(ledG, 0);
    analogWrite(ledB, brightness);
    delay(10);
  }

  // 4. RGB 流水灯(依次点亮)
  for(int i=0;i<=10;i++){
    digitalWrite(ledR,HIGH);
    delay(100);
    digitalWrite(ledR,LOW);
    delay(100);

    digitalWrite(ledG,HIGH);
    delay(100);
    digitalWrite(ledG,LOW);
    delay(100);

    digitalWrite(ledB,HIGH);
    delay(100);
    digitalWrite(ledB,LOW);
    delay(100);
  }

  // 5. 蓝色恒定亮灯,红色和绿色呼吸灯
  analogWrite(ledB, 120);
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledR, brightness);
    analogWrite(ledG, brightness);
    delay(10);
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledR, brightness);
    analogWrite(ledG, brightness);
    delay(10);

  }
    reset();

  // 6. 绿色恒定亮灯,红色蓝色呼吸灯
  analogWrite(ledG, 120);
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledR, brightness);
    analogWrite(ledB, brightness);
    delay(10);
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledR, brightness);
    analogWrite(ledB, brightness);
    delay(10);
     
  }
   reset();

   // 7. 红色恒定亮灯,绿色蓝色呼吸灯
  analogWrite(ledR, 120);
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledG, brightness);
    analogWrite(ledB, brightness);
    delay(10);
  }
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledG, brightness);
    analogWrite(ledB, brightness);
    delay(10);
  }
   reset();

}

void reset(){
  digitalWrite(ledR,LOW);
  digitalWrite(ledG,LOW);
  digitalWrite(ledB,LOW);
  delay(500);


}

说明:

此程序实现了

  1. 红色呼吸灯
  1. 绿色呼吸灯
  1. 蓝色呼吸灯
  1. RGB 流水灯(依次点亮)
  1. 蓝色恒定亮灯,红色和绿色呼吸灯
  1. 绿色恒定亮灯,红色蓝色呼吸灯
  1. 红色恒定亮灯,绿色蓝色呼吸灯

南瓜造物淘宝店铺链接 :首页-南瓜造物-淘宝网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值