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