本帖最后由 hanreng 于 2020-6-27 16:45 编辑
第10课 MixlyLED呼吸灯:PWM模拟输出
目标
1、PWM及模拟输出
2、for循环的运用
3、步长模块的运用 4、实现浪漫的呼吸灯制作
实验材料
Arduino UNO开发板, 配套USB数据线 配套杜邦线若干 Mixly软件 配套LED灯
内容
接线方式
Arduino UNO开发板 <------> LED发光模块 3V3/5V <------> VCC GND <------> GND 3 <------> IN
Mixly模块
模拟输出模块:
模拟信号的电压在0~5V之间变化,模拟输出的数值必须介于0~255之间,为了能较为精准的获取返回的电压信号,Arduino将其切分为2^10共1024级,每级对应0~1023范围内的一个整数数值。
步长模块:
步长模块对应高级程序语言中的“For语句”,其作用是为变量(如i)从起始数(如1)到结尾数(如10)按指定的步长(间隔,如1)赋值,并并执行指定的模块。
基础案例
控制灯的亮度从0慢慢变化到255,再由255慢慢变化到0来实现呼吸灯的效果。让模拟值每次增加1,每次延时10毫秒。
Mixly图形化编程程序
“呼吸灯”流程图
PWM(脉冲宽度调制)
图中,黑色折线叫做矩形波,是电压和时间的对应关系,因电压只有高电平和低电平两种状态,导致折线的形状类似矩形而得名;蓝色竖线代表方波的周期(重复出现的事情执行一次所经历的时间)。 图中的analogWrite(value)对应Mixly软件中的“模拟输出管脚()赋值为( )”。每个analogWrite(value)中写入的value都能对应一个百分比,这个百分比也称为占空比(DutyCycle),指的是一个周期内高电平持续时间所占的百分比。 从左往右,第一个矩形波,占空比为0%,对应的value为0;第二个矩形波,占空比为25%,对应的value为64,以此推类。LED灯亮度最低,也就是灭的状态。高电平持续时间越长,也就越亮。所以,最后一个占空比为100%的对应value是255,LED灯最亮。
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输出。
|