菜鳥學物聯(lián)網(wǎng)(1)arduino通過DRV8825驅(qū)動擴展板控制步進電機
首先聲明我是個菜鳥,C二級還沒過的一個“大三混混”,沒事喜歡搗鼓點東西,總感覺可能寫篇博客總結(jié)一下做的東西更能加深自己的理解學習。本著拉下臉皮“學習交流分享”的精神,我以后還會在簡書上發(fā)表其他的簡易教程。大神別噴我,我還小,嚶嚶嚶。。。
這回,咱們來搗鼓一個屬于“強電”范疇的步進電機,圖片就像
本文教程基于wiki百科:
SKU: DRI0023 雙路步進電機驅(qū)動擴展板(DRV8825)
上面這個鏈接中的步進電機驅(qū)動擴展板是比較高端的,有藍牙 ,可以無線編程,而我的擴展板(理論上是我們實驗室趙大神的,拿來玩玩,順便順了個14.8V的電源)是沒有的。
有商家給的手冊,英文看不懂,直接來到中文,
已經(jīng)說得很明白了:
電源接口:藍色的最下方那兩個螺絲卡住電源的正負極,板子背后面有正負標志,千萬別接反了,你損失的不止金錢。電源至少8.5V往上。
驅(qū)動板上與控制器相連的引腳:
Vcc、GND什么的直接看圖,EN使能端肯定是先在程序里默認置高,再拉低,將其“使能”,大白話就是我控制器能對驅(qū)動板進行操作了。STP直接用循環(huán)拉低拉高電平方式調(diào)PWN,對,上邊鏈接里的是這樣做的。主要簡單。STP才是真正的功能腳,核心功能我們只通過這個腳實現(xiàn)。DIR? 0正轉(zhuǎn)1反轉(zhuǎn)。OK,知道這么多就可以了。
我們可以用51單片機、stm32單片機等等進行C語言編程,不過我不會,因為我是菜鳥,所以直接用別人的arduino程序。
int M1dirpin = 4;? //電機X方向引腳
int M1steppin = 5;? //電機X驅(qū)動引腳
int M1en=12;? ? ? ? //電機X使能引腳
void setup()
{
? pinMode(M1dirpin,OUTPUT);
? pinMode(M1steppin,OUTPUT);
? pinMode(M1en,OUTPUT);
? digitalWrite(M1en,LOW); //低電平使能
}
void loop()
{
? ? int j;
? delayMicroseconds(2);
? digitalWrite(M1dirpin,LOW);
? for(j=0;j<=5000;j++){
? ? digitalWrite(M1steppin,LOW);
? ? delayMicroseconds(2);
? ? digitalWrite(M1steppin,HIGH);? //上升沿步進
? ? delay(1);
? }
}
arduino先setup,設置自己的輸出腳(pinMode()),初始化電平信號(digitalWrite()),然后在下面的Loop循環(huán)里重復執(zhí)行半個周期為2us的電平拉低又拉高,重復執(zhí)行5000次,中間會停頓1s.
效果圖如下: