時間:2017-12-20 11:19:39來源:網(wǎng)絡(luò)轉(zhuǎn)載
下面就是常見的四線雙極性步進電機的實物圖,上一篇文章里面已經(jīng)說明了步進電機的相關(guān)基礎(chǔ)概念,下面開始進行步進電機的編程:
首先要說明一下:我的步進電機的驅(qū)動芯片時L6219芯片,它是具有細(xì)分功能的,但是由于這里我不想說細(xì)分(其實是我不會啦,嘿嘿,不要打我~(>_<)~),所以我就不深入說明L6219了,我詳細(xì)說明的話大家聽著也頭暈,知識的學(xué)習(xí)是要循序漸進的嘛。所以呢我就只大概地說明一下L6219,同時為了大家好理解,我先把代碼放出來,然后對照著代碼進行講解:
先說一下定義的引腳,四線雙極性步進電機有兩個線圈(或者叫做繞組)要進行通電,所以我們就要用兩個引腳來控制這兩個線圈,我這里定義名字是:PHA和PHB,但是由于L6219的用法,這兩個引腳僅僅只能算作一個標(biāo)志,也就是僅僅只能說明給那個線圈通什么方向的電流,而不能決定通的電流的大小,比如:PHA=0,PHB=1;說明A線圈通負(fù)方向電流,B線圈通的是正方向電流,但是電流究竟多大不是由這兩個引腳決定的,而是由另外兩個引腳決定的。
這兩個引腳我定義他們的名字是:A線圈對應(yīng)的是:A1,A2;B線圈對應(yīng)的就是B1、B2;上圖中的注釋中也已經(jīng)寫明白了,我們姑且把通最大電流當(dāng)作通電,把通最小電流當(dāng)做不通電,那么就可以得出:
當(dāng)A1=A2=0時:線圈A通電。
當(dāng)A1=A2=1時:線圈A不通電。B線圈同理。
但是如果我僅僅說到這里,大家就去寫代碼。假設(shè)你是大神,真的寫了出來,那么肯定就會有不少人遇到一個大問題:“我明明就是按照你說的那個通電方式去寫的啊,為什么我的步進電機總是在顫,死活就是不轉(zhuǎn),延時多長也沒用,你是不是在騙我???”
呃。。。其實我是個好孩紙,不騙人的,所以下面我就說明一下怎么解決這個問題,在這之前我先把我寫的代碼放出來:
一:單拍工作方式:
二:單雙拍工作方式:
大家可以發(fā)現(xiàn)上面三塊代碼的第一行注釋就是工作方式的線圈通電方式,但是第二行是啥?什么“相同”、“不同”的?
這里就是解決步進電機只在顫動卻不轉(zhuǎn)的關(guān)鍵了,雖說步進電機的某個線圈在不通電的時候,電流的方向隨便寫(都不通電了,那不就可以隨便寫嗎?),但是事實卻不是這樣,雖說當(dāng)我們寫A1=A2=1時線圈應(yīng)該是不通電的,但是事實上并不是,它還是有一點點電流的,所以即使我們寫A1=A2=1,線圈的電流方向也不能隨便寫,而是要遵循:兩個線圈的電流方向要"不同"、"相同"交替。(單雙拍工作方式時每兩拍作為一組)的規(guī)則去寫。
如上面三個圖中,PHA和PHB的值都是在“相同”、“不同”之間交替進行,單雙拍的那個是每兩拍作為一組,在“不同”、“相同”之間進行。
這樣就解決了步進電機只顫動不旋轉(zhuǎn)的問題了,但是并不是所有人的問題都是出在這里,看見每一句代碼后面都有一個delay()函數(shù)了嗎?如果delay()函數(shù)的延時時間過短也會引起步進電機只顫動而不旋轉(zhuǎn)。所以大家還是要具體問題具體分析。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。