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