电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

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

作者:佚名    文章来源:网友    点击数:    更新时间:2023/8/26

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大显身手的时候了。

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

 

硬件电路连接

Arduino引脚 RGB LED(共阴极)
D11 R
D10 B
D9 G
GND GND

所需器件

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

 

控制代码

控制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);
  }
}

Arduino控制RGB三色LED灯实验 

Tags:Arduino,三色LED灯,程序  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询