大 創(chuàng) 實 驗 室
更多內(nèi)容請聯(lián)系我們
第二章 科創(chuàng)板-燈光呼吸第2課 科創(chuàng)板-燈光呼吸 1、了解PWM原理; 2、利用PWM控制燈亮度; 3、通過編程制作呼吸燈。 1 PWM又稱脈沖寬度調(diào)制,就是改變脈沖寬度來實現(xiàn)對對象的控制,達到預(yù)期的效果。 我們先來看三組不同的脈沖信號,如下圖所示: 這是一個周期是10ms的波形圖,但是在每個周期內(nèi),高低電平的脈沖寬度各不相同,這就是PWM的本質(zhì)。在這里大家要記住一個概念,叫做“占空比”,占空比是指在一個周期內(nèi),高電平的時間占整個周期的比例。比如第一部分波形的占空比是40%,第二部分波形占空比是60%,第三部分波形占空比是80%,這就是PWM原理。 那為何它能對模擬電路進行控制呢?在數(shù)字電路里,只有0和1兩種狀態(tài),比如點亮LED燈的程序,當(dāng)我們在控制程序里面寫“1”時,燈就會點亮,寫“0”時,燈就會滅掉。我們讓“1”和“0”間隔運行,燈就會閃爍。如果我們把這個間隔不斷的減小,減小到我們的肉眼分辨不出來,這時候燈表現(xiàn)出來的現(xiàn)象就是保持亮的狀態(tài),但亮度又沒有“1”時的亮度高。明白了這個原理,那么我們就可以通過調(diào)節(jié)燈亮的時間與整個周期的比例來調(diào)節(jié)燈的亮度了。 二、試驗與科學(xué)——Technology and Math 1、利用PWM控制燈的亮度 認(rèn)識“數(shù)字”代碼塊 “數(shù)字”代碼塊位于“數(shù)學(xué)”模塊中,它表示的是一個特定的數(shù)字。 認(rèn)識“賦值”代碼塊 “賦值”代碼塊位于“變量”模塊中,它的作用是定義一個變量,并給這個變量一個特定值。 設(shè)置一個變量“i”,i的取值空間是0到10,周期為10。 i/10就是它的占空比,將i依次從0到10寫入程序并下載到科創(chuàng)板,體驗下不同占空比時LED燈的亮度變化。 大家已經(jīng)做完試驗了,想必大家會有這樣的疑問,當(dāng)i=0時,管腳27為高電平,0秒后為低電平,10毫秒后再變?yōu)楦唠娖剑绱搜h(huán),理論上等應(yīng)該是滅的,為什么還稍微有點暗紅色呢? 這是因為處理器在執(zhí)行程序時本來就需要時間的,在執(zhí)行這段代碼時 2、初嘗呼吸燈 認(rèn)識“對“range”中的每個項目”代碼塊(For循環(huán)) “對“range”中的每個項目”代碼塊位于“控制”模塊分類中,表示從起始數(shù)到終止數(shù)中取出固定步長的變量,并執(zhí)行接口中的程序。 呼吸燈是指燈光在控制下完成由暗到亮,再由亮到暗的逐漸變化,感覺好像是人在呼吸。 讓燈光從暗到亮的逐漸變化過程,可以轉(zhuǎn)化成高電平持續(xù)時間在固定周期中的比例逐漸升高的過程,即占空比從0~1的過程。 上圖所示程序中, “range”模塊執(zhí)行完要100次,執(zhí)行一次周期10000微秒,即10毫秒。執(zhí)行完整個“range”模塊需要100*10毫秒,即1秒。此為占空比從0/10000~10000/10000的LED燈。 我們已經(jīng)實現(xiàn)了LED燈由暗到亮的逐漸變化過程,同理可以寫出LED燈由亮到按的逐漸變化過程。將兩個程序塊放到一起,就可以組成一個完整的呼吸燈了。 3、優(yōu)化呼吸燈 認(rèn)識“初始化PWM模擬輸出”代碼塊以及“PWM模擬輸出賦值”代碼塊 兩個代碼塊均位于“輸入\輸出”模塊中。其中“初始化PWM模擬輸出”代碼塊作用為初始化指定管腳的PWM模擬輸出值; “PWM模擬輸出賦值”代碼塊作用為將指定PWM管腳賦值為特定值(0或1)。 此前PWM的原理以及應(yīng)用,我們已經(jīng)學(xué)會了。但是我們還有更簡單的程序應(yīng)用,那就是用我們科創(chuàng)板自帶的PWM模塊。 科創(chuàng)板自帶PWM的賦值范圍為0~1023,即占空比從0到1。 板載PWM呼吸燈程序: 執(zhí)行以上程序,就可以點亮板載四個綠色呼吸燈了。 三、延伸與擴展——Arts 想一想,能不能設(shè)計一款流水呼吸燈呢,怎樣去實現(xiàn)? 請以小組的形式進行合作,嘗試讓多彩LED燈的三色燈光輪流完成一個呼吸燈流程。 設(shè)計要求: (能夠讓多彩LED燈交依次完成一個呼吸燈流程; (保證控制方式安全可靠。 |