引言:呼吸燈在日常生活中經(jīng)常見到,如電子時(shí)鐘,小夜燈等等,本文我們介紹下通過PWM波來控制LED燈,實(shí)現(xiàn)呼吸燈功能。
1.呼吸燈概念
呼吸燈其實(shí)是在處理器的控制下,由暗漸亮、然后再由亮漸暗,其實(shí)現(xiàn)效果類似人的呼吸方式的LED燈。其要實(shí)現(xiàn)呼吸周期重復(fù),明暗漸變功能。
2.實(shí)現(xiàn)原理
由于FPGA管腳輸出邏輯電平只有“0”和“1”,因此并不能通過FPGA來改變LED兩側(cè)電壓差來實(shí)現(xiàn)呼吸燈。但是,我們可以通過改變單位時(shí)間內(nèi)亮燈時(shí)間的占空比來實(shí)現(xiàn)呼吸效果,即在固定頻率下,通過調(diào)整占空比來控制LED的亮滅,又稱作PWM(Pulse Width Modulation)調(diào)制。PWM是對(duì)模擬電路控制的一種非常有效的技術(shù),廣泛應(yīng)用于測(cè)量、功率控制、通信等領(lǐng)域。

圖1:占空比調(diào)整示意圖
3.硬件介紹
LED燈電路如下圖所示,圖中電阻起限流作用,保證LED不會(huì)超過其工作最大電流,當(dāng)FPGA IO口輸出低電平時(shí),LED燈點(diǎn)亮,反之,LED燈熄滅。

圖2:LED燈電路圖
4.FPGA軟件設(shè)計(jì)
本設(shè)計(jì)呼吸燈的亮滅周期是2S,PWM每間隔2ms更新一次,共計(jì)更新100次即2S后切換PWM的占空比調(diào)整方向。因此PWM占空比的調(diào)整是和2ms定時(shí)計(jì)數(shù)器和2S定時(shí)計(jì)數(shù)器相關(guān)。系統(tǒng)框圖如下:

圖3:呼吸燈PWM產(chǎn)生框圖
上圖中包含了3個(gè)定時(shí)計(jì)數(shù)器:
(1)20us定時(shí)器,作為本系統(tǒng)的基本定時(shí)器,產(chǎn)生時(shí)間基準(zhǔn);
(2)20ms定時(shí)器,通過20us定時(shí)器,計(jì)數(shù)100次完成20ms定時(shí)計(jì)數(shù);
(3)2s定時(shí)器,通過20ms定時(shí)器,計(jì)數(shù)100次完成2S定時(shí)計(jì)數(shù)。
20us定時(shí)器代碼:
//20us 定時(shí)器 always @(posedge i_sysclk_p or negedge i_rstn)begin if(i_rstn == 1'b0) cnt_20us_timer <= 0; else if(cnt_20us_timer < T20US_SET) ????????cnt_20us_timer <=?cnt_20us_timer +?1'b1; else ????????cnt_20us_timer <=?24'd0;?????????? end
20ms比較定時(shí)器代碼:
//20ms pwm比較定時(shí)器,基于 1us timer
always @(posedge i_sysclk_p or negedge i_rstn)begin
if(i_rstn == 1'b0)
cnt_20ms_timer<=?0;????
????else?if(20us_timer_done)????????????????????????????
cnt_20ms_timer <= (cnt_20ms_timer < T20MS_SET) ? (cnt_20ms_timer + 1'b1) : 10'd0;
else
cnt_20ms_timer <= cnt_20ms_timer ;
end
5.軟件在線仿真與實(shí)測(cè)
硬件平臺(tái):EP2C8Q208C8N
Quartusii軟件:11.0
工程編譯完成后,下載bit文件到電路板,PWM波測(cè)試結(jié)果如下圖所示。

圖4:SignalTapII在線抓取波形
-
FPGA
+關(guān)注
關(guān)注
1650文章
22217瀏覽量
628018 -
led燈
+關(guān)注
關(guān)注
22文章
1602瀏覽量
110819 -
PWM
+關(guān)注
關(guān)注
116文章
5814瀏覽量
223005 -
呼吸燈
+關(guān)注
關(guān)注
10文章
115瀏覽量
43692
原文標(biāo)題:FPGA入門基礎(chǔ)之呼吸燈設(shè)計(jì)
文章出處:【微信號(hào):FPGA技術(shù)實(shí)戰(zhàn),微信公眾號(hào):FPGA技術(shù)實(shí)戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問pwm是怎么實(shí)現(xiàn)呼吸燈的
基于51單片機(jī)的呼吸燈怎樣設(shè)計(jì)
怎么通過PWM來實(shí)現(xiàn)呼吸燈的
PWM實(shí)現(xiàn)呼吸燈流程
如何用LED燈實(shí)現(xiàn)呼吸燈的功能
PWM實(shí)現(xiàn)呼吸燈的應(yīng)用
51單片機(jī)呼吸燈的實(shí)現(xiàn)源程序
使用定時(shí)器功能實(shí)現(xiàn)呼吸燈亮暗過程
單片機(jī)實(shí)現(xiàn)呼吸燈
stm32使用延時(shí)實(shí)現(xiàn)呼吸燈寄存器版
通過STM32實(shí)現(xiàn)PWM呼吸燈的教程

呼吸燈的概念和實(shí)現(xiàn)原理
評(píng)論