Arduino PWM控制LED亮度

2025-11-05 07:04:58

1、Arduino UNO 控制器的数字引脚中,有六个可以输出PWM信号,如图所示,板子上带有“~”符号的既是可以输出PWM信号的引脚。

Arduino PWM控制LED亮度

2、准备实验需要使用到的硬件,如图所示

Arduino PWM控制LED亮度

3、如图所示连接实验使用的硬件

Arduino PWM控制LED亮度

4、将下列程序复制到 Arduino IDE 中,如下图所示:

#define LED  10               //定义LED灯引脚

int i = 0;                   //存储最新数值变数,我们将使用它来从上到下计数

void setup(){

  pinMode(LED,OUTPUT);       //设定LED引脚为输出

}

void loop(){

  for(i = 0;i < 255;i++){    //变数从0到254之间变化(渐强)

    analogWrite(LED, i);     //设定LED亮度

    delay(10);               //延时10ms,因为analogWrite执行瞬间完成,

                             //速度太快不易察觉

                             

  }

  for(i =255;i > 0; i--){    //变数从255到1之间变化(渐弱)

     analogWrite(LED, i);    //设定LED亮度

     delay(10);              //延时10ms

  }

}

Arduino PWM控制LED亮度

5、使用USB数据线将Arduino UNO控制器连接到电脑,如图所示,UNO控制器的电源指示灯“ON”亮起。

Arduino PWM控制LED亮度

6、选择正确的板型(Arduino UNO),端口,上传程序到控制器中,若上传成功,Arduino IDE如下图所示:

Arduino PWM控制LED亮度

7、代码回顾: 本例程中我们将学到下列新的代码,如图所示位置:

analogWrite(LED, i);  

从一个引脚输出模拟值(PWM)。可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。PWM信号的频率大约是490赫兹。

语法:analogWrite(pin,value)

其中含有两个参数:pin:用于输入数值的引脚。 value:占空比:0(完全关闭)到255(完全打开)之间。

Arduino PWM控制LED亮度

8、PWM信号的三个基本参数如下图所示:

1、脉冲宽度变化幅度(最小值/最大值)2、脉冲周期(1秒内脉冲频率个数的倒数)3、电压高度(例如:0V-5V)

Arduino PWM控制LED亮度

9、PWM 信号介绍:

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

简单说来就是我们前面的实验中,当我们将LED闪烁的时间变小,例如delay(10) 10ms的延时,这时你看不到LED闪烁了,它常亮,但是亮度降低了,如果继续改变时间间隔,它的亮度会更低,这项技术称为PWM。

PWM接口输出的电压值是通过输出的高电平和低电平时间来进行计算的。输出电压=(高电平时间/低电平时间) * 最大电压值,其中“高电平/低电平”得到的就是 PWM 信号的占空比

PWM信号原理如图所示:

Arduino PWM控制LED亮度

10、实验效果:如图所示,连接至Arduino UNO 数字引脚10 的LED发光二极管,逐渐变亮,再逐渐变暗,如此循环,产生呼吸灯的效果。

Arduino PWM控制LED亮度

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