Arduino UNO R4 Động Cơ DC

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino UNO R4 để điều khiển động cơ DC. Chi tiết, chúng ta sẽ tìm hiểu:

Arduino UNO R4 dc động cơ

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Module Driver Motor L298N
1×Động Cơ DC 5V
1×Adapter Nguồn 5V cho động cơ DC 5V
1×Jack Nguồn DC
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Động Cơ DC

Sơ Đồ Chân Động Cơ DC

Động cơ DC có hai dây.

  • Dây dương: thường là màu đỏ
  • Dây âm: thường là màu đen
dc động cơ sơ đồ chân

Cách Hoạt Động

Khi bạn mua một động cơ DC, điều quan trọng là phải hiểu nó hoạt động ở điện áp nào. Ví dụ, hãy xem xét một động cơ DC hoạt động ở 12 volt. Khi bạn kết nối động cơ DC 12V với nguồn điện 12 Volt:

  • Kết nối 12V với dây dương và GND với dây âm: động cơ DC sẽ quay với tốc độ tối đa theo chiều kim đồng hồ.
  • Kết nối 12V với dây âm và GND với dây dương: động cơ DC sẽ quay với tốc độ tối đa ngược chiều kim đồng hồ.

Khi bạn đổi kết nối trên hai dây của động cơ DC như đã đề cập ở trên, hướng quay của nó sẽ thay đổi. Kỹ thuật này giúp điều khiển hướng quay của động cơ DC. Điều này không được thực hiện bằng tay, mà thông qua lập trình.

Nếu chúng ta cung cấp ít hơn 12V cho động cơ DC, động cơ sẽ quay nhưng không ở tốc độ tối đa. Điều này cho thấy việc thay đổi điện áp sẽ thay đổi tốc độ của động cơ. Tuy nhiên, việc điều chỉnh điện áp trực tiếp là khó khăn trong tình huống thực tế. Vì vậy, có một phương pháp đơn giản hơn để điều khiển tốc độ động cơ DC. Chúng ta giữ điện áp nguồn cấp không đổi và sử dụng tín hiệu PWM (Điều Chế Độ Rộng Xung) để điều khiển tốc độ động cơ. Với chu kỳ làm việc PWM cao hơn, động cơ quay nhanh hơn, và ngược lại.

how to control dc động cơ

Cách điều khiển động cơ DC sử dụng Arduino UNO R4

Để điều khiển động cơ DC, bạn cần điều khiển tốc độ và hướng quay của nó. Arduino UNO R4 có thể tạo ra tín hiệu PWM, nhưng tín hiệu này quá yếu về điện áp và dòng điện để điều khiển trực tiếp động cơ. Do đó, cần một driver phần cứng để kết nối Arduino UNO R4 với động cơ DC. Driver này thực hiện hai nhiệm vụ chính:

  • Tăng cường độ tín hiệu PWM từ Arduino UNO R4 (cả dòng điện và điện áp) để điều khiển tốc độ.
  • Nhận tín hiệu điều khiển từ Arduino UNO R4 để thay đổi cực tính nguồn cấp để điều khiển hướng quay.
Arduino UNO R4 control dc động cơ

※ Lưu ý:

  • Bạn có thể sử dụng hướng dẫn này cho bất kỳ động cơ DC nào. Chúng tôi đang sử dụng động cơ DC 12V làm ví dụ.
  • Khi bạn sử dụng động cơ DC 5V, mặc dù chân Arduino UNO R4 xuất ra 5V (cùng điện áp với động cơ DC), bạn vẫn cần một driver giữa Arduino UNO R4 và động cơ DC. Điều này là do chân Arduino UNO R4 không thể cung cấp đủ dòng điện cho động cơ DC.

Hướng dẫn này sẽ sử dụng driver L298N để điều khiển động cơ DC.

Về Driver L298N

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Driver L298N để điều khiển động cơ DC.

Sơ Đồ Chân Driver L298N

