Mạch điều khiển động cơ DC L9110 sử dụng 2 IC L9110S có khả năng điều khiển 2 động cơ DC riêng biệt và một động cơ bước, mạch có thiết kế nhỏ gọn, phù hợp để chế tạo các mô hình robot nhỏ, điều khiển động cơ công suất thấp.Các bo mạch có thể hoạt động từ 2.5 V đến 12 V cho phép mô-đun này được sử dụng với cả vi điều khiển 3.3V và 5V.
Thông số kỹ thuật
- Điện áp hoạt động: 2.5 ~ 12VDC
- Số kênh điều điều khiển: 2 kênh ( 2 động cơ)
- Dòng cực đại mỗi kênh: 800mA
Lưu ý: Hai chân được kết nối với mỗi động cơ DC có thể là PWM hoặc kỹ thuật số. Nếu được định nghĩa là kỹ thuật số, nó chỉ có thể điều khiển hướng chuyển động của động cơ.
Bạn có thể thấy hai mô-đun tương tự dựa trên IC L9110 trong hình bên dưới.
H-Bridge - Để điều khiển hướng quay
Chiều quay của động cơ DC có thể được điều khiển bằng cách thay đổi cực tính của điện áp đầu vào của nó. Một kỹ thuật phổ biến để làm điều này là sử dụng H-Bridge.
Một mạch cầu H chứa bốn công tắc với động cơ ở tâm tạo thành một sự sắp xếp giống như H.
Việc đóng đồng thời hai công tắc cụ thể sẽ đảo ngược cực tính của điện áp đặt vào động cơ. Điều này gây ra sự thay đổi hướng quay của động cơ.
Hình ảnh động bên dưới minh họa mạch H-Bridge hoạt động.
Sơ đồ chân mạch điều khiển kênh đôi L9110
Mô-đun này có các chân sau:
- VCC : Nguồn cấp (2.5-12V)
- GND : Nối đất
- MA: Chân kết nối motor A
- MB: Chân kết nối motor B
- A-1: Tín hiệu điều khiển động cơ A
- A-2: Tín hiệu điều khiển động cơ A
- B-1: Tín hiệu điều khiển động cơ B
- B-2: Tín hiệu điều khiển động cơ B
IA(1) | IB(2) | Trạng thái động cơ |
---|---|---|
LOW | LOW | Dừng |
HIGH | LOW | Quay thuận |
LOW | HIGH | Quay nghịch |
HIGH | HIGH | Dừng |
Lưu ý: Hướng thực tế mà động cơ quay "Tiến" và "Lùi" sẽ phụ thuộc vào cách nó được định hướng và nối dây. Nếu động cơ của bạn quay sai hướng, hãy hoán đổi dây động cơ kết nối với các đầu ra hoặc thay đổi cách thiết lập các bit IA và IB trong chương trình của bạn.
Giao tiếp mạch điều khiển L9110S với Arduino
Bước 1: Kết nối mạch
2 hình ảnh dưới đây cho thấy cách bạn nên kết nối Arduino với các mô-đun này. Kết nối dây cho phù hợp.
ARDUINO | L9110 |
---|---|
D5 | A1 |
D6 | A2 |
D10 | B1 |
D11 | B2 |
Lưu ý: Kết nối chân GND của Arduino với chân GND của nguồn.
Cẩn thận: Không sử dụng nguồn điện lớn hơn nguồn của động cơ.
Bước 2: Code
Tải đoạn code sau lên Arduino của bạn
/*
L9110S-Stepper-DC-motor-Driver-Module
made on 28 oct 2020
by Amir Mohammad Shojaee @ truongcongly.com
*/
#define A1 5 // Motor A pins
#define A2 6
#define B1 10 // Motor B pins
#define B2 11
int incomingByte = 0; // for incoming serial data
void setup() {
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(B2, OUTPUT);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(B1, LOW);
digitalWrite(B2, LOW);
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
Serial.println("select direction of movement");
Serial.println("1.forward");
Serial.println("2.backward");
Serial.println("3.stop");
}
int input = 0;
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
input = incomingByte - 48; //convert ASCII code of numbers to 1,2,3
switch (input) {
case 1: // if input=1 ....... motors turn forward
forward();
break;
case 2: // if input=2 ....... motors turn backward
backward();
break;
case 3: // if input=1 ....... motors turn stop
Stop();
break;
}
delay(200);
input=0;
}
}
void forward() { //function of forward
analogWrite(A1, 255);
analogWrite(A2, 0);
analogWrite(B1, 255);
analogWrite(B2, 0);
}
void backward() { //function of backward
analogWrite(A1, 0);
analogWrite(A2, 210);
analogWrite(B1, 0);
analogWrite(B2, 210);
}
void Stop() { //function of stop
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(B1, LOW);
digitalWrite(B2, LOW);
}
Nhận xét