呼吸燈,就是指電子產品上的LED燈的亮度隨著時間由暗到亮逐漸增強,再由亮到暗逐漸衰減,有節奏感地一起一伏,就像是在呼吸一樣,因而被廣泛應用于手機、電腦等電子設備的指示燈中。在使用MCU開發相關的應用產品中也可以加入呼吸燈功能,增強用戶的體驗感,在本實驗中
靈動微電子一級代理英尚微將介紹如何使用MM32L0系列產品芯片做呼吸燈功能。
在平時應用中可以知道,MCU的GPIO輸出高低電平變化可以實現LED燈的亮、滅兩個過程,如果GPIO的電平一直維持高電平或者低電平,LED燈就處于長亮或長滅的狀態,呼吸燈就是通過較高頻率的電平變化來實現亮滅的切換,由于人的視覺暫留效應,肉眼無法迅速捕捉快速亮滅變化的過程,所以在視覺中一直出現一直亮或者滅的狀態,通過調整占空比可以控制LED燈的亮度,給人視覺上一種燈光由暗到亮逐漸增強,然后又由亮到暗逐漸衰減。
正常的成年人的吸氣呼氣時間整個過程持續大約3秒時間,即吸氣時間(LED燈亮度逐漸變亮)時間為1.5S,吸、呼氣時間(LED燈亮度逐漸變暗)時間為1.5S。
亮度隨著時間逐漸變強再衰減,可以用兩種算數方式實現:半周期的正弦函數曲線和指數上升曲線及對稱的下降沿曲線。
指數方式曲線圖
要控制LED燈達到呼吸燈的效果,實際上就是要控制LED燈的亮度擬合呼吸特性曲線,在本次實驗將采用指數上升曲線及對稱的下降沿曲線方式,用戶如果對正弦方式感興趣也可以進行嘗試。在本次實驗中,我們使用
MM32L0輸出較高頻率的PWM信號,通過調制信號的占空比,控制LED燈的亮度。
生成指數方式的曲線圖主要因素:
TIMPeriod:定時器的計數周期,它的值必須與PWM表中的極大值相等(應用中賦值需要減1),而PWM表的極大值決定了控制的分辨率。例如極大值為10時,PWM占空比只有10個等級精確到0.1,當極大值為1000時,PWM占空比1000個等級精確到0.001。在本次實驗中設置定時器的計數周期值為255+1,即PWM表中的極大值也是256。
TIM_Prescaler:定時器時鐘分頻因子,它控制定時器計數器CNT計數加1所需要的時間,它的值太大會導致輸出的單個PWM波周期過長,影響控制的動態特性。如控制LED燈時,該值太大會導致LED燈開關時間變長,閃爍明顯。一般來說該值越小越好。在本次實驗中設置定時器時鐘分頻因子為1757+1,即對時鐘1758分頻。
PWM表的點數:PWM表的點數即對擬合曲線的采樣點數,即把LED燈的亮度分為0-255個等級,采樣點越多,能更好地還原擬合曲線,采樣點太少,可能會導致失真。在本次實驗中設置PWM表的點數為40。
Period_class:周期倍數,即PWM表中每個元素的循環次數,它影響擬合曲線的周期。在本次實驗中設置設置周期倍數為8。
本次實驗程序直接從MM32L073的定時器PWM輸出的例程的基礎上修改得來,TIM3配置成向上計數,PWM通道輸出也被配置成當計數器CNT的值小于輸出比較寄存CCR1的值時,PWM通道輸出低電平點亮LED燈。在函數的最后還使能了定時器中斷,每當定時器的一個計數周期完成時產生中斷,配合中斷服務函數,即可切換CCR1比較寄存器的值。
使用MM32L0系列MCU上述兩種方式都可以實現呼吸燈功能,兩種方法GPIO分別是PB4和PB5,download到MiniBoard中,可以對比測試兩種實現方法的差異性,選擇合適的呼吸燈實現方式。
更多詳情點擊該鏈接:http://gukawang.com/list-75-1.html
本文關鍵詞:MM32L0
相關文章:電機控制專用國產32位單片機MM32SPIN360C
深圳市英尚微電子有限公司是一家專業的靜態隨機記憶體產品及方案提供商,十年來專業致力代理分銷存儲芯片IC, SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)等,為客人提供性價比更高的產品及方案。
英尚微電子中國區指定的授權代理:VTI、NETSOL、JSC濟州半導體(EMLSI)、Everspin 、IPSILOG、LYONTEK、ISSI、CYPRESS、ISOCOME、PARAGON、SINOCHIP、UNIIC; 著名半導體品牌的專業分銷商 如:RAMTROM、ETRON、FUJITSU、LYONTEK、WILLSEMI。
?更多資訊關注SRAMSUN. gukawang.com 0755-66658299