在本項目中,我們將為基于電機的應用制作一個 8 通道電機驅動器模塊電路。在該電路中,我們設計了用于驅動直流或步進電機的PCB。通過使用此電機驅動板,我們可以一次操作 8 個直流電機或四個 4 線步進電機。在這塊板中,我們使用了很少的三針螺釘接線端子和防盜尺,它們由相同的引腳連接,因此您可以使用防盜桿或電線來連接電機。在這里,我們使用了四個L293D電機驅動器IC來驅動電機。
所需組件:
電機驅動器IC L293D -4
104 電容器 -4
2 針螺釘接線端子 -8
3 針接線端子 -1
貼片發光二極管 -1
印刷電路板 (從JLCPCB訂購) -1
電阻 1k -1
伯格棍男
連接線
電機驅動電路說明:
在本電機驅動器電路中,我們使用了四個L293D電機驅動器IC來驅動電機。該板能夠一次驅動 8 個直流電機或 4 個步進電機。用戶可以使用此板來構建基于直流或步進電機的項目,如機械臂、線路跟隨器、土地強盜、迷宮跟隨器和許多其他項目。該板可以使用微控制器進行控制。該板具有用于連接電機的螺絲端子和防盜器。在這里,我們使用盜斗將控制引腳連接到微控制器或Arduino。該板具有跳線引腳,用于選擇硬件控制模式或軟件控制模式,這意味著用戶可以通過編程或使用跳線連接器將跳線放入硬件電機驅動板來控制這些引腳。該板具有 12v、5v 電源選項。還有一些通用孔可用于放置任何所需的組件。
我們設計了易于理解的電路板。用戶可以通過讀取引腳名稱來了解連接(在PCB板上提及)。
工作和演示:
為了演示,我們使用Arduino板來控制2個直流電機和1個步進電機。我們已在 L293D 的 8、9、10 和第 11 個引腳(In21、In22、In23 和 In24 電機驅動器引腳)上連接步進電機,并且通過使用跳線連接器將 HIGH 置于硬件控制模式,將使能引腳(跳線)設置為硬件控制模式。
直流電機連接在 L293D 的第 3、4、5 和 6 引腳(IN11、IN12、IN13、IN14 電機驅動板引腳)上,使能引腳(跳線)設置為軟件控制模式,連接在 2、3 引腳(1EN12 和 1EN34 電機驅動器引腳)。5V電源用于為電路和電機供電。
以下是我們用來演示此電機驅動器模塊的Arduino代碼:
#include
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 10, 9, 8, 11);
#define _1EN12 2
#define _1EN34 3
#define IN11 4
#define IN12 5
#define IN13 6
#define IN14 7
void setup()
{
pinMode(_1EN12, OUTPUT);
pinMode(_1EN34, OUTPUT);
pinMode(IN11, OUTPUT);
pinMode(IN12, OUTPUT);
pinMode(IN13, OUTPUT);
pinMode(IN14, OUTPUT);
digitalWrite(_1EN12, LOW);
digitalWrite(_1EN34, LOW);
}
void loop()
{
stepperMotor();
delay(5000);
forwardFirstMotor();
startFirstMotor();
delay(5000);
stopFirstMotor();
delay(2000);
forwardSecondMotor();
startSecondMotor();
delay(5000);
stopSecondMotor();
delay(2000);
startFirstMotor();
startSecondMotor();
delay(5000);
stopFirstMotor();
stopSecondMotor();
delay(2000);
reverseFirstMotor();
startFirstMotor();
delay(5000);
stopFirstMotor();
delay(2000);
reverseSecondMotor();
startSecondMotor();
delay(5000);
stopSecondMotor();
delay(2000);
startFirstMotor();
startSecondMotor();
delay(5000);
stopFirstMotor();
stopSecondMotor();
delay(2000);
forwardFirstMotor();
startFirstMotor();
startSecondMotor();
delay(5000);
stopFirstMotor();
stopSecondMotor();
delay(2000);
reverseFirstMotor();
forwardSecondMotor();
startFirstMotor();
startSecondMotor();
delay(5000);
stopFirstMotor();
stopSecondMotor();
delay(2000);
}
void forwardFirstMotor()
{
digitalWrite(IN11, HIGH);
digitalWrite(IN12, LOW);
}
void forwardSecondMotor()
{
digitalWrite(IN13, HIGH);
digitalWrite(IN14, LOW);
}
void reverseFirstMotor()
{
digitalWrite(IN11, LOW);
digitalWrite(IN12, HIGH);
}
void reverseSecondMotor()
{
digitalWrite(IN13, LOW);
digitalWrite(IN14, HIGH);
}
void stopFirstMotor()
{
digitalWrite(_1EN12, LOW);
}
void stopSecondMotor()
{
digitalWrite(_1EN34, LOW);
}
void startFirstMotor()
{
digitalWrite(_1EN12, HIGH);
}
void startSecondMotor()
{
digitalWrite(_1EN34, HIGH);
}
void stepperMotor()
{
for(int i=0;i<2000;i++)
{
myStepper.step(1);
delay(10);
}
}
-
電機
+關注
關注
142文章
9038瀏覽量
145737 -
電機驅動器
+關注
關注
16文章
646瀏覽量
64730 -
模塊電路
+關注
關注
3文章
33瀏覽量
11475 -
PCB
+關注
關注
1文章
1813瀏覽量
13204
發布評論請先 登錄
相關推薦
評論