l298n trình điều khiển sơ đồ chân

Driver L298N có thể điều khiển độc lập hai động cơ DC cùng một lúc, được gọi là motor A và motor B. Nó có 13 chân.

Các chân chung cho cả hai động cơ:

  • Chân VCC: cung cấp nguồn cho động cơ. Điện áp có thể từ 5 đến 35V.
  • Chân GND: đây là chân mass chung và cần được kết nối với GND (0V).
  • Chân 5V: cấp nguồn cho module L298N. Có thể sử dụng 5V được cung cấp bởi Arduino UNO R4.

Các chân Motor A (Kênh A):

  • Chân ENA: Điều khiển tốc độ của Motor A. Để điều chỉnh tốc độ, hãy tháo jumper và kết nối chân này với đầu vào PWM.
  • Chân IN1 & IN2: Xác định hướng quay của Motor A. Nếu một chân là HIGH và chân kia là LOW, Motor A sẽ quay. Nếu cả hai chân đều HIGH hoặc đều LOW, Motor A sẽ dừng.
  • Chân OUT1 & OUT2: Được kết nối với Motor A.

Các chân Motor B (Kênh B):

  • Chân ENB: Điều khiển tốc độ Motor B. Nếu bạn tháo jumper và kết nối các chân này với đầu vào PWM, bạn có thể điều chỉnh tốc độ quay của Motor B.
  • Chân IN3 & IN4: Điều khiển hướng quay của Motor B. Nếu IN3 là HIGH và IN4 là LOW, hoặc ngược lại, Motor B sẽ quay. Nếu cả hai đều HIGH hoặc cả hai đều LOW, Motor B sẽ dừng.
  • Chân OUT3 & OUT4: Được kết nối với Motor B.

Driver L298N đã đề cập ở trên có hai loại nguồn đầu vào:

  • Một cho động cơ DC (chân VCCGND): từ 5 đến 35V.
  • Một để chạy chính module L298N (chân 5V và GND): từ 5 đến 7V.

Driver L298N có ba jumper cho các ứng dụng phức tạp hơn. Để đơn giản, vui lòng tháo tất cả jumper khỏi driver L298N.

Chúng ta có thể điều khiển hai động cơ DC cùng một lúc bằng Arduino UNO R4 và Driver L298N. Để điều khiển mỗi động cơ, chúng ta sử dụng ba chân từ Arduino UNO R4.

※ Lưu ý:

Hướng dẫn này sẽ chỉ cho bạn cách điều khiển một động cơ DC bằng kênh A. Việc điều khiển động cơ DC khác được thực hiện theo cách tương tự.

Sơ Đồ Đấu Nối

Tháo tất cả ba jumper khỏi module L298N trước khi bắt đầu đấu nối.

Arduino UNO R4 dc động cơ l298n trình điều khiển sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Cách Điều Khiển Tốc Độ Động Cơ DC qua Driver L298N

Bạn có thể dễ dàng điều chỉnh tốc độ của động cơ DC bằng cách gửi tín hiệu PWM đến chân ENA trên L298N. Đây là cách thực hiện:

  • Kết nối một chân Arduino UNO R4 với chân ENA trên module L298N.
  • Sử dụng hàm analogWrite() để gửi tín hiệu PWM đến chân ENA. Driver L298N sẽ tăng cường độ của tín hiệu PWM này để cấp nguồn cho động cơ DC.
analogWrite(ENA_PIN, speed); // Đặt tốc độ động cơ trên ENA_PIN, phạm vi 0-255

Tốc độ có thể là bất kỳ số nào từ 0 đến 255. Ở tốc độ 0, động cơ sẽ dừng. Ở tốc độ 255, động cơ sẽ quay với tốc độ cao nhất.

Cách Điều Khiển Hướng Quay Động Cơ DC qua Driver L298N

