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:
- Cách hoạt động của động cơ DC
- Cách điều khiển tốc độ và hướng quay của động cơ DC
- Cách điều khiển động cơ DC với driver L298N

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

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.

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.

※ 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

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 VCC và GND): 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.

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.
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ồ.
- Motor A quay ngược chiều kim đồng hồ
※ 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.
- Đặt các chân IN1 và IN2 cùng giá trị (hoặc LOW hoặc HIGH).
- Hoặc
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ơ
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.