大 創 實 驗 室

更多內容請聯系我們

第二章 科創板-燈光呼吸

發表時間:2020-05-27 16:06作者:大創實驗室來源:大創實驗室網址:http://www.156502.com


第2課 科創板-燈光呼吸




1、了解PWM原理;

2、利用PWM控制燈亮度;

3、通過編程制作呼吸燈。

1
PWM原理——Science

PWM又稱脈沖寬度調制,就是改變脈沖寬度來實現對對象的控制,達到預期的效果。

我們先來看三組不同的脈沖信號,如下圖所示:


這是一個周期是10ms的波形圖,但是在每個周期內,高低電平的脈沖寬度各不相同,這就是PWM的本質。在這里大家要記住一個概念,叫做“占空比”,占空比是指在一個周期內,高電平的時間占整個周期的比例。比如第一部分波形的占空比是40%,第二部分波形占空比是60%,第三部分波形占空比是80%,這就是PWM原理。

那為何它能對模擬電路進行控制呢?在數字電路里,只有0和1兩種狀態,比如點亮LED燈的程序,當我們在控制程序里面寫“1”時,燈就會點亮,寫“0”時,燈就會滅掉。我們讓“1”和“0”間隔運行,燈就會閃爍。如果我們把這個間隔不斷的減小,減小到我們的肉眼分辨不出來,這時候燈表現出來的現象就是保持亮的狀態,但亮度又沒有“1”時的亮度高。明白了這個原理,那么我們就可以通過調節燈亮的時間與整個周期的比例來調節燈的亮度了。

二、試驗與科學——Technology and Math

1、利用PWM控制燈的亮度

認識“數字”代碼塊

“數字”代碼塊位于“數學”模塊中,它表示的是一個特定的數字。


認識“賦值”代碼塊

“賦值”代碼塊位于“變量”模塊中,它的作用是定義一個變量,并給這個變量一個特定值。


設置一個變量“i”,i的取值空間是0到10,周期為10。


i/10就是它的占空比,將i依次從0到10寫入程序并下載到科創板,體驗下不同占空比時LED燈的亮度變化。


大家已經做完試驗了,想必大家會有這樣的疑問,當i=0時,管腳27為高電平,0秒后為低電平,10毫秒后再變為高電平,如此循環,理論上等應該是滅的,為什么還稍微有點暗紅色呢?

這是因為處理器在執行程序時本來就需要時間的,在執行這段代碼時 首先執行了管腳27高電平(紅燈亮),延時0毫秒,再執行管腳27低電平(紅燈滅),這個過程需要執行3個程序塊,另外在硬件電路里往往有震蕩出現,電流不是馬上消失的。

2、初嘗呼吸燈

認識“對“range”中的每個項目”代碼塊(For循環)

“對“range”中的每個項目”代碼塊位于“控制”模塊分類中,表示從起始數到終止數中取出固定步長的變量,并執行接口中的程序。


呼吸燈是指燈光在控制下完成由暗到亮,再由亮到暗的逐漸變化,感覺好像是人在呼吸。

讓燈光從暗到亮的逐漸變化過程,可以轉化成高電平持續時間在固定周期中的比例逐漸升高的過程,即占空比從0~1的過程。


上圖所示程序中, “range”模塊執行完要100次,執行一次周期10000微秒,即10毫秒。執行完整個“range”模塊需要100*10毫秒,即1秒。此為占空比從0/10000~10000/10000的LED燈。

我們已經實現了LED燈由暗到亮的逐漸變化過程,同理可以寫出LED燈由亮到按的逐漸變化過程。將兩個程序塊放到一起,就可以組成一個完整的呼吸燈了。


3、優化呼吸燈

認識“初始化PWM模擬輸出”代碼塊以及“PWM模擬輸出賦值”代碼塊

兩個代碼塊均位于“輸入\輸出”模塊中。其中“初始化PWM模擬輸出”代碼塊作用為初始化指定管腳的PWM模擬輸出值; “PWM模擬輸出賦值”代碼塊作用為將指定PWM管腳賦值為特定值(0或1)。


此前PWM的原理以及應用,我們已經學會了。但是我們還有更簡單的程序應用,那就是用我們科創板自帶的PWM模塊。

科創板自帶PWM的賦值范圍為0~1023,即占空比從0到1。

板載PWM呼吸燈程序:


執行以上程序,就可以點亮板載四個綠色呼吸燈了。



三、延伸與擴展——Arts

想一想,能不能設計一款流水呼吸燈呢,怎樣去實現?


請以小組的形式進行合作,嘗試讓多彩LED燈的三色燈光輪流完成一個呼吸燈流程。

設計要求:

能夠讓多彩LED燈交依次完成一個呼吸燈流程;

保證控制方式安全可靠。






山東省濟南市歷下區舜華路750號大學科技園北區3號樓
服務熱線:13256445996                                  www.156502.com