Series
Lập Trình & Điều Khiển Động Cơ với ESP32
  1. Series: Lập trình & Điều khiển Động Cơ từ Cơ Bản tới Nâng Cao
  2. 1Lập trình & Điều khiển Động Cơ – Bài 1: Giới thiệu về Động cơ và Nguyên lý Hoạt động
  3. 2Lập trình & Điều khiển Động Cơ – Bài 2: Điều khiển tốc độ Động cơ DC bằng PWM
  4. 3Lập trình & Điều khiển Động Cơ – Bài 3: Đảo chiều quay của động cơ DC bằng mạch cầu H (L298N)
  5. 4Lập trình & Điều khiển Động Cơ – Bài 4: Viết hàm điều khiển chuyển động cho xe robot
  6. 5Lập trình & Điều khiển Động Cơ – Bài 5: Cảm biến vật cản cho xe robot (Tự dừng khi gặp chướng ngại vật)
  7. 6Lập trình & Điều khiển Động Cơ – Bài 6: Xe tránh vật cản tự động bằng cảm biến siêu âm HC-SR04
  8. 7Lập trình & Điều khiển Động Cơ – Bài 7: Điều khiển xe robot bằng điện thoại qua WiFi (Web Remote)
  9. 8Lập trình & Điều khiển Động Cơ – Bài 8: Điều khiển xe robot bằng Bluetooth từ điện thoại (ESP32 + App Android)
  10. 9Lập trình & Điều khiển Động Cơ – Bài 9: Lập trình xe robot dò line (chạy theo vạch đen)
  11. 10Lập trình & Điều khiển Động Cơ – Bài 10: Xe robot tránh vật cản kết hợp dò line (robot tự hành thông minh)
  12. 11Lập trình & Điều khiển Động Cơ – Bài 11: Điều khiển Servo bằng ESP32 (Cơ bản và Ứng dụng trong robot)
  13. 12Lập trình & Điều khiển Động Cơ – Bài 12: Kết hợp Servo và Cảm biến siêu âm HC-SR04 – Quay theo vật cản (Radar mini)
  14. 13Lập trình & Điều khiển Động Cơ – Bài 13: Servo Tracking, tạo hệ thống đầu quay cảm biến tự động theo vật cản
  15. 14Lập trình & Điều khiển Động Cơ – Bài 14: Lăp ráp đầu cảm biến quay theo vật cản lên xe robot (Xe radar thông minh)
  16. 15Lập trình & Điều khiển Động Cơ – Bài 15: Tích hợp còi cảnh báo và đèn LED vào xe robot (Báo hiệu trạng thái thông minh)
  17. 16Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot
  18. 17Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 1): Hiểu nguyên lý
  19. 18Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 2): Thiết kế phần cứng
  20. 19Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 3): Lập trình cơ bản
  21. 20Lập trình & Điều khiển Động Cơ – Nâng cao -Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 4): Tối ưu điều khiển
  22. 21Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 5): Báo hiệu thông minh
  23. 22Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 6): Truyền dữ liệu 2 chiều
  24. 23Lập trình & Điều khiển Động Cơ – Nâng cao – Bài 16: Thiết kế bộ điều khiển từ xa cho Robot (phần 7): Kiểm thử & demo thực tế
Kiến thức

Lập trình & Điều khiển Động Cơ – Bài 3: Đảo chiều quay của động cơ DC bằng mạch cầu H (L298N)

Th11 2025
Lập trình & Điều khiển Động Cơ – Bài 3: Đảo chiều quay của động cơ DC bằng mạch cầu H (L298N)

(Từ khóa học: Lập trình & Điều khiển Động Cơ từ Cơ Bản tới Nâng Cao)


Giới thiệu

Sau khi đã biết cách bật/tắt và điều chỉnh tốc độ động cơ, bước tiếp theo là điều khiển chiều quay của động cơ DC.

Trong bài này, bạn sẽ học cách sử dụng mạch cầu H (L298N) để đảo chiều quay, giúp robot có thể chạy tiến – lùi – rẽ trái – rẽ phải.

