【Arduino学习】03.RGB呼吸灯

本课程中,将使用 PWM 来控制 RGB LED灯并使其显示不同的颜色。变色灯是由红(R)、绿(G)、蓝(B)三基色 LED 组成的。双色 LED 是我们十分熟悉的。一般由红光 LED 及绿光 LED 组成。它可以单独发出红光或绿光。若红光及绿光同时亮点时,红绿两种光混合成橙黄色。RGB 分为共阴和共阳两种,长引脚是公共端,其他引脚如下:

硬件连接:

Keywish Arduino UNO R3 主板
面包板
USB 数据线
1个共阳 RGB LED
3个电阻 (220Ω)
若干跳线

实验原理:
RGB 代表红色,绿色和蓝色通道,是行业颜色标准。RGB 通过改变三个通道并叠加它们来显示各种新颜色,根据统计,它可以创建 16777216 种不同的颜色。如果你说显示的颜色与自然颜色不完全匹配,那么它几乎无法用肉眼区分 。红色,绿色和蓝色的三个颜色通道中的每一个具有 255 级亮度。 当三原色全部为 0时,“LED灯”最暗,即关闭。当三原色全部为 255 时,“LED灯”是最亮的。当叠加三原色发出的光时,颜色将混合。但是,亮度等于所有亮度的总和,混合得越多,LED就越亮。 该过程称为添加剂混合。在这个实验中,我们也将使用 PWM,如果你已经学过目前的课程,你肯定已经有了基本的了解。在这里,我们在 RGB LED的三个引脚之间输入 0到 255 之间的值,使其显示不同的颜色。

接线:

Arduino UnoRGB
IO口111 阴极R
IO口103 阴极G
IO口94 阴极B
5V2 共阳极

软件代码:

#define RGB_RED    11
#define RGB_GREEN  10
#define RGB_BLUE   9

void setup()
{
    pinMode(RGB_RED,OUTPUT);
    pinMode(RGB_GREEN,OUTPUT);
    pinMode(RGB_BLUE,OUTPUT);
}

void setColor(int red,int green,int blue)
{
    analogWrite(RGB_RED,red);
    analogWrite(RGB_GREEN,green);
    analogWrite(RGB_BLUE,blue);
}

void loop()
{
    int i;
    for(i=0;i<256;i++)
    {
        setColor(i,0,0);
        delay(4);
    }
    delay(500);           //turn the RGB LED red smoth

    for(i=0;i<256;i++)
    {
        setColor(0,i,0);
        delay(4);
    }
    delay(500);           //turn the RGB LED green smoth
  
    for(i=0;i<256;i++)
    {
        setColor(0,0,i);
        delay(4);
    }
    delay(100);           //turn the RGB LED blue smoth
}

实验连接图:
在这里插入图片描述

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值