Hướng quay của động cơ có thể được thay đổi bằng cách đặt các chân IN1 và IN2 thành HIGH hoặc LOW. Bảng dưới đây cho thấy cách điều khiển hướng quay cho cả hai kênh.

Chân IN1 Chân IN2 Hướng Quay
LOW LOW Motor A dừng
HIGH HIGH Motor A dừng
HIGH LOW Motor A quay Thuận chiều kim đồng hồ
LOW HIGH Motor A quay Ngược chiều kim đồng hồ
  • Motor A quay theo chiều kim đồng hồ.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Motor A quay ngược chiều kim đồng hồ
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Lưu ý:

Nếu bạn kết nối các chân OUT1 và OUT2 với các chân động cơ DC theo cách ngược lại, động cơ sẽ quay theo hướng ngược lại. Để khắc phục điều này, chỉ cần đổi vị trí của các chân OUT1 và OUT2, hoặc thay đổi tín hiệu điều khiển trên các chân IN1 và IN2 trong code chương trình.

Cách Dừng Động Cơ DC

Có hai phương pháp để tắt động cơ DC.

  • Đặt tốc độ về 0.
analogWrite(ENA_PIN, 0);
  • Đặt các chân IN1 và IN2 cùng giá trị (hoặc LOW hoặc HIGH).
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Hoặc
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

Cách điều khiển động cơ DC sử dụng driver L298N

Code Arduino UNO R4

Code dưới đây thực hiện các việc sau:

  • Làm cho động cơ DC quay nhanh hơn
  • Đảo ngược hướng quay
  • Làm cho động cơ DC quay chậm hơn
  • Dừng động cơ
/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-dc-motor */ #define ENA_PIN 9 // The Arduino UNO R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino UNO R4 pin connected to the IN1 pin L298N #define IN2_PIN 3 // The Arduino UNO R4 pin connected to the IN2 pin L298N void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); } void loop() { digitalWrite(IN1_PIN, HIGH); // control motor A spins clockwise digitalWrite(IN2_PIN, LOW); // control motor A spins clockwise for (int speed = 0; speed <= 255; speed++) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // rotate at maximum speed 1 seconds in in clockwise direction // change direction digitalWrite(IN1_PIN, LOW); // control motor A spins anti-clockwise digitalWrite(IN2_PIN, HIGH); // control motor A spins anti-clockwise delay(1000); // rotate at maximum speed 1 seconds in in anti-clockwise direction for (int speed = 255; speed >= 0; speed--) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // stop motor 1 second }

Các Bước Nhanh

Thực hiện theo các hướng dẫn từng bước:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Đấu nối các linh kiện theo sơ đồ được cung cấp.
  • Kết nối board Arduino Uno R4 với máy tính bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính của bạn.
  • Chọn board Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Tháo tất cả ba jumper khỏi module L298N.
  • Dán code vào Arduino IDE.
  • Nhấn nút Upload trong Arduino IDE để tải code lên Arduino UNO R4.
  • Quan sát:
    • Động cơ DC tăng tốc, sau đó quay với tốc độ tối đa trong 1 giây.
    • Hướng quay của động cơ DC thay đổi.
    • Động cơ DC quay với tốc độ tối đa trong 1 giây theo hướng ngược lại.
    • Động cơ DC giảm tốc.
    • Động cơ DC dừng trong 1 giây.
    • Chuỗi này lặp lại liên tục.

    ※ Lưu ý:

    Trong hướng dẫn này, chúng ta sẽ học cách điều chỉnh tốc độ tương đối của động cơ DC so với tốc độ cao nhất của nó. Để điều khiển tốc độ tuyệt đối tính theo vòng quay mỗi giây, chúng ta phải sử dụng bộ điều khiển PID và encoder. Chúng tôi sẽ đề cập đến cách điều khiển tốc độ chính xác của động cơ DC trong một hướng dẫn khác.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tài Liệu Tham Khảo Hàm

Bình Luận

Bài hướng dẫn liên quan