文章目录
前言
上一篇文章我们介绍了Blink的使用和简易交通信号灯的制作,这篇文章我们来说说如何使四脚RGB实现三种颜色渐亮渐暗。
一、简单了解RGB和PWM
1.共阴极型RGB LED
RGB LED分为共阳极型和共阴极型,今天我们要用到的是共阴极型。
下图是一张共阴极型RGB LED的参考图片。图中最长的那个引脚(2)为共阴极,其余三个是阳极(1-Red;3-Green;4-Blue)。连接时引脚2接GND,其余三个接数字引脚。
当向这三个引脚输出不同大小的电压时,就能产生不同的颜色。
2.PWM及其使用
(本人对其了解不多,如有错误,欢迎指正)
2.1.PWM
因为要实现的是LED渐亮渐暗,简单的“HIGH”和“LOW”在此处就不适用了,所以我们要引入一个新东西——PWM。PWM的中文名是脉冲宽度调制,它是一种模拟控制方式。我对它的理解是在一个脉冲周期内把0-1(0V和5V)之间分了255块,输入10时就输出其中10块,输入150时就输出其中150块,以此类推。
2.2.取值
arduino UNO模拟电压是5V,对应产生模拟信号的脉冲宽度的取值范围是0到255,所以想要输出特定信号值时可以参考这个公式:
产生模拟信号的脉冲宽度的取值 = 51 x 模拟电压
如:需要输出3V的模拟电压时用153(51x3)。
2.3.代码
使用方式如下:
void loop() // 循环函数永远重复运行
{
analogWrite(Pin,PWM); // Pin为对应引脚,PWM范围为0-255
}
2.4.引脚的选用
关于引脚的选用,使用PWM时必须选用旁边带有“~”的引脚,也就是3、5、6、9、10、11号
另:如果有想要进一步理解PWM的话可以点击这里:
二、操作
1.连接电路图
1.1.所需硬件
- arduino UNO × 1
- 共阴极型RGB LED × 1
- 220Ω电阻 × 3
- 杜邦线 若干
- 数据线 × 1
- 面包板 × 1
1.2.电路图及原理图
2.代码
代码如下(示例):
int i,j;
void setup() // 当您按下重置或给电路板通电时,设置功能运行一次
{
pinMode(9, OUTPUT); // 将数字引脚9初始化为输出
pinMode(10, OUTPUT); // 将数字引脚10初始化为输出
pinMode(11, OUTPUT); // 将数字引脚11初始化为输出
}
void loop() // 循环函数永远重复运行
{
for(i=9;i<=11;i++) // 对9-11从小到大循环遍历
{
for(j=0;j<=255;j++) // 使i号引脚渐亮
{
analogWrite(i,j);
delay(5);
}
for(j=255;j>=0;j--) // 使i号引脚渐暗
{
analogWrite(i,j);
delay(5);
}
}
}
总结
以上就是今天要讲的内容,本文简单介绍了如何通过代码使RGB LED完成三种颜色的渐亮渐暗。除此之外,它还有许多运用,大家可以自行探索。
另:本人是初学者。如有不足,望各路大神指正!