51單片機開(kāi)發(fā)板上步進(jìn)電機的總結經(jīng)驗
相信學(xué)過(guò)電子的人都會(huì )知道什么是步進(jìn)電機,它的定義及作用在百度百科里描述的也是比較詳細的,它是一種同步電機,在機電一體化等工業(yè)方面均有廣泛的應用,因此怎么也得知道的.于是手上找來(lái)一個(gè)實(shí)物見(jiàn)圖1.
本文引用地址:http://dyxdggzs.com/article/172323.htm圖1javascript:resizepic(this) border=0>
圖2
這是一款四相五線(xiàn)步進(jìn)電機,轉子齒數按公式推算可得為8個(gè),步距角應為11.25度,給出的資料那應該叫半步距角.其它的參數均可按照參數圖中進(jìn)行,電機可以用ULN2003A這個(gè)芯片來(lái)驅動(dòng),我決定先不看51hei官方提供的資料和實(shí)例程序,看憑自己的實(shí)力能不能讓這個(gè)小東西轉動(dòng)起來(lái),照著(zhù)圖2的連線(xiàn)圖連了起來(lái)(那4個(gè)指示燈是我自己加上去的.方便觀(guān)察)并且把P1.0,P1.1,P1.2,P1.3四個(gè)I/O口和51hei單片機開(kāi)發(fā)板上的引腳對應,也就是插上了相應的雙排針跳線(xiàn)帽和杜邦線(xiàn),然后自己搗鼓了2個(gè)小時(shí)對照一些資料寫(xiě)了一個(gè)程序燒了進(jìn)STC89C52RC上,上電......哪有一次就成功?折騰了一陣子發(fā)現是四個(gè)I/O口引腳接得不對,改正過(guò)來(lái)后,再上電........還是不成功,仔陣檢查過(guò)硬件電路連接后發(fā)現沒(méi)有錯誤,于是我懷疑起了程序來(lái),經(jīng)研究,發(fā)現此程序并不適合此電機及連線(xiàn)圖,自己一時(shí)大意竟把原該輸出負脈沖的相勵磁脈沖順序變成正的了,呵呵,改了一下之后,發(fā)現可以了.電機終于會(huì )轉了...這時(shí)已是前天晚上的深夜3點(diǎn)多了...
由于此程序采用的是Delay函數進(jìn)行延時(shí)來(lái)改變頻沖頻率的,因此我多次修改延時(shí)的確值,多次調試,發(fā)現電機無(wú)論怎么改,轉速都很慢,最高測過(guò)只有十多轉每分鐘,我的天呀,怎么會(huì )這么慢,然后問(wèn)一下別人,別人說(shuō)有可能是電流不夠,他說(shuō)最好能采用獨立電源來(lái)供電,但是由于未能找到獨立電源,因此沒(méi)有試驗過(guò)電流增大的情況,查資料說(shuō)是會(huì )使力矩增大,但應該不會(huì )使電機轉得更快吧?更何況我的電機也沒(méi)有失步呀....于是我又去問(wèn)另一個(gè)師兄,師兄告訴我有可能是裝了減速裝置了,后來(lái)經(jīng)仔細觀(guān)察,從以下幾點(diǎn)可以大概推斷出電機是裝了減速裝置的:1.從圖1實(shí)物圖中可以看到電機的軸并不在圓形的正中心位置上,一般的只有經(jīng)過(guò)減速裝置的電機才會(huì )這樣的;2.參數圖中給出的參數中存在一個(gè)減速比:1/16這個(gè)參數,確實(shí)證明了它是經(jīng)過(guò)減速的,即:原來(lái)電機的軸轉一圈,輸出軸才轉16分之1圈。想怎么會(huì )不慢?可惜我一開(kāi)始先入為主了,以為那個(gè)“減速比”跟另外一個(gè)概念“調速比”的理解是差不多的(其實(shí)不一樣),所以在看參數圖的時(shí)候并沒(méi)有醒悟過(guò)來(lái),現在想來(lái)感覺(jué)自己相當的不行,做技術(shù)研究的,怎么能夠說(shuō)差不多呢?1就是1,2就是2,雖說(shuō)當時(shí)是處于疑惑的狀態(tài),但歸根究底還是自己先入為主地思考問(wèn)題了,慚愧......3.仔細聽(tīng)一下聲音,發(fā)現電機的聲音頻率是很高的,但輸出軸的角速度卻如此的低,因此有可能是經(jīng)過(guò)減速裝置的......當師兄跟我說(shuō)有可能是經(jīng)過(guò)減速的時(shí)候,我馬上感覺(jué)到更不對頭了.最后師兄還親身拆了這電機來(lái)證實(shí)了,真的有減速裝置...
了解了情況之后,覺(jué)得原來(lái)的程序寫(xiě)得不好,于是折騰了一陣子,寫(xiě)出了一個(gè)用定時(shí)器來(lái)產(chǎn)生脈沖的程序,而且還能利用開(kāi)發(fā)板上的按鍵來(lái)改變電機的轉速和方向,并且在數碼管上進(jìn)行顯示,啊,感覺(jué)51的定時(shí)器還是蠻好用的....今晚也算是有收獲的.這里給大家共享一下官方的電機的源程序:http://www.51hei.com/ziliao/51hei-5/精準控制步進(jìn)電機.rar 可點(diǎn)擊下載,簡(jiǎn)單修改程序可讓電機正反轉.好像在專(zhuān)區還有幾個(gè)類(lèi)似的程序大家自己去找吧.我自己寫(xiě)的太亂就不獻丑了.
再后來(lái)去查了一下資料,發(fā)現原來(lái)步進(jìn)電機的加速程序沒(méi)有我想得那么簡(jiǎn)單(步進(jìn)電機一般都是漸漸加速至正常運行的,太高的啟動(dòng)頻率會(huì )使電機無(wú)法啟動(dòng)),我的想法是用線(xiàn)性加速的辦法,而資料論文中提出的卻是較高級的指數曲線(xiàn)加速的方法,還用到了轉動(dòng)慣量和微積分來(lái)進(jìn)行分析,哎....現在想一下,其實(shí)高數和物理在這里還是有用的,數學(xué)和物理總是分不開(kāi)的,假如想在步進(jìn)電機控制這一領(lǐng)域做得深入,除了電路的基本知識要過(guò)硬外,數學(xué)及物理知識也跑不了的,這樣說(shuō)一來(lái)就是叫自己在大學(xué)的時(shí)間里要好好地學(xué)習高數了,可是實(shí)際上又有幾個(gè)本科的學(xué)生可以知道原來(lái)學(xué)會(huì )高數和大學(xué)物理就是可以這樣應用知識的?學(xué)校里(特別是南醫大這種帶工科類(lèi)的醫科學(xué)校)老師教的時(shí)候會(huì )和我們說(shuō)的那么詳細嗎?顯然不實(shí)際也不可能,可是大學(xué)四年時(shí)間就這樣過(guò)去了,難道我們就這樣讓時(shí)間流走嗎...
在步進(jìn)電機這個(gè)小事上,我覺(jué)得,大學(xué)一兩年里還是該把基礎知識打好的...這樣才能使自己在以后的技術(shù)職業(yè)生涯中不至于處處碰頭,最起碼到時(shí)還記得回來(lái)翻開(kāi)高數的課本,找出無(wú)窮級數在哪一頁(yè)吧?
當然,能一出來(lái)就做ARM的開(kāi)發(fā)或者系統底層移植及驅動(dòng)開(kāi)發(fā)的,是相當的不錯的了,因為那就意味著(zhù)項目經(jīng)驗!!!如果自己決定要往這一方面走,就必須得有所舍棄了......
評論