2019年12月6日星期五

Arduino DC Motor control DC馬達控制

紀錄一下 到目前為止的DC直流馬達控制經驗

控制方式常見有以下三種電路架構

1.直接透過MCU的輸出腳控制馬達
2.使用外接電源+BJT/MOSFET控制
3.使用光耦合+BJT/MOSFET+外部供電

說明一下各自的優缺點

1.直接透過MCU的輸出腳控制達

優點:接線簡單
缺點:容易受到馬達瞬間抽載電流影響導致 MCU 重啟或損壞

2.使用外接電源+BJT/MOSFET控制

優點:不會過度抽載MCU提供之電流,保護MCU 的輸出入腳位
缺點:此時的處理方式仍是共同一個地(GND),當馬達有突波或是逆向電壓時,會從地端(GND)打回MCU,導致MCU損壞.

3.使用光耦合+BJT/MOSFET+外部供電

優點:完全不共地, 避免MCU被馬達的瞬間抽載電流損壞,也避開馬達從地端的逆向給電問題
缺點:需要較多的元件.

三種實驗電路架構給大家參考

使用材料

1. arduino uno 板 x1
2. BJT C945          x1
3. DC馬達             x1
4.杜邦線                xn
5.行動電源            x1
6.電源轉接板        x1
7.電阻360 歐姆     x2

直接驅動
BJT驅動
BJT+光耦合電源隔離驅動



結果說明
直接驅動
BJT驅動
BJT+光耦合電源隔離驅動
推不動
推得動
推得動

Arduino Code 
/*******************************************************/
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
/*******************************************************/

實驗影片
使用Arduino UNO 直接推 馬達

使用Arduino UNO +BJT  推馬達

使用Arduino UNO +BJT +光耦合 推 馬達

經驗分享
在拿到任何一顆DC馬達時,首先都要看一下規格,像是多少電壓,運作時會用多少電流
做好電源保護,像是增加防止馬達逆向給電的二極體,MCU的訊號隔離.


沒有留言:

發佈留言

打賞按讚