專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> Arduino >> 瀏覽文章

Arduino電機(jī)驅(qū)動(dòng)模塊(293D)使用

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月02日   【字體:

  前段時(shí)間從淘寶上掏到了一塊可控制4個(gè)電機(jī)的293D驅(qū)動(dòng)板,今天終于有空可以搬出來測試了。

Arduino電機(jī)擴(kuò)展板可使Arduino成為簡易機(jī)器人和機(jī)電一體化很好的平臺(tái)。

2路5V的簡易舵機(jī)連接,最多4路雙向直流電機(jī)連接,2個(gè)步進(jìn)電機(jī)連接。
4個(gè)H-橋 L293D芯片提供0.6A每橋(1.2A峰值)帶過熱保護(hù),電壓從4.5V至36V可選。
Arduino 復(fù)位按鈕移到了頂層。

它們帶有一個(gè)3線母頭插座連接到+5V,地和信號(hào)輸入。

電機(jī)驅(qū)動(dòng)板只需提供16bit PWM 輸出線至23線連接頭所以操作及其簡單,它們需要消耗大量的電流因此不能使用9v疊層電池來供電。
好消息是使用板載的PWM非常精準(zhǔn)和在后臺(tái)運(yùn)行控制。
你可以使Arduino自帶的Servo庫。

使用伺服電機(jī)非常簡單,請(qǐng)參考官方的Arduino文檔關(guān)于如何使用它們以及IDE中的伺服器例子代碼。

 

  直流電機(jī)被使用在各種類型的機(jī)器人項(xiàng)目。這款電機(jī)驅(qū)動(dòng)板可以驅(qū)動(dòng)四路直流雙向電機(jī)。意味著他們可以正轉(zhuǎn)或者反轉(zhuǎn)。速度同樣可以以0.5%的增量變化使用內(nèi)嵌的高質(zhì)量的PWM。這意味著電機(jī)調(diào)速非常平滑和穩(wěn)定!

(注意H-橋芯片的驅(qū)動(dòng)負(fù)荷并不是真正超過0.6A 或者峰值超過1.2A 所以只適用于微型電機(jī)。查閱數(shù)據(jù)手冊(cè)來確定電機(jī)是否適用。)


  連接電機(jī)只需將焊接電機(jī)引線連然后接到板子上的電機(jī)連接端子M1, M2, M3,orM4。然后按照下面的步驟來創(chuàng)建你的程序:

1.確定你導(dǎo)入了<AFMotor.h>


2.使用AF_DCMotor(motor#, frequency)創(chuàng)建 AF_DCMotor 對(duì)象, 來設(shè)置電機(jī)H橋和制動(dòng)。構(gòu)造器帶有兩個(gè)參數(shù)。第一個(gè)motor#是要鏈接的電機(jī)端口,1, 2, 3or4,第二個(gè)frequency是電機(jī)轉(zhuǎn)速控制量.


電機(jī)1和2你可以選擇MOTOR12_64KHZ,MOTOR12_8KHZ,MOTOR12_2KHZ,orMOTOR12_1KHZ。一個(gè)高速例如 64KHz 將聽得見聲音但是一個(gè)低速例如1KHz將使用更少的能耗。電機(jī) 3 和 4 只能運(yùn)行在1KHz 并且會(huì)忽略任何的設(shè)置。


3.然后你可以通過setSpeed(speed)設(shè)置電機(jī)的速度,speed  范圍從0(停止)到255(全速)。你可以設(shè)置任何你想要的速度。


4.為了運(yùn)行電機(jī),調(diào)用run(direction)direction為FORWARD,BACKWARD或者RELEASE。當(dāng)然,Arduino 實(shí)際不知道電機(jī)是正轉(zhuǎn)還是反轉(zhuǎn),所以如果你想改變正反轉(zhuǎn)的方法,只需簡單的交換電機(jī)的接線。

#include <AFMotor.h>

AF_DCMotor motor(2, MOTOR12_64KHZ);// 創(chuàng)建電機(jī)#2號(hào),速度是64KHz pwm

void setup() {
Serial.begin(9600);// set up Serial library at 9600 bps
Serial.println("Motor test!");

motor.setSpeed(200);// 設(shè)置速度,從200/255之間任意
}

void loop() {
Serial.print("tick");

motor.run(FORWARD);// 電機(jī)前進(jìn)

delay(1000);

Serial.print("tock");
motor.run(BACKWARD);// 電機(jī)后退
delay(1000);

Serial.print("tack");
motor.run(RELEASE);// 停止
delay(1000);
}

 

關(guān)閉窗口

相關(guān)文章