Trang chủ Điện - Điện tửArduinoGiao tiếp mạch điều khiển động cơ L9110 / HG7881 Dual Channel với Arduino

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

bởi Admin
15 lượt xem 4 Phút đọc

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.

banner

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ơ
LOWLOWDừng
HIGHLOWQuay thuận
LOWHIGHQuay nghịch
HIGHHIGHDừ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.

ARDUINOL9110
D5A1
D6A2
D10B1
D11B2

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

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.