(四)arduino入门:通过PWM控制LED
介绍
在本课中,让我们尝试一些简单的方法 - 通过编程逐渐改变LED的亮度。由于脉冲灯看起来像呼吸,我们给它一个神奇的名字 - 呼吸的LED。我们将通过脉宽调制(PWM)来实现这一效果。
组件
- 1 * SunFounder Uno板
- 1 *面包板
- 杜邦线
- 1 * LED
- 1 *电阻(220Ω)
- 1 * USB数据线
原理
PWM
脉冲宽度调制或PWM是用数字方式获得模拟结果的技术。数字控制用于创建方波,在开和关之间切换信号。该开关模式可以通过改变信号花费的时间部分与信号消耗的时间来模拟完全开(5伏)和关(0伏)之间的电压。“准时”的持续时间称为脉冲宽度。要获得变化的模拟值,您更改或调制该脉冲宽度。如果您以例如LED重复这种开 - 关模式,结果就好像信号是在0和5V之间的稳定电压,控制LED的亮度。(参见Arduino官方网站上的PWM说明)。
从上面的示波图可以看出,直流电压输出的幅度为5V。然而,通过PWM,实际电压输出仅为3.75V,因为高电平仅占用一段时间内总电压的75%。
以下是对PWM的三个基本参数的介绍:
占空比描述了“定时”时间到正常间隔或时间段的比例。
周期描述了一秒钟内脉冲的倒数。
此处的电压幅度为0V-5V。
实验步骤
步骤1:建立电路
原理图
步骤2:程序
步骤3:编译代码
步骤4:将草图上传到SunFounder Uno板
在这里,您应该看到LED变得更亮更亮,然后慢慢变暗,就像呼吸一样。
代码
//*******老鼠的眼睛********//通过PWM控制LED// LED逐渐点亮,然后逐渐熄灭// 网址:https://qutaojiao.com/article-43.html//2017.10.13/ ************************************************************* * /
const int ledPin = 9; // LED连接到 pin 9
void setup()
{
pinMode(ledPin,OUTPUT); //声明 pin 9为输出
}
void loop()
{
for(int a = 0; a
{
analogWrite(ledPin,a); //设置引脚9的亮度:
delay(8); //等待8 ms
}
for(int a = 255; a> = 0; a--)//从255下降到0
{
analogWrite(ledPin,a); //设置引脚9的亮度:
delay(8); //等待8 ms
}
delay(800); //等待800 ms
}
玩得趣科技教育携手趣讨教,感谢趣讨教网的分享,感谢趣讨教的技术支持!
趣讨教-一群大牛分享技术交流的平台-https://qutaojiao.com/
领取专属 10元无门槛券
私享最新 技术干货