0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

呼吸燈的概念和實現原理

FPGA技術實戰(zhàn) ? 來源:FPGA技術實戰(zhàn) ? 2024-10-24 14:50 ? 次閱讀

引言:呼吸燈在日常生活中經常見到,如電子時鐘,小夜燈等等,本文我們介紹下通過PWM波來控制LED燈,實現呼吸燈功能。

1.呼吸燈概念

呼吸燈其實是在處理器的控制下,由暗漸亮、然后再由亮漸暗,其實現效果類似人的呼吸方式的LED燈。其要實現呼吸周期重復,明暗漸變功能。

2.實現原理

由于FPGA管腳輸出邏輯電平只有“0”和“1”,因此并不能通過FPGA來改變LED兩側電壓差來實現呼吸燈。但是,我們可以通過改變單位時間內亮燈時間的占空比來實現呼吸效果,即在固定頻率下,通過調整占空比來控制LED的亮滅,又稱作PWM(Pulse Width Modulation)調制。PWM是對模擬電路控制的一種非常有效的技術,廣泛應用于測量、功率控制、通信等領域。

wKgaoWcZ7kaAVvWrAAAH8Q4xrdg745.png

圖1:占空比調整示意圖

3.硬件介紹

LED燈電路如下圖所示,圖中電阻起限流作用,保證LED不會超過其工作最大電流,當FPGA IO口輸出低電平時,LED燈點亮,反之,LED燈熄滅。

wKgaoWcZ7kaAXBIcAACsKnKAM20697.png

圖2:LED燈電路圖

4.FPGA軟件設計

本設計呼吸燈的亮滅周期是2S,PWM每間隔2ms更新一次,共計更新100次即2S后切換PWM的占空比調整方向。因此PWM占空比的調整是和2ms定時計數器和2S定時計數器相關。系統框圖如下:

wKgZoWcZ7kaAW1QSAACeb1w30S8289.png

圖3:呼吸燈PWM產生框圖

上圖中包含了3個定時計數器:

(1)20us定時器,作為本系統的基本定時器,產生時間基準;

(2)20ms定時器,通過20us定時器,計數100次完成20ms定時計數;

(3)2s定時器,通過20ms定時器,計數100次完成2S定時計數。

20us定時器代碼:

//20us 定時器
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比較定時器代碼:

//20ms pwm比較定時器,基于 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.軟件在線仿真與實測

硬件平臺:EP2C8Q208C8N

Quartusii軟件:11.0

工程編譯完成后,下載bit文件到電路板,PWM波測試結果如下圖所示。

wKgZoWcZ7l6AUMsSAABhPRJserA490.png

圖4:SignalTapII在線抓取波形

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1624

    文章

    21568

    瀏覽量

    600570
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    107663
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5105

    瀏覽量

    212869
  • 呼吸燈
    +關注

    關注

    10

    文章

    109

    瀏覽量

    42674

原文標題:FPGA入門基礎之呼吸燈設計

文章出處:【微信號:FPGA技術實戰(zhàn),微信公眾號:FPGA技術實戰(zhàn)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PWM驅動LED實現呼吸效果

    C51 利用pwm 驅動LED 實現呼吸效果
    的頭像 發(fā)表于 04-24 15:29 ?3584次閱讀
    PWM驅動LED<b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>效果

    請問pwm是怎么實現呼吸

    今天面試被問到pwm實現呼吸的效果,發(fā)現arm新一期的視頻老師講的定時器這部分就講了定時器中斷,這些基本概念什么的講的很少,哪位大哥教教我pwm是干嘛用的???
    發(fā)表于 04-30 07:45

    基于51單片機的呼吸怎樣設計

    課程設計報告書題目:基于51單片機的呼吸設計信息工程學院課程設計任務書學 號1學生姓名專業(yè)(班級)設計題目基于51單片機的呼吸設計設計技術參數8個LED按照順序逐個
    發(fā)表于 07-15 08:01

    怎么通過PWM來實現呼吸

    個人理解:如果能實現電壓的變化就能實現呼吸了,如果能得到一個類似正弦電壓的電壓,那么就能實現這個呼吸
    發(fā)表于 08-11 06:17

    如何制作呼吸

    時高時低,就能形成閃爍的效果。那么什么是呼吸呢?它與閃爍實現方法有何區(qū)別?呼吸大家其實都
    發(fā)表于 01-05 06:51

    PWM實現呼吸流程

    Conceit is the quicksand of success.  自負是成功的流沙。PWM實現呼吸PWM概述相關概念PWM設置流程呼吸
    發(fā)表于 01-13 06:41

    如何用LED實現呼吸的功能

    一、概述玩過單片機的基本都做過用LED實現呼吸的功能,但是只要認真觀察,會發(fā)現LED的亮度變化在低占空比的時候,變化很明顯,而在高占空比的時候反而變化很小,導致
    發(fā)表于 01-21 08:09

    PWM實現呼吸的應用

    stm32實現PWM最簡單方法前言一、PWM概念二、PWM應用輸出比較功能框圖三、PWM呼吸實現前言PWM可以用于控制
    發(fā)表于 01-21 13:18

    呼吸有什么用_華為呼吸在哪設置

    本文開始介紹了呼吸概念呼吸的作用,其次介紹了呼吸
    發(fā)表于 03-29 08:29 ?7.3w次閱讀
    <b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>有什么用_華為<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>在哪設置

    使用定時器功能實現呼吸亮暗過程

    呼吸就是LED的亮度從暗到亮,再從亮到暗的一個過程。它好像人呼吸一樣,所以叫它“呼吸”。我是在網友的幫助下通過定時器的調節(jié)、中斷的調用來
    的頭像 發(fā)表于 06-11 16:11 ?1.2w次閱讀
    使用定時器功能<b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>亮暗過程

    使用PWM控制LED實現呼吸的效果

    本文主要講解使用PWM控制LED,實現呼吸的效果。
    的頭像 發(fā)表于 02-08 17:50 ?1.3w次閱讀
    使用PWM控制LED<b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的效果

    單片機實現呼吸

    項目描述:用漸變的PWM信號實現LED呼吸。 LED由暗逐漸變亮,再由亮逐漸變暗循環(huán)。C語言代碼如下
    發(fā)表于 11-11 11:21 ?66次下載
    單片機<b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    stm32使用延時實現呼吸寄存器版

    stm32使用延時實現呼吸(寄存器)該實驗是使用STM32F103C8T6實現,使用寄存器編程。呼吸
    發(fā)表于 01-18 10:33 ?0次下載
    stm32使用延時<b class='flag-5'>實現</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>寄存器版

    通過STM32實現PWM呼吸的教程

    顧名思義,就是一個。的亮度的變化,由亮變暗,從暗變亮,有一個漸變,規(guī)律的變化,像是人的呼吸,是呼吸,所以叫
    的頭像 發(fā)表于 07-26 15:20 ?1.2w次閱讀
    通過STM32<b class='flag-5'>實現</b>PWM<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的教程

    51單片機呼吸頻率怎么調節(jié)

    51單片機呼吸頻率的調節(jié)方法可以通過改變PWM(脈沖寬度調制)的工作周期和占空比來實現。在下面的文章中,我將詳細介紹如何使用51單片機調節(jié)呼吸
    的頭像 發(fā)表于 12-19 10:39 ?2055次閱讀