利用單片機(jī)定時(shí)器實(shí)現(xiàn)信號(hào)采樣和PWM控制
系統(tǒng)對(duì)脈寬的調(diào)制由PID算法實(shí)現(xiàn)。根據(jù)算法原理,本系統(tǒng)設(shè)計(jì)了一套完全由軟件實(shí)現(xiàn)的PID算法,并且在控制過(guò)程中完成參數(shù)的自整定。PID調(diào)節(jié)的控制過(guò)程:單片機(jī)讀出數(shù)字形式的實(shí)際溫度Tn,然后和設(shè)定溫度Tg相比較,得出差值en=Tn-Tg,根據(jù)en的正負(fù)和大小,調(diào)用PID公式,計(jì)算得到與輸出電壓Δun一致的占空比,調(diào)節(jié)溫度的升降,同時(shí)尋找最優(yōu)條件,改變PID參數(shù)。
增量式PID控制算法的輸出量[3]:
PID調(diào)節(jié)程序直接寫(xiě)入單片機(jī)內(nèi),根據(jù)得到的值改變計(jì)數(shù)器CCR1的基數(shù)值,從而改變輸出脈沖的占空比,達(dá)到調(diào)節(jié)PWM的目的。
3.3 定時(shí)中斷
定時(shí)中斷子程序流程如圖4所示。系統(tǒng)采用的晶振頻率為2MHz,T0中斷的作用是得到頻率為50Hz、占空比為90%的方波,用以產(chǎn)生三角波,并檢查1個(gè)周期內(nèi)是否有漏采的數(shù)據(jù)。T0模溢出翻轉(zhuǎn)為高電平,輸出比較間隔為18ms。其中,CCR0加了PWM的模,該值即為CCR0和CCR1的差值,用以產(chǎn)生輸出所需的脈沖寬度。
T1中斷內(nèi)處理的是控制端口的PWM輸出,并檢查1個(gè)周期內(nèi)是否重復(fù)采集數(shù)據(jù),T1輸出比較產(chǎn)生低電平,輸出比較間隔為20ms。T2中斷捕捉溫度測(cè)量端口的脈寬,得到所測(cè)的溫度值。
4 結(jié)束語(yǔ)
利用單片機(jī)MSP430F413內(nèi)的定時(shí)器Time_A進(jìn)行溫度采樣以及實(shí)現(xiàn)PWM調(diào)節(jié)的方法,可以廣泛用于具有端口捕捉功能的單片機(jī)中。與傳統(tǒng)方法比較,它不僅可以簡(jiǎn)化測(cè)量和控制電路的硬件結(jié)構(gòu),而且可以方便地建立人機(jī)接口,實(shí)現(xiàn)用軟件調(diào)整參數(shù),使控制更精確、實(shí)時(shí)、可靠。經(jīng)過(guò)實(shí)驗(yàn),該方法應(yīng)用于溫度控制系統(tǒng)中獲得了預(yù)期的精確PWM調(diào)節(jié)波形。該方法同樣可以用于其他單片機(jī)控制系統(tǒng)中。
pwm相關(guān)文章:pwm原理
評(píng)論