Arduino 控制 - 使用 L293D 來驅動馬達
L293D 式一顆用雙路直流馬達的控制器,用這顆 IC 可以用來驅動一般的小型馬達/玩具馬達之類的,相當方便。
其內部結構大概就是一個 4路半H橋式驅動電路。
Pin 2 與 Pin 7 屬於一對,Pin 10 與 Pin 15 也屬於一對。
Pin 1 與 Pin 9 雖然做為 Enable 接腳,但是也可以輸入 PWM 訊號來控制馬達出力的力度。
Pin 8 是提供給馬達的電力,可以獨立供給,也可以和 Pin 16 的 Vcc 共用。
底下是利用 Arduino 做的簡易的控制電路:
藍色 LED 是用來觀察 PWM 的強度用的,可以不接。
我這邊另外用 9V 提供給 L293D 來驅動馬達,速度會比較快。
程式碼方塊如下:
程式源碼如下:
int counter;
int counter2;
void setup()
{
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
analogWrite(3, 255);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
for (counter = 0; counter < 5; ++counter) {
digitalWrite(13, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(13, LOW);
delay(500); // Wait for 500 millisecond(s)
}
analogWrite(3, 64);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
for (counter2 = 0; counter2 < 5; ++counter2) {
digitalWrite(13, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(13, LOW);
delay(500); // Wait for 500 millisecond(s)
}
}
在程式裡面有個重複5次的迴圈,裡面每 0.5 秒,點滅主板上的 LED。
這樣可以好好觀察,輸出是否有在運作。
留言