这是我的课堂(3)——analogWrite()与脉冲宽度调制

2017-11-057723
AI 快速预览详细 收起
本文介绍了如何使用analogWrite()命令在Arduino上实现脉冲宽度调制(PWM)。通过逐步改变8位值(0-255)来控制LED的亮度,实现了从暗到亮再从亮到暗的效果。程序示例展示了如何使用for循环和delay函数来实现这一过程。
你可以使用脉冲宽度调制(PWM)技术来产生一个十分近似于模拟信号的输出。在每个Arduino上都有一些可以使用analogWrite()命令来产生PWM信号,这些引脚在板上都有一个~标记。不难想象,如果降低电阻上的压降,LED的光就会变暗,因其为他的电流变小了。
PWM输出一个8位的值,你可以写入的范围是0~(2的8次方)-1,也就是0~255
以下为程序:
[mw_shl_code=applescript,true]const int LED=9;
void setup() {
  pinMode(LED,OUTPUT);// put your setup code here, to run once:

}

void loop() {
  for(int i=0;i<256;i++)
  {
  analogWrite(LED,i);
  delay(10);
  }// put your main code here, to run repeatedly:
for(int i=255;i>=0;i--)
{
  analogWrite(LED,i);
  delay(10);
}
}
[/mw_shl_code]
i++是一个简化写法,相当于i+i,同样i--就是i-i。
第一个让他逐渐点亮第二个逐渐灭
你可以通过MATLAB软件来看到PWM的波动

{BO~L)D@S[5QCC)}VGG72ML.png (187.35 KB, 下载次数: 2984)

Arduino教程 · analogWrite()与脉冲宽度调制_image_3.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -