大 创 实 验 室
第(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又称脉冲宽度调(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)代码时 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ì)方式安全可靠。 |