Step 1:電動機(jī)和驅(qū)動器
電動機(jī)是許多機(jī)器人和電子項目不可分割的一部分,根據(jù)其應(yīng)用可以使用不同的類型。以下是有關(guān)不同類型的電動機(jī)的一些信息:
直流電動機(jī):直流電動機(jī)是可用于多種應(yīng)用的最常見的發(fā)動機(jī)類型。我們可以在遙控車,機(jī)器人等中看到它。該電動機(jī)具有簡單的結(jié)構(gòu)。通過在其兩端施加適當(dāng)?shù)碾妷簛黹_始滾動,并通過切換電壓極性來改變其方向。直流電動機(jī)的速度直接由施加的電壓控制。當(dāng)電壓電平小于最大容許電壓時,速度將降低。
步進(jìn)電機(jī):在某些項目中,例如3D打印機(jī),掃描儀和CNC機(jī)床,我們需要知道準(zhǔn)確地旋轉(zhuǎn)電機(jī)。在這種情況下,我們使用步進(jìn)電機(jī)。步進(jìn)電動機(jī)是將整個旋轉(zhuǎn)分為多個相等步長的電動機(jī)。每步的旋轉(zhuǎn)量由電機(jī)結(jié)構(gòu)決定。這些電動機(jī)具有非常高的精度。
伺服電動機(jī):伺服電動機(jī)是具有位置控制服務(wù)的簡單直流電動機(jī)。通過使用伺服器,您將能夠控制軸的旋轉(zhuǎn)量并將其移動到特定位置。它們通常尺寸較小,是機(jī)械臂的最佳選擇。
但是我們不能將這些電機(jī)直接連接到微控制器或控制器板(例如Arduino)以控制它們,因為它們可能需要更多電流微控制器無法驅(qū)動,因此我們需要驅(qū)動程序。驅(qū)動器是電動機(jī)和控制單元之間的接口電路,以促進(jìn)驅(qū)動。驅(qū)動器有許多不同的類型。在本說明中,您將學(xué)習(xí)如何在L293D電動機(jī)屏蔽罩上工作。
L293D屏蔽罩是基于L293 IC的驅(qū)動器板,可以同時驅(qū)動4個DC電動機(jī)和2個步進(jìn)或伺服電動機(jī)。/p》
此模塊的每個通道的最大電流為1.2A,如果電壓大于25v或小于4.5v,則該通道不起作用。因此,請根據(jù)其標(biāo)稱電壓和電流選擇合適的電動機(jī),以防萬一。有關(guān)此屏蔽的更多功能,請?zhí)峒芭cArduini UNO和MEGA的兼容性,在非常規(guī)電壓升高的情況下電動機(jī)的電磁和熱保護(hù)以及斷開電路的功能。
步驟2:如何使用Arduino L293D電動機(jī)驅(qū)動器屏蔽?
使用此屏蔽時有6個模擬引腳(也可以用作數(shù)字引腳),而arduino的引腳2和13則是免費的。 p》
使用伺服電機(jī)時,使用引腳9、10、2。
使用直流電機(jī)時,#1使用引腳11,#2使用引腳3,5使用引腳#3,#4的引腳6和所有引腳4、7、8和12都在使用中。
在使用步進(jìn)電機(jī)的情況下,#1的引腳11和3、5和5 #2為6,所有引腳都為4、7、8和12。
您可以通過有線連接使用免費的引腳。
如果使用單獨的電源為Arduino和屏蔽供電,請確保已斷開屏蔽上的跳線。
步驟3:驅(qū)動直流電動機(jī)
#include
控制電動機(jī)所需的庫:
AF_DCM電動機(jī)(1 ,MOTOR12_64KHZ)
定義正在使用的直流電動機(jī)。
第一個參數(shù)代表屏蔽中的電動機(jī)數(shù)量,第二個參數(shù)代表屏蔽中的電動機(jī)數(shù)量。代表電動機(jī)速度控制頻率。對于1號和2號電動機(jī),第二個參數(shù)可以是MOTOR12_2KHZ,MOTOR12_8KHZ,MOTOR12_8KHZ和MOTOR12_8KHZ,對于3號和4號電動機(jī)可以是MOTOR12_8KHZ,MOTOR12_8KHZ和MOTOR12_8KHZ,如果未選中,則默認(rèn)為1KH。
motor.setSpeed(200);
定義電動機(jī)速度。可以在0到255之間設(shè)置。
void loop(){
電動機(jī)。 run(FORWARD);
delay(1000);
motor.run(BACKWARD);
delay(1000);
motor.run(RELEASE);
delay(1000);
}
功能motor.run()指定電動機(jī)的運動狀態(tài)。狀態(tài)可以是FORWARD,BACKWARD和RELEASE。釋放與制動器相同,但是可能要花一些時間才能使電動機(jī)完全停止。
建議在每個電動機(jī)引腳上焊接一個100nF的電容器,以降低噪聲。
第4步:驅(qū)動伺服電機(jī)
Arduino IDE庫和示例適用于驅(qū)動伺服電機(jī)。
#include
驅(qū)動伺服電動機(jī)所需的庫
Servo myservo;
定義伺服電機(jī)對象。
void setup()
{
myservo.attach(9);
}
確定連接到伺服的引腳。(伺服#1的引腳9和伺服#2的引腳10)
void loop()
{
myservo.write(val);
延遲(15);
}
確定電機(jī)旋轉(zhuǎn)量。
第5步:驅(qū)動步進(jìn)電機(jī)
#include 《 AFMotor.h》
確定所需的庫
AF_Stepper motor(48,2);
定義步進(jìn)電機(jī)對象。第一個參數(shù)是電機(jī)步進(jìn)分辨率。 (例如,如果您的電動機(jī)的精度為7.5度/步,則表示電動機(jī)的步長分辨率為。第二個參數(shù)是連接到屏蔽罩的步進(jìn)電動機(jī)的編號。
void setup(){
motor.setSpeed(10);
motor.onestep(FORWARD,SINGLE);
motor.release();
延遲(1000);
}
void loop(){
motor.step(100,F(xiàn)ORWARD,SINGLE);
motor.step(100,BACKWARD,SINGLE);
motor.step(100,F(xiàn)ORWARD,DOUBLE);
motor.step(100,BACKWARD,DOUBLE);
motor.step(100,F(xiàn)ORWARD,INTERLEAVE);
motor.step(100,BACKWARD,INTERLEAVE);
motor.step(100,F(xiàn)ORWARD,MICROSTEP);
motor.step(100,BACKWARD,MICROSTEP);
}
確定電機(jī)轉(zhuǎn)速(rpm)。
第一個參數(shù)是移動所需的步長,第二個參數(shù)是確定方向(前進(jìn)或后退),第三個參數(shù)確定步長類型:單(激活一個線圈),雙(激活兩個線圈以獲得更大的扭矩) ,INTERLEAVED(線圈的數(shù)量從一到兩個連續(xù)變化,反之亦然,直到雙精度),但是,在這種情況下,速度減半)和MICROSTEP(緩慢改變步驟以提高精度)。在這種情況下,扭矩較低。)默認(rèn)情況下,當(dāng)電動機(jī)停止移動時,電動機(jī)將保持其狀態(tài)。
您必須使用函數(shù) motor.release() 》 釋放電動機(jī)。
步驟6:購買Arduino L293D電動機(jī)驅(qū)動器護(hù)罩
從ElectroPeak購買Arduino L293D護(hù)罩
-
電機(jī)驅(qū)動器
+關(guān)注
關(guān)注
16文章
646瀏覽量
64730 -
Arduino
+關(guān)注
關(guān)注
188文章
6472瀏覽量
187321 -
L293D
+關(guān)注
關(guān)注
4文章
50瀏覽量
20117
發(fā)布評論請先 登錄
相關(guān)推薦
評論