Arduino 代碼,用於 L9110 雙直流電機控制器模組
喺呢個教學入面,我哋會探討點樣用Arduino同L9110雙摩打控制器模組嚟控制兩個直流摩打。呢個項目會令你可以管理每個摩打嘅方向同速度,適合用喺機械人同自動化等各種應用。完成呢個指南之後,你就會清楚明白點樣接線同寫必要嘅程式碼,令你嘅摩打順暢運行。如果你需要澄清,記得睇吓條片(片入面00:00位置)。
硬件解說
L9110雙直流摩打控制器模組可以同時控制兩個摩打。佢有兩個H橋電路,可以反轉摩打電壓嘅極性。即係話,你可以透過切換控制引腳嚟輕鬆改變每個摩打嘅方向。 呢個模組有四個主要引腳:每個摩打有兩個嚟控制旋轉方向。當你將一個引腳設為高電平、另一個設為低電平,摩打就會向一個方向轉;反轉引腳狀態就會令佢向相反方向轉。呢種靈活性對機械人等應用好重要,因為你需要精確控制摩打嘅動作。數據手冊細節
| 製造商 | STMicroelectronics |
|---|---|
| 零件編號 | L9110 |
| 邏輯/IO電壓 | 2.5–5.5 V |
| 供電電壓 | 2.5–12 V |
| 輸出電流(每通道) | 1 A |
| 峰值電流(每通道) | 2 A |
| PWM頻率建議 | 10 kHz |
| 輸入邏輯閾值 | 0.8 V(低),2.0 V(高) |
| 電壓降 / RDS(on) / 飽和 | 0.3 V @ 1 A |
| 熱限制 | 150 °C |
| 封裝 | DIP-16 |
| 備註 / 變體 | 常用於小型機械人項目。 |
- 確保連續運行時有適當嘅散熱。
- 保持PWM信號低於10 kHz以獲得最佳性能。
- 喺電源連接附近使用去耦電容以減少噪音。
- 小心極性接反;咁會損壞模組。
- 時刻檢查額定電流限制,避免過熱。
接線說明
要將L9110雙直流摩打控制器模組同Arduino接線,首先連接電源引腳。將L9110上嘅VCC引腳連接到Arduino嘅5V輸出,然後將GND引腳連接到Arduino嘅其中一個接地引腳。 跟住,對於摩打A,將A1A引腳連接到Arduino嘅數位引腳2,將A1B引腳連接到數位引腳3。然後,對於摩打B,將B1A引腳連接到數位引腳8,將B1B引腳連接到數位引腳9。確保摩打正確連接到L9110模組上各自嘅輸出。
程式碼示例同解說
喺setup函數入面,我哋需要將控制引腳定義為輸出。呢個對Arduino有效控制摩打方向好重要:void setup() {
pinMode(B1A,OUTPUT);// 將引腳定義為輸出
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
呢段程式碼設定咗摩打控制引腳,確保Arduino可以向L9110模組發送信號。
程式嘅主循環透過調用`motorA`同`motorB`函數並傳遞唔同參數嚟控制摩打方向:
void loop() {
motorA('R');// 將摩打A轉向右
delay(2000);
motorA('L');// 將摩打A轉向左
delay(2000);
motorA('O');// 將摩打A關閉
delay(2000);
...
}
喺呢段摘錄入面,摩打被設定為左右轉動,中間有延遲嚟觀察方向變化。
`motorA`函數係用嚟根據輸入方向控制摩打A:
void motorA(char d) {
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
} else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
} else {
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}
呢個函數會檢查提供嘅方向,然後相應設定控制引腳,令摩打向想要嘅方向轉動或者關閉。
示範 / 預期效果
當你運行呢段程式碼,你應該會見到摩打交替向左同向右轉動。延遲令你可以清楚觀察方向變化。要小心常見嘅錯誤,例如接線反轉,咁可能會導致意外行為或者損壞元件。另外,確保你嘅電源足夠供應所用嘅摩打(片入面00:00位置)。
107-Arduino code for an L9110 dual DC motor controller module
語言: C++
/*
* Display number on a seven-segment display with Arduino
* Written by Ahmad Shamshiri for Robojax.com
Date modified: Jun 11, 2018 at 17:20 in Ajax, Ontario, Canada
Watch video instructions for this code: https://youtu.be/-g6Q9lSHDzg
Code is provided for free AS IS without warranty.
You can share this code as long as you keep the above note intact.
*/
const int A1A = 2;//define pin 2 for A1A
const int A1B = 3;//define pin 3 for A1B
const int B1A = 8;//define pin 8 for B1A
const int B1B = 9;//define pin 9 for B1B
void setup() {
pinMode(B1A,OUTPUT);// define pin as output
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
void loop() {
motorA('R');// Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
delay(2000);
motorA('O');// Turn motor A OFF
delay(2000);
motorB('R');// Turn motor B to RIGHT
delay(2000);
motorB('L');// Turn motor B to LEFT
delay(2000);
motorB('O');// Turn motor B OFF
delay(2000);
motorA('R');// Turn motor A to RIGHT
motorB('R'); // Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
motorB('L');// Turn motor B to LEFT
delay(3000);
motorA('O');// Turn motor A OFF
motorB('O');// Turn motor B OFF
delay(5000);
}
/*
* @motorA
* Activation rotation of motor A
* d is the direction
* R = Right
* L = Left
*/
void motorA(char d)
{
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
}else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}// motorA end
/*
* @motorB
* Activation rotation of motor B
* d is the direction
* R = Right
* L = Left
*/
void motorB(char d)
{
if(d =='R'){
digitalWrite(B1A,LOW);
digitalWrite(B1B,HIGH);
}else if(d =='L'){
digitalWrite(B1A,HIGH);
digitalWrite(B1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(B1A,LOW);
digitalWrite(B1B,LOW);
}
}// motorB end
你可能需要嘅嘢
-
亞馬遜
-
易贝
-
阿里巴巴速卖通Purchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
資源與參考資料
暫時冇資源。
文件📁
数据表 (pdf)
-
L9110 Motor driver module datasheetL9110 motor driver module datasheet covering pinout, specifications, and application circuit for driving DC motors.
robojax_L9110_datasheet.pdf0.20 MB
Fritzing 文件
-
L9110 H-bridge Motor driver module
L9110 H-bridge module.fzpz0.04 MB