Giao tiếp mạch điều khiển động cơ L9110 / HG7881 Dual Channel với Arduino

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);
}

Video

Nhận xét

Mới hơn Cũ hơn