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