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