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。
這樣可以好好觀察,輸出是否有在運作。










留言

這個網誌中的熱門文章

【研究】列印的條碼為什麼很難刷(掃描)

C# 使用 Process.Start 執行外部程式

統一發票列印小程式