(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
Xe dò line (line follower robot) là loại robot có khả năng tự di chuyển theo vạch đen (hoặc trắng) trên mặt đất nhờ các cảm biến hồng ngoại.
Đây là một ứng dụng thực tế phổ biến trong robot logistics, robot vận chuyển hàng hóa, hoặc các cuộc thi STEM Robotics.
Trong bài này, bạn sẽ học cách kết nối cảm biến dò line, đọc tín hiệu, và lập trình robot tự bám theo đường đi.
⚙️ 1. Nguyên lý hoạt động
- Cảm biến dò line IR phát tia hồng ngoại xuống mặt sàn.
- Khi tia hồng ngoại phản xạ mạnh (màu trắng), cảm biến xuất ra mức HIGH (1).
- Khi phản xạ yếu (màu đen), cảm biến xuất ra mức LOW (0).
- Dựa trên giá trị từ 2 hoặc 3 cảm biến, ta xác định hướng và điều chỉnh bánh xe cho robot giữ đúng đường đi.
| Cảm biến Trái | Cảm biến Phải | Hướng di chuyển |
|---|---|---|
| 0 | 0 | Đi thẳng |
| 0 | 1 | Rẽ trái |
| 1 | 0 | Rẽ phải |
| 1 | 1 | Dừng hoặc tìm lại vạch |
🔌 2. Sơ đồ kết nối phần cứng

| Thiết bị | ESP32 Pin | Ghi chú |
|---|---|---|
| IR Sensor Trái | GPIO34 | Analog hoặc Digital |
| IR Sensor Phải | GPIO35 | Analog hoặc Digital |
| L298N IN1 | GPIO26 | Motor trái hướng 1 |
| L298N IN2 | GPIO27 | Motor trái hướng 2 |
| L298N IN3 | GPIO25 | Motor phải hướng 1 |
| L298N IN4 | GPIO33 | Motor phải hướng 2 |
| L298N ENA | GPIO14 | PWM trái |
| L298N ENB | GPIO32 | PWM phải |
| 5V, GND | Tất cả module | Nguồn chung |
⚠️ Dùng 2 cảm biến IR là đủ cho robot cơ bản; nếu muốn dò chính xác hơn, bạn có thể dùng 3–5 cảm biến ở bài nâng cao.
💻 3. Code mẫu: Xe robot dò line (theo vạch đen)
/*
* Bài 9 - IoTLabs Motor Course
* Xe dò line (theo vạch đen) dùng ESP32 + 2 cảm biến hồng ngoại + L298N
*/
#define LEFT_SENSOR 34
#define RIGHT_SENSOR 35
#define IN1 26
#define IN2 27
#define IN3 25
#define IN4 33
#define ENA 14
#define ENB 32
#define PWM_FREQ 5000
#define PWM_RES 8
void setup() {
Serial.begin(115200);
pinMode(LEFT_SENSOR, INPUT);
pinMode(RIGHT_SENSOR, INPUT);
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
ledcSetup(0, PWM_FREQ, PWM_RES);
ledcSetup(1, PWM_FREQ, PWM_RES);
ledcAttachPin(ENA, 0);
ledcAttachPin(ENB, 1);
}
void goForward() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
ledcWrite(0, 200); ledcWrite(1, 200);
}
void turnLeft() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
ledcWrite(0, 180); ledcWrite(1, 180);
}
void turnRight() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
ledcWrite(0, 180); ledcWrite(1, 180);
}
void stopMotor() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
ledcWrite(0, 0); ledcWrite(1, 0);
}
void loop() {
int leftState = digitalRead(LEFT_SENSOR);
int rightState = digitalRead(RIGHT_SENSOR);
Serial.print("Trái: "); Serial.print(leftState);
Serial.print(" - Phải: "); Serial.println(rightState);
if (leftState == 0 && rightState == 0) goForward();
else if (leftState == 0 && rightState == 1) turnLeft();
else if (leftState == 1 && rightState == 0) turnRight();
else stopMotor();
}
✅ Kết quả: Xe robot tự động dò theo vạch đen. Khi lệch trái/phải, robot tự điều chỉnh để quay lại đường.
🧠 4. Giải thích
digitalRead()đọc tín hiệu từ cảm biến hồng ngoại.- Dựa vào giá trị 0/1, ta quyết định hướng.
- Khi cả hai cảm biến không thấy vạch (1,1) → xe dừng để tránh mất hướng.
🎯 5. Mục tiêu học tập
- Hiểu nguyên lý hoạt động của cảm biến dò line.
- Lập trình robot điều chỉnh hướng theo tín hiệu cảm biến.
- Làm nền tảng cho bài sau: xe dò line tự động tránh vật cản.
🧩 6. Hoạt động mở rộng
- Dùng 3 hoặc 5 cảm biến để dò đường chính xác hơn.
- Thêm mạch servo để điều chỉnh góc quét cảm biến.
- Kết hợp cảm biến siêu âm để vừa dò line vừa tránh vật cản.
📦 7. Linh kiện cần thiết
| Linh kiện | Số lượng | Ghi chú |
|---|---|---|
| ESP32 DevKit 38 Pin | 1 | Bộ điều khiển |
| Cảm biến dò line IR | 2 | Trái và phải |
| L298N Driver | 1 | Điều khiển 2 motor |
| Motor DC + bánh xe | 2 | |
| Pin 7.4V hoặc 9V | 1 | Nguồn cấp |
| Dây nối, Breadboard | – |
🚀 8. Kết luận
Xe dò line là một trong những dự án robot thông minh phổ biến nhất, giúp bạn hiểu rõ mối liên hệ giữa cảm biến – điều khiển – chuyển động.
Bằng cách hiệu chỉnh hợp lý, robot có thể di chuyển chính xác theo đường vẽ sẵn, ứng dụng trong robot vận chuyển hoặc thi đấu.


Để lại một bình luận