和12歲小同志搞創(chuàng)客開發(fā):設(shè)計(jì)一款亮度可調(diào)節(jié)燈
機(jī)緣巧合在網(wǎng)上認(rèn)識(shí)一位12歲小同志,從零開始系統(tǒng)輔導(dǎo)其創(chuàng)客開發(fā)思維和技巧。
本篇博客來設(shè)計(jì)一款亮度可調(diào)節(jié)燈,一起看看吧~
亮度可調(diào)節(jié)燈,重點(diǎn)在于可調(diào)節(jié),傳統(tǒng)LED只有開(點(diǎn)亮)、關(guān)(熄滅)兩種狀態(tài),通過PWM技術(shù)可實(shí)現(xiàn)對(duì)亮度的調(diào)節(jié)。
PWM官方名稱叫:脈沖寬度調(diào)制,是一種模擬控制方式。利用微處理器的數(shù)字輸出信號(hào)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。
我們可以根據(jù)占空比和每秒重復(fù)占空比所需的頻率輕松定義PWM技術(shù)。占空比突出顯示信號(hào)在ON和OFF位置之間切換的時(shí)間,用百分比表示。如果信號(hào)在總占空比的一半保持開啟,而在另一半保持關(guān)閉,則占空比將為50%。
下圖以百分比形式顯示了占空比,該占空比主要與波形上的ON和OFF數(shù)字信號(hào)相關(guān)。
假設(shè)高電平為5V、低電平則為0V,那么要輸出不同的模擬電壓就要用到PWM。通過改變IO口輸出的方波的占空比,從而獲得使用數(shù)字信號(hào)模擬成的模擬電壓信號(hào)。
電壓是以一種脈沖序列被加到模擬負(fù)載上去的,接通時(shí)是高電平1,斷開時(shí)是低電平0。接通時(shí)直流供電輸出,斷開時(shí)直流供電斷開。通過對(duì)接通和斷開時(shí)間的控制,理論上來講,可以輸出任意不大于最大電壓值5V的模擬電壓。
比方說,占空比為50%那就是高電平時(shí)間一半,低電平時(shí)間一半。在一定的頻率下,就可以得到模擬的2.5V輸出電壓。那么75%的占空比,得到的電壓就是3.75V,如下圖所示:
也就是說,在一定的頻率下,通過不同的占空比即可得到不同大小的輸出模擬電壓,PWM就是通過這種原理實(shí)現(xiàn)數(shù)字模擬信號(hào)轉(zhuǎn)換的。
一般人眼睛對(duì)于80Hz以上刷新頻率則完全沒有閃爍感,那么我們平時(shí)見到的LED燈,當(dāng)它的頻率大于50Hz的時(shí)候,人眼就會(huì)產(chǎn)生視覺暫留效果,基本就看不到閃爍了,而是誤以為是一個(gè)常亮的LED燈。
由于頻率很高時(shí)看不到閃爍,占空比越大LED越亮,占空比越小LED越暗。所以,在頻率一定時(shí),可以用不同占空比改變LED燈的亮度。
PWM調(diào)節(jié)燈亮度原理就是通過改變占空比改變LED亮度,實(shí)現(xiàn)調(diào)節(jié)亮、滅程度的效果。
我準(zhǔn)備使用使用旋轉(zhuǎn)電位器控制LED燈實(shí)現(xiàn)亮度可調(diào)節(jié),旋鈕電位器是模擬電壓輸出信號(hào)接線在模擬信號(hào)端口,LED燈接在可輸出PWM信號(hào)的數(shù)字端口,接線如下所示:
通過編程控件可知,PWM輸出范圍在0~250之間,效果如下所示:
接下來需要了解旋鈕電位器ADC采樣數(shù)值的范圍,轉(zhuǎn)動(dòng)旋鈕電位器,使用串口打印數(shù)值范圍是0~1023之間,效果如下所示:
所以可以設(shè)計(jì),若旋鈕數(shù)值超過250,則一直保持250最大值輸出,程序設(shè)計(jì)如下所示:
最后就可實(shí)現(xiàn)調(diào)光效果啦。
往期推薦

