(四)arduino入门:通过PWM控制LED

步骤一:原理介绍

在本课中,让我们尝试一些简单的方法 – 通过编程逐渐改变LED的亮度。由于脉冲灯看起来像呼吸,我们给它一个神奇的名字 – 呼吸的LED。我们将通过脉宽调制(PWM)来实现这一效果。

PWM

脉冲宽度调制或PWM是用数字方式获得模拟结果的技术。数字控制用于创建方波,在开和关之间切换信号。该开关模式可以通过改变信号花费的时间部分与信号消耗的时间来模拟完全开(5伏)和关(0伏)之间的电压。“准时”的持续时间称为脉冲宽度。要获得变化的模拟值,您更改或调制该脉冲宽度。如果您以例如LED重复这种开 – 关模式,结果就好像信号是在0和5V之间的稳定电压,控制LED的亮度。(参见Arduino官方网站上的PWM说明)。

image https://bbs.qutaojiao.com/assets/images/1-opSn6uBEnoZAKSYJ.png

从上面的示波图可以看出,直流电压输出的幅度为5V。然而,通过PWM,实际电压输出仅为3.75V,因为高电平仅占用一段时间内总电压的75%。

以下是对PWM的三个基本参数的介绍:

image https://bbs.qutaojiao.com/assets/images/1-8Ky2xsJ2ChA8jMF3.png

占空比描述了“定时”时间到正常间隔或时间段的比例。

周期描述了一秒钟内脉冲的倒数。

此处的电压幅度为0V-5V。

步骤二:准备材料

  • 1 * Arduino Uno开发板
  • 1 *面包板一块
  • 若干杜邦线
  • 1 * LED一个
  • 1 *电阻(220Ω)
  • 1 * USB数据线

步骤三:搭建电路

image https://bbs.qutaojiao.com/assets/images/1-Kn0pYqhMjjOQ2T9s.png

原理图

image https://bbs.qutaojiao.com/assets/images/1-xIHRPVYrkfCkB8vE.png

步骤四:编写程序

本节课代码:

//**************************************************************/
//通过PWM控制LED
//LED逐渐点亮,然后逐渐熄灭
//作者:趣讨教http://www.qutaojiao.com
/ ************************************************************* / 
const int ledPin = 9; // LED连接到 pin 9
void setup()
{ 
    pinMode(ledPin,OUTPUT); //声明 pin 9为输出
} 

void loop()
{ 
    for(int a = 0; a <= 255a ++)//从0255的循环{ 
    analogWrite(ledPina); //设置引脚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 

}

步骤五:编译程序

步骤六:上传程序

上传成功之后,您应该看到LED变得更亮更亮,然后慢慢变暗,就像呼吸一样。

image https://bbs.qutaojiao.com/assets/images/1-9uyEx6LW8OiOogjs.jpeg

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
4 条回复 A 作者 M 管理员
  1. 通过这个教程,我成功的做出了呼吸灯*٩(๑´∀`๑)ง*如果我能用开关控制灯的呼吸频率就更好了(๑´∀`๑)

    • 完全可以的,试着去做做

  2. for ( int a=0; >=0; a++) 这里为什么是用“ a ” , 不是用 ledPin 吗?

    • 这里是对PWM输出进行循环,PWM输出范围为0~255,所以用变量a来存储PWM输出数值,然后再通过analogWrite(ledPin,a);输出给ledPin这个引脚,这是PWM的知识

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论