Arduino控制RGB三色LED灯实验、程序代码、连线图、仿真

RGB三色灯简介

RGB色彩模式包含红绿蓝三种,通过控制红(R)、绿(B)、蓝(G)三种颜色的变化使其相互叠加产生花式颜色。而其颜色值的输出是通过PWM来控制的。RGB三基色按照不同的比例相加合成混色称为相加混色,除相加混色法之外还有相减混色法。

PWM控制

PWM,即脉冲宽度调制,是英文“Pulse Width ModulaTIon”的缩写。根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

PWM功能简介

PWM主要通过analogWrite () 进行控制,针对Arudino UNO板子中带有"~"的3、5、6、9、10、11数字端口写入一个模拟值,通知高电平与低电平持续时间的比值控制LED的亮度变化或者电机的转速。

例如:欲使得内置的Arudino UNO 中的led亮度变为原来的一般,编写analogWrite (13,127)就可以了。一个电路让一个端口循环输出2.5V、3V、5V电压,仅仅用硬件电路就困难了,这时候就是PWM大显身手的时候了。

占空比:高电平与低电平持续时间之比。

Alt

硬件电路连接

Arduino引脚RGB LED(共阴极)
D11R
D10B
D9G
GNDGND

所需器件

名称数量
电阻3
RGB LED灯1
Arduino UNO开发板1

Alt

控制代码

控制RGB代码如下

/*运行环境:Arduino 1.8.19*/

#define GREEN 9
#define BLUE 10
#define RED 11

int redValue;
int greenValue;
int blueValue;

void setup(){
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  digitalWrite(RED, HIGH);
  digitalWrite(GREEN, LOW);
  digitalWrite(BLUE, LOW);
}

void loop(){   
  #define delayTime 1
  redValue = 255; 
  greenValue = 0;
  blueValue = 0;
  
  for(int i = 0; i < 255; i += 1){
    redValue -= 1;
    greenValue += 1;
    analogWrite(RED, redValue);
    analogWrite(GREEN, greenValue);
    delay(delayTime);
  }
  
  redValue = 0;
  greenValue = 255;
  blueValue = 0;   
  for(int i = 0; i < 255; i += 1){
    greenValue -= 1;
    blueValue += 1;
    analogWrite(GREEN, greenValue);
    analogWrite(BLUE, blueValue);
    delay(delayTime);
  }
  
  redValue = 0;
  greenValue = 0;
  blueValue = 255;
  
  for(int i = 0; i < 255; i += 1){
    blueValue -= 1;
    redValue += 1;
    analogWrite(BLUE, blueValue);
    analogWrite(RED, redValue);
    delay(delayTime);
  }
}

测试结果

Alt

  • 14
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群智能算法小狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值