步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓位移的開(kāi)環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱(chēng)為"步距角",它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。可以通過(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。
步進(jìn)電機(jī)是一種感應(yīng)電機(jī),它的工作原理是利用電子電路,將直流電變成分時(shí)供電的,多相時(shí)序控制電流,用這種電流為步進(jìn)電機(jī)供電,步進(jìn)電機(jī)才能正常工作,驅(qū)動(dòng)器就是為步進(jìn)電機(jī)分時(shí)供電的,多相時(shí)序控制器。我們通過(guò)給驅(qū)動(dòng)器提供不同數(shù)量的高低電平來(lái)控制電機(jī)旋轉(zhuǎn)的角度。
我們計(jì)算需要的脈沖數(shù),需要先了解驅(qū)動(dòng)器的細(xì)分步數(shù)。每個(gè)驅(qū)動(dòng)器都可以設(shè)置其細(xì)分步數(shù),我們選擇需要的細(xì)分步數(shù)然后計(jì)算脈沖數(shù)。如選擇細(xì)分步數(shù)為3600,則步進(jìn)角=360/3600=0.1°。代表我們每提供一個(gè)高低脈沖(注意1個(gè)高電壓+1個(gè)低電壓才算一個(gè)脈沖)電機(jī)選裝0.1°,則若我們想要旋轉(zhuǎn)100°,那么只需要提供1000個(gè)脈沖即可。
下面詳細(xì)的說(shuō)一下實(shí)現(xiàn)的具體方法,我們可在接收到軟件給我們下發(fā)的旋轉(zhuǎn)一定的角度命令后,計(jì)算需要旋轉(zhuǎn)的脈沖數(shù),然后可通過(guò)定時(shí)器控制高低電平持續(xù)的時(shí)間(通過(guò)控制持續(xù)的時(shí)間我們就可以控制我們電機(jī)的旋轉(zhuǎn)速度),在每次高低電平反轉(zhuǎn)時(shí)(此時(shí)會(huì)進(jìn)到定時(shí)器中斷中)我們就可將設(shè)置的變量值+1(注意變量須從0開(kāi)始計(jì)數(shù)),在判斷設(shè)置的變量是否為我們計(jì)算的脈沖數(shù)的2倍(高低電平需要進(jìn)行翻轉(zhuǎn)2次才是1個(gè)脈沖),若是則證明電機(jī)已旋轉(zhuǎn)到我們需要的角度,則控制電機(jī)停下,若不是則需要繼續(xù)計(jì)數(shù),直到計(jì)數(shù)值滿(mǎn)足我們的需求在將電極停下。等待下次命令的到來(lái),我們?cè)谶M(jìn)行下次的旋轉(zhuǎn)。經(jīng)過(guò)以上的操作我們就實(shí)現(xiàn)了電機(jī)旋轉(zhuǎn)角度的控制。
看到這里是不是感覺(jué)步進(jìn)電機(jī)的控制很簡(jiǎn)單,手里有步進(jìn)電機(jī)的小伙伴是不是等不及的需要實(shí)驗(yàn)一下了呢······
上面的例子細(xì)分步數(shù)正好是360的整倍數(shù),若不是整倍數(shù)則我們?cè)谟?jì)算脈沖數(shù)的時(shí)候就會(huì)得不到整數(shù),在多次旋轉(zhuǎn)時(shí)就會(huì)積累大角度誤差,影響我們的旋轉(zhuǎn)精度,如何提高旋轉(zhuǎn)精度就使我們下面需要研究的問(wèn)題了,有的小伙伴會(huì)說(shuō)可以用編碼器,但是一個(gè)精度高的編碼器價(jià)格會(huì)昂貴很多,剛剛學(xué)習(xí)步進(jìn)電機(jī)使用的小伙伴可以先不必在意編碼器的問(wèn)題,那么如何在沒(méi)有編碼器的情況下提高旋轉(zhuǎn)精度呢?下篇文章‘如何在沒(méi)有編碼器的情況下提高步進(jìn)電機(jī)旋轉(zhuǎn)精度’的文章你值得閱讀。