大 创 实 验 室

更多内容请联系我们

第二章 科创板-灯光呼吸

发表时间:2020-05-27 16:06作者:大创实验室来源:大创实验室网址:http://www.3000lab.com


第2课 科创板-灯光呼吸




1、了解PWM原理;

2、利用PWM控制灯亮度;

3、通过编程制作呼吸灯。

1
PWM原理——Science

PWM又称脉冲宽度调制,就是改变脉冲宽度来实现对对象的控制,达到预期的效果。

我们先来看三组不同的脉冲信号,如下图所示:


这是一个周期是10ms的波形图,但是在每个周期内,高低电平的脉冲宽度各不相同,这就是PWM的本质。在这里大家要记住一个概念,叫做“占空比”,占空比是指在一个周期内,高电平的时间占整个周期的比例。比如第一部分波形的占空比是40%,第二部分波形占空比是60%,第三部分波形占空比是80%,这就是PWM原理。

那为何它能对模拟电路进行控制呢?在数字电路里,只有0和1两种状态,比如点亮LED灯的程序,当我们在控制程序里面写“1”时,灯就会点亮,写“0”时,灯就会灭掉。我们让“1”和“0”间隔运行,灯就会闪烁。如果我们把这个间隔不断的减小,减小到我们的肉眼分辨不出来,这时候灯表现出来的现象就是保持亮的状态,但亮度又没有“1”时的亮度高。明白了这个原理,那么我们就可以通过调节灯亮的时间与整个周期的比例来调节灯的亮度了。

二、试验与科学——Technology and Math

1、利用PWM控制灯的亮度

认识“数字”代码块

“数字”代码块位于“数学”模块中,它表示的是一个特定的数字。


认识“赋值”代码块

“赋值”代码块位于“变量”模块中,它的作用是定义一个变量,并给这个变量一个特定值。


设置一个变量“i”,i的取值空间是0到10,周期为10。


i/10就是它的占空比,将i依次从0到10写入程序并下载到科创板,体验下不同占空比时LED灯的亮度变化。


大家已经做完试验了,想必大家会有这样的疑问,当i=0时,管脚27为高电平,0秒后为低电平,10毫秒后再变为高电平,如此循环,理论上等应该是灭的,为什么还稍微有点暗红色呢?

这是因为处理器在执行程序时本来就需要时间的,在执行这段代码时 首先执行了管脚27高电平(红灯亮),延时0毫秒,再执行管脚27低电平(红灯灭),这个过程需要执行3个程序块,另外在硬件电路里往往有震荡出现,电流不是马上消失的。

2、初尝呼吸灯

认识“对“range”中的每个项目”代码块(For循环)

“对“range”中的每个项目”代码块位于“控制”模块分类中,表示从起始数到终止数中取出固定步长的变量,并执行接口中的程序。


呼吸灯是指灯光在控制下完成由暗到亮,再由亮到暗的逐渐变化,感觉好像是人在呼吸。

让灯光从暗到亮的逐渐变化过程,可以转化成高电平持续时间在固定周期中的比例逐渐升高的过程,即占空比从0~1的过程。


上图所示程序中, “range”模块执行完要100次,执行一次周期10000微秒,即10毫秒。执行完整个“range”模块需要100*10毫秒,即1秒。此为占空比从0/10000~10000/10000的LED灯。

我们已经实现了LED灯由暗到亮的逐渐变化过程,同理可以写出LED灯由亮到按的逐渐变化过程。将两个程序块放到一起,就可以组成一个完整的呼吸灯了。


3、优化呼吸灯

认识“初始化PWM模拟输出”代码块以及“PWM模拟输出赋值”代码块

两个代码块均位于“输入\输出”模块中。其中“初始化PWM模拟输出”代码块作用为初始化指定管脚的PWM模拟输出值; “PWM模拟输出赋值”代码块作用为将指定PWM管脚赋值为特定值(0或1)。


此前PWM的原理以及应用,我们已经学会了。但是我们还有更简单的程序应用,那就是用我们科创板自带的PWM模块。

科创板自带PWM的赋值范围为0~1023,即占空比从0到1。

板载PWM呼吸灯程序:


执行以上程序,就可以点亮板载四个绿色呼吸灯了。



三、延伸与扩展——Arts

想一想,能不能设计一款流水呼吸灯呢,怎样去实现?


请以小组的形式进行合作,尝试让多彩LED灯的三色灯光轮流完成一个呼吸灯流程。

设计要求:

能够让多彩LED灯交依次完成一个呼吸灯流程;

保证控制方式安全可靠。






山东省济南市历下区舜华路750号大学科技园北区3号楼
服务热线:13256445996                                  www.3000lab.com