本發(fā)明涉及一種控制呼吸燈呼吸效果的方法,尤其涉及一種利用函數(shù)曲線控制呼吸燈呼吸效果的方法。
背景技術:
呼吸燈被廣泛應用于數(shù)碼產(chǎn)品,手機、電腦、音響、汽車等各個領域,起到很好的視覺裝飾效果與狀態(tài)提示作用。呼吸燈的實現(xiàn)可以通過純粹的硬件電路來完成,也可以通過單片機編程更加靈活的控制其呼吸效果。用單片機控制呼吸燈的呼吸效果,其原理是通過控制pwm的占空比來完成對led亮度的控制,pwm的占空比按照一定的規(guī)律變化就可以做出呼吸的效果。而呼吸燈呼吸時所需要的pwm占空比數(shù)據(jù),目前都是靠經(jīng)驗值來給出的,未找到一套便捷直觀的數(shù)據(jù)生成方法。經(jīng)驗值的辦法是通過增加,刪除,修改其中的某些數(shù)據(jù)來改變呼吸效果,不具有可預見性。
因此,現(xiàn)有技術有待改進。
技術實現(xiàn)要素:
針對上述現(xiàn)有技術中存在的問題,本發(fā)明的目的在于提供一種控制呼吸燈呼吸效果的方法,旨在克服現(xiàn)有呼吸燈呼吸節(jié)奏控制方法不可預見性的缺陷。
本發(fā)明的技術方案如下:
一種控制呼吸燈呼吸效果的方法,其中,包括以下步驟:
(1)利用制圖軟件生成一條曲線,對曲線進行采樣,把采樣點值取整后有序的放入到一個數(shù)組curdat里,定義到單片機程序里,供定時器中斷處理函數(shù)調用;
(2)單片機上電后,對定時器進行初始化,設置開啟定時器的溢出中斷,設置定時器預裝載值,同時設置計數(shù)頻率,確定pwm的輸出頻率,并配置pwm輸出功能;
(3)開啟定時器,在定時器溢出中斷處理函數(shù)里設置,每當中斷到來,都會把curdat當前索引下的數(shù)組值賦給通道比較寄存器ccr,使定時器輸出的pwm占空比與curdat里的索引值呈對應關系;如果索引值為數(shù)組curdat的最后一個值,把索引值清零,指向數(shù)組的開始;否則索引值加一指向數(shù)組的下一個值。
所述的控制呼吸燈效果的方法,其中,步驟(2)中,設置定時器預裝載的值為所述曲線在采樣范圍內的最大值。
所述的控制呼吸燈效果的方法,其中,步驟(1)中所述的制圖軟件為matlab或者origin。
所述的控制呼吸燈效果的方法,其中,步驟(1)中所述曲線為正態(tài)分布曲線,所述采樣點關于正態(tài)分布曲線的對稱軸對稱。
所述的控制呼吸燈效果的方法,其中,步驟(1)中所述曲線為高斯曲線,其函數(shù)方程式為:
所述的控制呼吸燈效果的方法,其中,步驟(2)中,設置定時器預裝載的值為a,定時器的計數(shù)頻率為100a,使定時器每10ms溢出一次,pwm的輸出頻率為100hz。
所述的控制呼吸燈效果的方法,其中,所述高斯曲線中,a=1,
所述的控制呼吸燈效果的方法,其中,步驟(1)中,在曲線橫坐標-10到10的范圍內進行200個點的采樣。
所述的控制呼吸燈效果的方法,其中,所述單片機的型號是stm32f1系列,采用定時器tim4中的溢出中斷和定時器的pwm輸出功能。
本發(fā)明的有益效果為:本發(fā)明提供一種控制呼吸燈呼吸效果的方法,利用制圖軟件,用戶可以自定義函數(shù)及相關參數(shù),生成對應形狀的曲線,再通過適當?shù)牟蓸觼懋a(chǎn)生呼吸燈呼吸時所需要的pwm占空比數(shù)據(jù),把索引對應上述曲線的橫坐標值,pwm占空比按照一定的比例關系對應曲線的縱坐標值,此時定時器輸出的pwm占空比與上述曲線形狀相似。單片機按照一定的時間依次輪流調用上述產(chǎn)生的數(shù)據(jù),從頭到尾不停循環(huán)即可實現(xiàn)對應曲線的呼吸效果。即通過觀察和調整曲線的形狀實現(xiàn)對呼吸燈的呼吸節(jié)奏的控制,可以預先定義出曲線的形狀,來感知呼吸的效果,而且形式多樣化。
附圖說明
圖1為本發(fā)明實施例中a=1,
圖2為本發(fā)明實施例的步驟流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案及效果更加清楚、明確,以下舉實例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
本實施例涉及一種控制呼吸燈呼吸效果的方法,其特征在于,包括以下步驟:
(1)利用制圖軟件生成一條曲線,對曲線進行采樣,把采樣點值取整后有序的放入到一個數(shù)組curdat里(索引即數(shù)組的索引,為采樣點的橫坐標值,索引到的數(shù)組值為對應取整后的縱坐標值),定義到單片機程序里,供定時器中斷處理函數(shù)調用;
(2)單片機上電后,對定時器進行初始化,設置開啟定時器的溢出中斷,設置定時器預裝載的值和計數(shù)頻率,確定pwm的輸出頻率,并配置pwm輸出功能;
(3)開啟定時器,在定時器溢出中斷處理函數(shù)中設置,每當中斷到來,都會把curdat當前索引下的數(shù)組值賦給通道比較寄存器ccr,使定時器輸出的pwm占空比與curdat里的索引值呈對應關系;如果索引值為數(shù)組curdat的最后一個值,把索引值清零,指向數(shù)組的開始;否則索引值加一指向數(shù)組的下一個值。
上述方法利用制圖軟件,用戶可以自定義函數(shù)及相關參數(shù),生成對應形狀的曲線,再通過適當?shù)牟蓸觼懋a(chǎn)生呼吸燈呼吸時所需要的pwm占空比數(shù)據(jù),單片機按照一定的時間依次輪流調用上述產(chǎn)生的數(shù)據(jù),從頭到尾不停循環(huán)即可實現(xiàn)對應曲線的呼吸效果。即通過觀察和調整曲線的形狀實現(xiàn)對呼吸燈的呼吸節(jié)奏的控制,可以預先定義出曲線的形狀,來感知呼吸的效果,而且形式多樣化。
作為優(yōu)選的實施例,所述的控制呼吸燈效果的方法,步驟(2)中,設置定時器預裝載值為所述曲線在采樣范圍內的最大值。由于定時器輸出的pwm占空比=通道比較寄存器ccr值/預裝載寄存器arr值,因此,將定時器預裝載值設置為曲線在采樣范圍內的最大值時,輸出pmw占空比不會超過100%。
實際應用中,可選擇現(xiàn)有的多種制圖軟件生產(chǎn)曲線,比如matlab或者origin,而為了讓呼吸燈的“呼”和“吸”對稱,一般選用類似正態(tài)分布的曲線,比如正余弦曲線、高斯曲線等,且所述采樣點關于正態(tài)分布曲線的對稱軸對稱。本實施例選用制圖軟件為matlab生成高斯曲線為例進行說明,具體如何通過函數(shù)曲線控制呼吸燈呼吸效果的。
高斯曲線是正態(tài)分布中的一條標準曲線,是一個鐘狀的對稱曲線,函數(shù)表達式如下:
其中,a表示曲線的峰值,
本發(fā)明以a=1,
如圖2所示,首先用matlab軟件生成一條高斯曲線,其對應的函數(shù)表達式為:
單片機上電后,對定時器進行初始化,設置開啟定時器的溢出中斷,設置定時器預裝載的值為a,定時器的計數(shù)頻率為100a,這樣定時器每10ms溢出一次,即pwm的輸出頻率為100hz(定時器的溢出頻率為定時器的計數(shù)頻率100a除以預裝載寄存器的值a),并配置pwm輸出功能,開啟定時器,每隔10ms就會執(zhí)行一次溢出中斷處理函數(shù)。
在中斷處理函數(shù)里,把curdat當前索引下的數(shù)組值賦值給通道比較寄存器ccr,此時定時器輸出的pwm占空比為ccr/a(≤100%),對應歸一化高斯曲線上采樣點值,如果索引值為數(shù)組curdat的最后一個值,把索引值清零,重新指向數(shù)組curdat的開始;否則索引值指向數(shù)組的下一個值,即索引值+1。本實施例中,curdat里共有200個數(shù)據(jù),而每10ms讀取一個,因此一次呼吸的時間為2s。
綜上所述,本實施例通過matlab軟件根據(jù)用戶自定義參數(shù),生成對應形狀的高斯曲線,再通過適當?shù)牟蓸觼懋a(chǎn)生呼吸燈呼吸時所需要的pwm占空比數(shù)據(jù),單片機按照一定的時間依次輪流調用上述產(chǎn)生的數(shù)據(jù),從頭到尾不停循環(huán)即可實現(xiàn)對應高斯曲線的呼吸效果。與傳統(tǒng)經(jīng)驗值法中,通過增加,刪除,修改其中的某些數(shù)據(jù)來改變呼吸效果相比,此呼吸燈的呼吸節(jié)奏可以通過高斯曲線的形狀來觀察,調整而通過曲線的辦法,可以預先定義出曲線的形狀,來感知呼吸的效果,而且形式多樣化。
以上對本發(fā)明進行了詳細的介紹,對本領域普通技術人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。