菜鳥學(xué)物聯(lián)網(wǎng)(1)arduino通過(guò)DRV8825驅(qū)動(dòng)擴(kuò)展板控制步進(jìn)電機(jī)
首先聲明我是個(gè)菜鳥宙橱,C二級(jí)還沒(méi)過(guò)的一個(gè)“大三混混”疙筹,沒(méi)事喜歡搗鼓點(diǎn)東西,總感覺(jué)可能寫篇博客總結(jié)一下做的東西更能加深自己的理解學(xué)習(xí)。本著拉下臉皮“學(xué)習(xí)交流分享”的精神旦签,我以后還會(huì)在簡(jiǎn)書上發(fā)表其他的簡(jiǎn)易教程。大神別噴我寸宏,我還小宁炫,嚶嚶嚶。氮凝。羔巢。
這回,咱們來(lái)?yè)v鼓一個(gè)屬于“強(qiáng)電”范疇的步進(jìn)電機(jī)罩阵,圖片就像
本文教程基于wiki百科:
SKU: DRI0023 雙路步進(jìn)電機(jī)驅(qū)動(dòng)擴(kuò)展板(DRV8825)
上面這個(gè)鏈接中的步進(jìn)電機(jī)驅(qū)動(dòng)擴(kuò)展板是比較高端的竿秆,有藍(lán)牙 ,可以無(wú)線編程稿壁,而我的擴(kuò)展板(理論上是我們實(shí)驗(yàn)室趙大神的幽钢,拿來(lái)玩玩,順便順了個(gè)14.8V的電源)是沒(méi)有的傅是。
有商家給的手冊(cè)匪燕,英文看不懂,直接來(lái)到中文喧笔,
已經(jīng)說(shuō)得很明白了:
電源接口:藍(lán)色的最下方那兩個(gè)螺絲卡住電源的正負(fù)極帽驯,板子背后面有正負(fù)標(biāo)志,千萬(wàn)別接反了书闸,你損失的不止金錢尼变。電源至少8.5V往上。
驅(qū)動(dòng)板上與控制器相連的引腳:
Vcc梗劫、GND什么的直接看圖享甸,EN使能端肯定是先在程序里默認(rèn)置高截碴,再拉低,將其“使能”蛉威,大白話就是我控制器能對(duì)驅(qū)動(dòng)板進(jìn)行操作了日丹。STP直接用循環(huán)拉低拉高電平方式調(diào)PWN,對(duì)蚯嫌,上邊鏈接里的是這樣做的哲虾。主要簡(jiǎn)單。STP才是真正的功能腳择示,核心功能我們只通過(guò)這個(gè)腳實(shí)現(xiàn)束凑。DIR? 0正轉(zhuǎn)1反轉(zhuǎn)。OK栅盲,知道這么多就可以了汪诉。
我們可以用51單片機(jī)、stm32單片機(jī)等等進(jìn)行C語(yǔ)言編程谈秫,不過(guò)我不會(huì)扒寄,因?yàn)槲沂遣锁B,所以直接用別人的arduino程序拟烫。
int M1dirpin = 4;? //電機(jī)X方向引腳
int M1steppin = 5;? //電機(jī)X驅(qū)動(dòng)引腳
int M1en=12;? ? ? ? //電機(jī)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);? //上升沿步進(jìn)
? ? delay(1);
? }
}
arduino先setup,設(shè)置自己的輸出腳(pinMode())该编,初始化電平信號(hào)(digitalWrite()),然后在下面的Loop循環(huán)里重復(fù)執(zhí)行半個(gè)周期為2us的電平拉低又拉高硕淑,重復(fù)執(zhí)行5000次课竣,中間會(huì)停頓1s.
效果圖如下: