你的位置:首頁 > 電源管理 > 正文

網(wǎng)友分享:基于Arduino的直流電機(jī)控制

發(fā)布時(shí)間:2014-06-03 責(zé)任編輯:willwoyo

【導(dǎo)讀】:Arduino正在引領(lǐng)開源硬件的興起,使得越來越多的人不需要科班出身就能夠快速進(jìn)行電子方案的DIY制作。這里分享一個(gè)網(wǎng)友發(fā)布的,基于Arduino的直流電子控制方案,供大家參考。

硬件資源

這個(gè)Arduino 雙H橋直流電機(jī)驅(qū)動(dòng)板,藍(lán)色的板子,金色的印字,做工真的很精美,物有所值,吼吼~剛拿到的驅(qū)動(dòng)板當(dāng)務(wù)之急就是要了解一下這款驅(qū)動(dòng)板接口說明和參數(shù)指南。
Arduino直流電機(jī)驅(qū)動(dòng)板的硬件資源
圖1 Arduino直流電機(jī)驅(qū)動(dòng)板的硬件資源

可以看到板子左、右下角分別有兩個(gè)直流電機(jī)控制信號輸入接口,我這里準(zhǔn)備了一個(gè)從玩具小車上拆下來的電機(jī),我就選擇左邊的接口,將直流電機(jī)接入綠色端子,左下角的信號輸入接口三個(gè)插針分別是EA、I1、I2,EA是區(qū)別于右邊的EB,是用來接入PWM接口給電機(jī)調(diào)速的,I1、I2分別接入數(shù)字接口就OK了,是用來控制電機(jī)轉(zhuǎn)向的。我就將EA接入Arduino的pin11PWM接口,I1、I2分別接8、9數(shù)字接口,至于邏輯供電部分,我就直接接入Arduino板子上的5V輸出接口了,這里也可以不接線,因?yàn)檫@款驅(qū)動(dòng)板子是可以板內(nèi)取電的,如需要板外取電需將控制板內(nèi)取電的跳線帽取下(這里我只是為了給網(wǎng)友們演示外部取電的使用方法,我并沒有取下板內(nèi)取電的跳線帽,如圖接線實(shí)際上仍是板內(nèi)取電。這里希望沒有造成誤導(dǎo)),端子左邊的VMS接口是驅(qū)動(dòng)部分取電,我接入四節(jié)5號電池,按下圖連接好電路。

電機(jī)控制程序


連接好電路就剩編程的工作了,我就讓電機(jī)先順時(shí)針轉(zhuǎn)兩秒,再逆時(shí)針轉(zhuǎn)兩秒,再讓電機(jī)停止轉(zhuǎn)動(dòng),這樣循環(huán)進(jìn)行。

int pinI1=8;//定義I1接口
int pinI2=9;//定義I2接口
int speedpin=11;//定義EA(PWM調(diào)速)接口
void setup()
{
  pinMode(pinI1,OUTPUT);//定義該接口為輸出接口
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin,OUTPUT);
}
void loop()
{
  analogWrite(speedpin,100);//輸入模擬值進(jìn)行設(shè)定速度
  delay(2000);
  digitalWrite(pinI1,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
  digitalWrite(pinI2,HIGH);
  analogWrite(speedpin,100);
  delay(2000);
  digitalWrite(pinI1,HIGH);//使直流電機(jī)逆時(shí)針轉(zhuǎn)
  digitalWrite(pinI2,LOW);
  analogWrite(speedpin,100);
  delay(2000);
  digitalWrite(pinI1,HIGH);//使直流電機(jī)停止

  digitalWrite(pinI2,HIGH);

  delay(2000);

}

有一點(diǎn)值得注意,一般情況電機(jī)的速度與電機(jī)以及其負(fù)載都有關(guān)系,所以速度要根據(jù)實(shí)際情況調(diào)節(jié)。
Arduino直流電機(jī)方案圖
圖2,Arduino直流電機(jī)方案圖


要采購跳線么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