找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 hanreng 于 2020-6-27 16:45 编辑

第10课 MixlyLED呼吸灯:PWM模拟输出


目标

1、PWM及模拟输出
2、for循环的运用
3、步长模块的运用
4、实现浪漫的呼吸灯制作

实验材料

Arduino UNO开发板,
配套USB数据线
配套杜邦线若干
Mixly软件
配套LED灯

1.png

内容

接线方式

2.png

Arduino UNO开发板    <------>   LED发光模块
                     3V3/5V     <------>  VCC
                          GND     <------>   GND
                                3     <------>   IN

Mixly模块

模拟输出模块:

3.png

模拟信号的电压在0~5V之间变化,模拟输出的数值必须介于0~255之间,为了能较为精准的获取返回的电压信号,Arduino将其切分为2^10共1024级,每级对应0~1023范围内的一个整数数值。

4.png

步长模块:

5.png

步长模块对应高级程序语言中的“For语句”,其作用是为变量(如i)从起始数(如1)到结尾数(如10)按指定的步长(间隔,如1)赋值,并并执行指定的模块。

基础案例

控制灯的亮度从0慢慢变化到255,再由255慢慢变化到0来实现呼吸灯的效果。让模拟值每次增加1,每次延时10毫秒。

Mixly图形化编程程序

6.png

“呼吸灯”流程图

7.png

PWM(脉冲宽度调制)

8.png

图中,黑色折线叫做矩形波,是电压和时间的对应关系,因电压只有高电平和低电平两种状态,导致折线的形状类似矩形而得名;蓝色竖线代表方波的周期(重复出现的事情执行一次所经历的时间)。
图中的analogWrite(value)对应Mixly软件中的“模拟输出管脚()赋值为(  )”。每个analogWrite(value)中写入的value都能对应一个百分比,这个百分比也称为占空比(DutyCycle),指的是一个周期内高电平持续时间所占的百分比。
从左往右,第一个矩形波,占空比为0%,对应的value为0;第二个矩形波,占空比为25%,对应的value为64,以此推类。LED灯亮度最低,也就是灭的状态。高电平持续时间越长,也就越亮。所以,最后一个占空比为100%的对应value是255,LED灯最亮。

9.png

PWM多用于调节LED灯的亮度或点击的转动速度。有了PWM,电机带动的车轮速度就容易控制了,在后期小车项目中,我们就能体会到哦啊PWM带来的好处。

Arduino UNO PWM引脚

Arduino UNO板数字引脚支持PWM功能的口有6个,分别是3、5、6、9、10、11,当然这些口也可以当普通的数字输出使用,Arduino的PWM支持256级输出,也就是我们可以设置模拟值的范围在0-255,其中255就是表示100%的PWM输出。

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册