最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

arduino从零开始(4)PWM与呼吸灯

Arduino 少儿编程 2488浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

你将学到什么?

你将了解脉冲宽度调试(PWM)的原理

你将使用PWM制作一个呼吸灯的效果

脉冲宽度调试

PWM,也就是脉冲宽度调制,用于将一段信号编码为脉冲信号(方波信号)。是在数字电路中 达到 模拟输出效果的一种手段。即:使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。我们要在数字电路中输出模拟信号,就可以使用PWM技术实现。

在arduino中,我们常用PWM来驱动LED的暗亮程度,电机的转速等。

我们知道,在数字电路中,电压信号是离散的: 不是 0(0V)  就是 1(5V或者3.3V), 那么如何输出介于 0v 和  5V之间的某个电压值呢?

简单来说就是在一个周期内让电压在0V与5V之间快速切换,根据5V的占比便可以模拟出0v到5v之间的不同电压。

arduino从零开始(4)PWM与呼吸灯

脉冲宽度调制不同的占空比

arduino从零开始(4)PWM与呼吸灯

动态显示占空比

arduino使用analogWrite()函数来实现PWM功能,参数值范围:0~255,0表示的意思是5V占比为0%(表现为针脚输出0V),128的意思是5V占比为50%(变现为针脚输出2.5V),255表示的意思是5V占比为100%(表现为针脚输出5V)。

arduino官网对于PWM的解释:https://www.arduino.cc/en/Tutorial/PWM

arduino从零开始(4)PWM与呼吸灯

arduino uno

arduino uno支持PWM功能的数字针脚为:3、 5、 6、 9、 10、 11(有~标志)。

呼吸灯项目

arduino从零开始(4)PWM与呼吸灯

电路图

arduino从零开始(4)PWM与呼吸灯

程序代码

文字代码如下:

int led = 6;

void setup() {

  // put your setup code here, to run once:

  pinMode(led,OUTPUT);

}

void loop() {

  // put your main code here, to run repeatedly:

  for(int i=0;i<=255;i++)

  {

    analogWrite(led,i);

    delay(5);

    }

  for(int i=255;i>=0;i–)

  {

    analogWrite(led,i);

    delay(5);

    }

}

 

您必须 登录 才能发表评论!