Đọc cảm biến HC-SR04
1. Mục tiêu bài học #
Sau bài này, bạn có thể:
- Kết nối cảm biến khoảng cách HC-SR04 với Arduino Nano
- Đọc khoảng cách vật cản phía trước
- Hiển thị khoảng cách lên Serial Monitor
- Làm nền tảng cho các chức năng:
- Robot tránh vật cản
- Robot tự dừng
- Robot giữ khoảng cách
2. Cảm biến HC-SR04 là gì #
HC-SR04 là cảm biến siêu âm dùng để đo khoảng cách.
Nguyên lý hoạt động:
- Cảm biến phát sóng siêu âm
- Sóng gặp vật cản và phản xạ lại
- Cảm biến đo thời gian phản hồi
- Tính ra khoảng cách
Các thông số cơ bản
| Thông số | Giá trị |
| Điện áp | 5V |
| Khoảng cách đo | ~2cm → 40cm |
| Chân giao tiếp | Trig, Echo |
| Góc quét | ~15 độ |
3. Sơ đồ kết nối #
4. Code đọc khoảng cách #
#define TRIG_PIN A0
#define ECHO_PIN A1
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// Phát xung siêu âm
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Đọc thời gian phản hồi
long duration = pulseIn(ECHO_PIN, HIGH);
// Tính khoảng cách (cm)
float distance = duration * 0.034 / 2;
// Hiển thị
Serial.print("Khoang cach: ");
Serial.print(distance);
Serial.println(" cm");
delay(200);
}5. Nạp code và kiểm tra #
Bước 1: Nạp code
Bước 2: Mở Serial Monitor
Chọn:
- Baudrate: 9600
Bạn sẽ thấy:
Khoang cach: 25.3 cm
Khoang cach: 24.8 cm
Khoang cach: 26.1 cm
Bước 3: Thử nghiệm thực tế
Đưa tay hoặc vật thể trước cảm biến.
Bạn sẽ thấy khoảng cách thay đổi theo thời gian thực.
6. Giải thích code #
Phát xung Trigger
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
HC-SR04 cần xung HIGH khoảng 10 micro giây để bắt đầu đo.
pulseIn()
pulseIn(ECHO_PIN, HIGH);
Đo thời gian Echo ở mức HIGH.
Công thức tính khoảng cách
distance = duration * 0.034 / 2;
Trong đó:
- 0.034 cm/us là tốc độ âm thanh
- Chia 2 vì sóng đi và quay lại
7. Các lỗi thường gặp #
Luôn hiện 0 cm
Nguyên nhân:
- Sai dây Echo/Trig
- Chưa cấp nguồn
- Chưa chọn đúng chân
Giá trị nhảy lung tung
Nguyên nhân:
- Vật quá nhỏ
- Góc phản xạ không tốt
- Nguồn yếu
- Robot rung mạnh
Không hiển thị gì
Kiểm tra:
- Đã mở Serial Monitor chưa
- Baudrate có đúng 9600 không
8. Ứng dụng #
HC-SR04 thường dùng cho:
- Robot tránh vật cản
- Robot tự dừng
- Đo khoảng cách
- Đỗ xe tự động
- Robot đi theo tường
9. Tổng kết #
Cập nhật vào Tháng 5 29, 2026