大 创 实 验 室
第二章 科创板-灯光呼吸发表时间(jiān):2020-05-27 16:06作者:大创实(shí)验室来源:大创(chuàng)实验室网址:http://www.heb.shanxi.linyi.jiaxing.zz.pingliang.ww38.viennacitytours.com 第2课 科创板-灯光呼吸 1、了解PWM原(yuán)理; 2、利用PWM控制灯亮度; 3、通过编程(chéng)制作呼吸灯(dēng)。 1 PWM又称脉冲宽度调制,就是改变脉冲宽度来(lái)实现对对象的(de)控制,达到预期的效(xiào)果。 我们先来(lái)看(kàn)三组不同的脉(mò)冲信号,如下图所示(shì): 这是一个周期是10ms的波形(xíng)图(tú),但是在(zài)每(měi)个周期内,高低电平的脉冲宽度各不相同,这就(jiù)是PWM的本质。在这(zhè)里大家要记住一(yī)个概念,叫做(zuò)“占空(kōng)比”,占空比是指在一个周期内,高电平的时间(jiān)占整个周期的比例。比如(rú)第一部分波形的(de)占空比是40%,第(dì)二部分波形占空比是60%,第三(sān)部分波形占(zhàn)空比(bǐ)是80%,这就是PWM原理。 那为何它能对模拟电路进行控(kòng)制呢?在数(shù)字电路(lù)里,只有(yǒu)0和1两种(zhǒng)状态,比如点亮(liàng)LED灯的程序,当我(wǒ)们在(zài)控制程序(xù)里面写“1”时,灯(dēng)就会点亮,写“0”时,灯就会(huì)灭掉。我(wǒ)们让“1”和“0”间隔运行,灯(dēng)就会闪烁。如(rú)果我们把这个间隔不(bú)断的(de)减小,减小到(dào)我们的肉眼分辨不出(chū)来,这时(shí)候灯表现出来的现象就是保持亮的状态,但亮度又没有“1”时(shí)的亮度高。明白(bái)了这个原理(lǐ),那(nà)么我们就可以通过(guò)调(diào)节(jiē)灯亮(liàng)的时间与整个周期的(de)比(bǐ)例(lì)来(lái)调节(jiē)灯的亮度了。 二、试验与科学——Technology and Math 1、利用(yòng)PWM控制灯的亮(liàng)度 认识“数字(zì)”代(dài)码块(kuài) “数字(zì)”代码块位于“数学”模块(kuài)中(zhōng),它(tā)表示(shì)的是一(yī)个(gè)特定的数(shù)字。 认识“赋值”代码(mǎ)块 “赋(fù)值”代(dài)码块位于“变量”模块中,它的作(zuò)用是定义一个变量,并给(gěi)这(zhè)个变量一个特定值(zhí)。 设置(zhì)一个变量“i”,i的取值(zhí)空间是(shì)0到10,周(zhōu)期为(wéi)10。 i/10就是它的占空比,将i依次从0到10写入程序并下(xià)载(zǎi)到科创板,体验下不同(tóng)占空比时LED灯的亮度变化。 大家已(yǐ)经做(zuò)完试验了,想必大(dà)家会有这样的疑(yí)问,当i=0时,管(guǎn)脚27为(wéi)高电平,0秒后(hòu)为低电平,10毫秒后再变为高电平,如此循环,理论上(shàng)等应(yīng)该是灭的,为什么还稍微(wēi)有点暗(àn)红色呢? 这是因(yīn)为处(chù)理器在执行程序时本来就需要时间的,在执行这段代码时 2、初(chū)尝呼(hū)吸灯 认(rèn)识“对“range”中(zhōng)的每个项目”代码块(For循环) “对“range”中的每个项(xiàng)目”代(dài)码块位于“控制”模块分类中,表示从起始数到终止(zhǐ)数中取出固定步长的变量,并执行(háng)接口中的程(chéng)序(xù)。 呼吸(xī)灯是指灯光在(zài)控制下完成由暗(àn)到亮,再(zài)由亮到暗的(de)逐渐变(biàn)化,感觉好像是人在呼吸。 让灯光(guāng)从暗到亮的逐渐变化过程,可以转化成高电(diàn)平持续时间在固定周期中的比例逐渐升高的过程,即占空(kōng)比(bǐ)从0~1的过程(chéng)。 上图所(suǒ)示程序中, “range”模块(kuài)执行完要(yào)100次(cì),执行一次(cì)周期(qī)10000微秒,即10毫秒。执行完整个“range”模块需要100*10毫秒,即1秒。此为占(zhàn)空(kōng)比从0/10000~10000/10000的LED灯(dēng)。 我(wǒ)们已经实现了LED灯由暗到亮的逐(zhú)渐(jiàn)变化过程,同理可以写出LED灯由亮到按(àn)的逐渐变化过程(chéng)。将两(liǎng)个程序(xù)块放(fàng)到一起,就可以组成一个完整的呼(hū)吸灯了。 3、优化呼吸(xī)灯 认识“初始化PWM模拟输(shū)出”代(dài)码(mǎ)块以及“PWM模拟(nǐ)输(shū)出赋值”代(dài)码块 两(liǎng)个代码(mǎ)块均(jun1)位于“输(shū)入(rù)\输出”模块中。其中“初始化PWM模拟输(shū)出”代码块作用为初(chū)始化指定管(guǎn)脚的PWM模拟输出值; “PWM模(mó)拟输出赋值”代(dài)码块(kuài)作用为将(jiāng)指定(dìng)PWM管脚赋值为特定值(0或1)。 此前PWM的原理以及应用,我们已经学会了。但是我们还有更简单的(de)程序应用,那就是用我们科创板(bǎn)自带的PWM模块。 科创板(bǎn)自带(dài)PWM的赋值范围为0~1023,即占(zhàn)空比从(cóng)0到(dào)1。 板载PWM呼吸灯(dēng)程序: 执(zhí)行以上程序,就(jiù)可以点(diǎn)亮(liàng)板载四个绿色呼吸灯了。 三、延伸与扩展——Arts 想一想,能不能设计一款流水(shuǐ)呼(hū)吸灯呢,怎样去实现? 请(qǐng)以(yǐ)小组的(de)形(xíng)式进行合作,尝试(shì)让多彩LED灯的三色灯光轮流完成一个呼吸灯流程(chéng)。 设(shè)计要求(qiú): (能够让多彩LED灯交依次完成一个(gè)呼吸(xī)灯流程(chéng); (保证控制方(fāng)式安全可靠。 |