單片機(jī)對(duì)儀表步進(jìn)電機(jī)的細(xì)分控制
配合硬件的設(shè)計(jì),軟件上編寫了一個(gè)由64個(gè)數(shù)據(jù)組成的數(shù)組,分別對(duì)應(yīng)了0~90o正弦波幅度變化的8位數(shù)字量化值(以階梯波的方式模擬了64點(diǎn)正弦波抽樣),每個(gè)值用來控制輸出波形占空比,實(shí)際上參與了電流矢量夾角轉(zhuǎn)動(dòng)90o過程中其電流大小的計(jì)算。眾所周知,正弦、余弦波相位相差90o,在已知0~90o正弦波幅度變化表后,同樣可以得出90o~180o、180o~270o、270o~360o(0o)的正弦波、余弦波幅度變化表,所以通過0~90o正弦波幅度變化的8位數(shù)字量化表的演化,就可以在兩相八拍(二細(xì)分)的基礎(chǔ)上把電流矢量夾角分成四個(gè)象限,配合極性的控制,在每個(gè)象限中把A或/A的正弦波和B或/B的余弦波作8種組合,在每種組合中完成電流大小的變化,最終作到兩相64拍(16細(xì)分)的控制。而且,最巧妙的一點(diǎn)就在于:通過選擇64個(gè)數(shù)據(jù)對(duì)應(yīng)每90o范圍的正弦波的64個(gè)點(diǎn),就可以用一個(gè)字節(jié)的大小來作為區(qū)分4個(gè)象限的標(biāo)志,便于對(duì)正、余弦的角度進(jìn)行演化,即0~63對(duì)應(yīng)0~90o,64~127對(duì)應(yīng)90o~180o,128~191對(duì)應(yīng)180o~270o,192~255對(duì)應(yīng)270o~360o。
本文引用地址:http://2s4d.com/article/98852.htm兩相64拍A、B、/A、/B的驅(qū)動(dòng)狀態(tài)表如表3(以B為起始狀態(tài))。
由于儀表指針從當(dāng)前角指向目標(biāo)角時(shí),變化量會(huì)有不同。為保證指針響應(yīng)靈敏、無抖動(dòng),必須在正、反轉(zhuǎn)時(shí)考慮加、減速控制。程序中,可以根據(jù)變化量的大小和正負(fù)設(shè)定幾個(gè)控制區(qū)間,分別寫入不同的延時(shí)參數(shù),根據(jù)此延時(shí)參數(shù)來控制電流大小、方向(改變PWM_A和PWM_B、DIR_A和DIR_B)變化時(shí)間,就達(dá)到了加、減速的控制的目的。
結(jié)語
通過雙PWM方式控制兩相步進(jìn)電機(jī),既達(dá)到了高精度細(xì)分的目的,又在硬件成本上得到了優(yōu)化。在現(xiàn)有電路的后級(jí)增加功率驅(qū)動(dòng)電路并作程序的少量修改,就可以做成高精度、多細(xì)分步進(jìn)電機(jī)驅(qū)動(dòng)器。
參考文獻(xiàn):
[1] Atmel Semiconductor. ATmega48 User`guide
[2] 趙亮, 侯國銳.單片機(jī)C語言編程與實(shí)例[M].北京:人民郵電出版社,2004
[3] 王輝堂, 顏?zhàn)杂? 陳文薌. 基于帶PWM 模塊單片機(jī)的步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)控制技術(shù)[J], 理論與方法, 2007,26(3)
[4] 陳子明.汽車車速里程表及其速比的計(jì)算方法[J].汽車電器, 2005(3):9-11
[5] 劉清波,蔡樹珍,孫業(yè)歧等. 基于單片機(jī)的汽車?yán)锍瘫碓O(shè)計(jì)[J]. 河北大學(xué)學(xué)報(bào)(自然科學(xué)版), 2002(9):276-278
評(píng)論