大 创 实 验 室

更多内容请联(lián)系我(wǒ)们

第(dì)二章 科创板(bǎn)-灯光呼吸

发表时(shí)间(jiān):2020-05-27 16:06作(zuò)者:大创实验(yàn)室来源:大创实验室(shì)网(wǎng)址:http://www.heb.shanxi.linyi.jiaxing.zz.pingliang.ww38.viennacitytours.com


第2课 科创(chuàng)板-灯光呼吸




1、了解PWM原理;

2、利(lì)用PWM控制灯亮度;

3、通过编(biān)程制(zhì)作呼吸(xī)灯。

1
PWM原理——Science

PWM又称脉冲宽度调(diào)制,就是改变(biàn)脉冲宽度来实(shí)现对对象的(de)控(kòng)制,达到预(yù)期的效果。

我们先(xiān)来(lái)看三组不同的脉冲信号,如下(xià)图所示(shì):


这(zhè)是一个周期(qī)是10ms的波形图,但是在每个周期内,高低电平的脉(mò)冲宽度各不(bú)相同,这就(jiù)是(shì)PWM的(de)本质。在这里大家要记住一个概念,叫做“占空比”,占空比是指(zhǐ)在一个周期内,高电平的时间(jiān)占整个周期的比例。比(bǐ)如第一(yī)部分(fèn)波形的占空比是40%,第(dì)二部分波形占空比是60%,第三(sān)部分(fèn)波形占空比是(shì)80%,这就是(shì)PWM原理。

那为何它能对模拟电路进(jìn)行控制呢?在数字电(diàn)路(lù)里,只(zhī)有0和1两种状态(tài),比如点亮(liàng)LED灯的(de)程序,当我们(men)在控制程(chéng)序里面写“1”时,灯(dēng)就会(huì)点亮,写“0”时,灯就会灭掉。我们让(ràng)“1”和(hé)“0”间隔运行,灯就会闪烁(shuò)。如果我们把这个间隔不断的(de)减小,减小到我(wǒ)们的肉眼分辨不(bú)出(chū)来,这时候灯表(biǎo)现出来的现象就是(shì)保持亮的状态,但亮(liàng)度又(yòu)没有“1”时的亮度(dù)高。明白了这(zhè)个原理,那么我们就(jiù)可以通过调节灯(dēng)亮的时(shí)间与整个周(zhōu)期的比例(lì)来(lái)调(diào)节灯的亮度了(le)。

二(èr)、试验与科学——Technology and Math

1、利用PWM控制灯的亮度

认识“数字(zì)”代码(mǎ)块(kuài)

“数字(zì)”代码块位于“数学”模块中,它表示(shì)的(de)是一个特定(dìng)的数字。


认识“赋值”代码块(kuài)

“赋值”代(dài)码块位(wèi)于“变(biàn)量”模块中,它(tā)的作用是定义(yì)一个变量,并(bìng)给这个变(biàn)量(liàng)一个特定值。


设置一(yī)个(gè)变量“i”,i的(de)取值空间是0到10,周(zhōu)期为10。


i/10就是它的占空比,将i依次从0到10写入程(chéng)序并(bìng)下载到科创板,体验下不同(tóng)占空比时LED灯(dēng)的亮(liàng)度变化(huà)。


大家已经做完试验了,想必(bì)大家会有这(zhè)样的疑问,当i=0时(shí),管脚27为高电平,0秒后为低电平,10毫(háo)秒后再变(biàn)为高电(diàn)平(píng),如(rú)此(cǐ)循(xún)环,理(lǐ)论上等应该是灭的,为(wéi)什么还稍微有点暗红色(sè)呢?

这(zhè)是因为处理器在执行程(chéng)序时本来(lái)就需要时间的,在执行这段(duàn)代码时 首先执行了管脚(jiǎo)27高电平(红(hóng)灯(dēng)亮),延时0毫秒,再执行管脚27低电平(红灯(dēng)灭),这个过程需要执行3个(gè)程序块,另外在硬件电路里(lǐ)往往有震荡(dàng)出现,电流不(bú)是马上消失的。

2、初尝(cháng)呼吸灯

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

“对“range”中的每个(gè)项目”代码块位于“控制”模块(kuài)分类中,表(biǎo)示从起始数到终止数中取出固定步长的变量,并执行接(jiē)口中(zhōng)的程序。


呼(hū)吸灯是指灯光在控制(zhì)下完成由暗到亮,再由亮到暗的逐(zhú)渐变化(huà),感觉好(hǎo)像是人在呼(hū)吸。

让灯光从暗(àn)到亮的逐渐变化过程,可以转化成高电平(píng)持续(xù)时间在(zài)固定(dìng)周(zhōu)期中的比例逐渐升高的(de)过程,即占空比从0~1的过(guò)程。


上(shàng)图所示程序(xù)中, “range”模块执行(háng)完要(yào)100次,执行一(yī)次(cì)周(zhōu)期(qī)10000微秒,即10毫(háo)秒(miǎo)。执行完整个“range”模块(kuài)需要100*10毫(háo)秒,即(jí)1秒(miǎo)。此(cǐ)为占空比从0/10000~10000/10000的LED灯。

我们(men)已(yǐ)经实现了LED灯(dēng)由暗(àn)到亮的逐渐变化过(guò)程,同理可以写出LED灯由亮(liàng)到按(àn)的逐渐变(biàn)化过程。将两(liǎng)个程序块(kuài)放到一(yī)起,就可以(yǐ)组(zǔ)成一个完整(zhěng)的呼吸灯了。


3、优化呼吸灯

认识(shí)“初始化PWM模拟输出”代码(mǎ)块以及“PWM模(mó)拟输出赋值”代码块

两个代(dài)码(mǎ)块(kuài)均位于“输入\输出”模块中。其中“初始(shǐ)化PWM模(mó)拟输出”代码块作用为初始化指(zhǐ)定管脚的(de)PWM模拟输(shū)出值; “PWM模(mó)拟输出赋值”代码(mǎ)块作用为将指定PWM管脚赋值(zhí)为特定值(0或(huò)1)。


此前PWM的原理以及应用(yòng),我们(men)已经(jīng)学会了。但是我们还有更简单的程序(xù)应用,那(nà)就是用我们科创板自带的(de)PWM模块。

科创板自带(dài)PWM的赋值(zhí)范围为0~1023,即占空比从0到1。

板载(zǎi)PWM呼吸灯程序:


执(zhí)行以上程序(xù),就可以点亮板载四(sì)个(gè)绿色(sè)呼吸灯了。



三、延伸(shēn)与扩(kuò)展——Arts

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


请以小组(zǔ)的形式进行(háng)合作,尝试让多彩LED灯(dēng)的(de)三(sān)色灯光轮流(liú)完(wán)成(chéng)一个(gè)呼吸灯流(liú)程。

设计要求:

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

保证控制(zhì)方式安全可靠。






山东(dōng)省(shěng)济南(nán)市历下区舜(shùn)华(huá)路(lù)750号大学科技园北区3号(hào)楼
服务热线:13256445996                                  www.heb.shanxi.linyi.jiaxing.zz.pingliang.ww38.viennacitytours.com

欧洲杯下注(中国)官方网站

欧洲杯下注(中国)官方网站