Xem danh mục

Đọ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:

  1. Cảm biến phát sóng siêu âm
  2. Sóng gặp vật cản và phản xạ lại
  3. Cảm biến đo thời gian phản hồi
  4. Tính ra khoảng cách

Các thông số cơ bản

Thông sốGiá trị
Điện áp5V
Khoảng cách đo~2cm → 40cm
Chân giao tiếpTrig, 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 #