Đây là kỹ năng quan trọng khi lập trình xe robot hai bánh hoặc các cánh tay cơ khí có chuyển động ngược chiều.

1. Mạch cầu H là gì?

Cầu H (H-Bridge) là mạch điện cho phép đảo chiều dòng điện đi qua động cơ, nhờ đó ta có thể:

  • Quay thuận khi cấp điện theo chiều A → B
  • Quay ngược khi cấp điện theo chiều B → A

Tên “H” xuất phát từ hình dạng mạch giống chữ H, trong đó động cơ nằm ở giữa hai nhánh điện tử công suất.

2. Giới thiệu module L298N

Module L298N là mạch điều khiển cầu H kép, có thể điều khiển 2 động cơ DC cùng lúc.

Thông số chính:

  • Điện áp hoạt động: 5–12V
  • Dòng tải tối đa: 2A mỗi kênh
  • Ngõ vào điều khiển: IN1, IN2, ENA cho motor A; IN3, IN4, ENB cho motor B

Nguyên lý hoạt động cơ bản:

IN1IN2Trạng thái động cơ
HIGHLOWQuay thuận
LOWHIGHQuay ngược
LOWLOWDừng

3. Sơ đồ mạch kết nối (ESP32 + L298N + Motor)

ESP32 PinKết nối với L298NGhi chú
GPIO26IN1Điều khiển hướng 1
GPIO27IN2Điều khiển hướng 2
GPIO25ENAPWM điều tốc
5V5V L298NNguồn logic
GNDGND L298NNối mass chung

⚠️ Nếu dùng 2 động cơ, bạn có thể gán thêm IN3, IN4, ENB vào các chân khác của ESP32.

4. Code mẫu: Đảo chiều quay động cơ DC

/*
 * Bài 3 - IoTLabs Motor Course
 * Đảo chiều quay động cơ DC bằng L298N (ESP32)
 */

#define IN1 26
#define IN2 27
#define ENA 25

#define PWM_CHANNEL 0
#define PWM_FREQ 5000
#define PWM_RES 8

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_RES);
  ledcAttachPin(ENA, PWM_CHANNEL);
}

void goForward() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  ledcWrite(PWM_CHANNEL, 200); // Tốc độ 200/255
}

void goBackward() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  ledcWrite(PWM_CHANNEL, 200);
}

void stopMotor() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  ledcWrite(PWM_CHANNEL, 0);
}

void loop() {
  goForward();
  delay(2000);
  stopMotor();
  delay(1000);
  goBackward();
  delay(2000);
  stopMotor();
  delay(2000);
}

Kết quả: Động cơ quay thuận 2 giây → dừng → quay ngược 2 giây → lặp lại.

5. Mục tiêu học tập

  • Hiểu nguyên lý mạch cầu H và hoạt động của L298N.
  • Lập trình đảo chiều quay động cơ DC bằng ESP32.
  • Làm nền tảng để điều khiển robot di chuyển linh hoạt hai bánh.

6. Hoạt động mở rộng

  • Gắn thêm cảm biến siêu âm để tạo xe tránh vật cản.
  • Dùng 2 motor và viết hàm turnLeft(), turnRight().
  • Tạo giao diện web điều khiển robot từ xa bằng WiFi.

7. Linh kiện cần thiết

Linh kiệnSố lượngGhi chú
ESP32 DevKit 38 Pin1Board chính
L298N Motor Driver1Điều khiển cầu H kép
Motor DC 3–6V1–2Xe hoặc quạt mini
Dây nối + Breadboard
Nguồn 5V–12V1Adapter hoặc pin

8. Kết luận

Mạch cầu H là nền tảng trong tất cả các hệ thống điều khiển chuyển động hai chiều.

Khi hiểu cách hoạt động của L298N, bạn có thể dễ dàng xây dựng xe robot tự hành, tay máy cơ khí, hoặc băng tải mini.

Trong bài tiếp theo, chúng ta sẽ học cách viết hàm điều khiển chuyển động hoàn chỉnh cho xe robot.