Cảm biến khoảng cách siêu âm HY-SRF05: hợp tác trong bóng tối

Có lẽ bạn chưa từng nghe về sóng siêu âm (sonar), một loại sóng cao tầng mà con người không thể nghe thấy? Nhưng hãy tin tôi, sóng siêu âm đang hiện diện khắp mọi nơi trong tự nhiên. Dơi, cá heo và nhiều loài động vật khác đều sử dụng sóng siêu âm để liên lạc, săn mồi và định vị trong không gian.

Bạn có biết rằng nguyên tắc sử dụng sóng âm để định vị rất đơn giản? Chúng ta chỉ cần 3 bước:

  1. Vật chủ phát sóng âm.
  2. Sóng âm va chạm với môi trường và phản xạ lại.
  3. Dựa vào thời gian phản xạ, tính toán khoảng cách giữa vật chủ và môi trường.

Tuy nhiên, việc tính toán khoảng cách còn phụ thuộc vào môi trường truyền dẫn. Sóng âm truyền trong nước hoặc kim loại sẽ nhanh hơn sóng âm truyền trong không khí. Lưu ý rằng không có sóng âm nào có thể truyền qua chân không.

Đến đây, bạn có thể tự hỏi: áp dụng nguyên tắc này vào đời sống thực, ta có thể tận dụng sóng âm như thế nào? Đáp án là rất nhiều! Sóng âm đã được ứng dụng trong nhiều lĩnh vực như thiết bị định vị dưới biển của tàu ngầm, thiết bị radar và đo đạc khoảng cách môi trường.

Và hôm nay, tôi sẽ giới thiệu đến bạn một sản phẩm đặc biệt, đó là cảm biến khoảng cách siêu âm HY-SRF05. Sản phẩm này hoạt động theo nguyên tắc trên và gồm 2 loa – 1 loa thu và 1 loa phát – cùng với 5 chân để kết nối với Arduino. Tầm hoạt động tối đa của cảm biến là khoảng 5m.

Cùng tìm hiểu chức năng của từng chân trong cảm biến này:

  • Vcc: cấp nguồn cho cảm biến.
  • Trigger: kích hoạt quá trình phát sóng âm.
  • Echo: nhận tín hiệu phản hồi.
  • Gnd: nối với cực âm của mạch.
  • OUT: không sử dụng.

Sau khi đã hiểu về cấu trúc của cảm biến, chúng ta hãy tiến hành lắp đặt nó theo sơ đồ sau:

  1. Vcc: nối với nguồn 5V của Arduino.
  2. Gnd: nối với PIN GND.
  3. Trigger: nối với PIN 8.
  4. Echo: nối với PIN 7.

Tiếp theo, chúng ta sẽ lập trình để điều khiển cảm biến. Với cảm biến HY-SRF05, mỗi chu kỳ 1s, ta sẽ kích hoạt cảm biến và kiểm tra xem có vật cản xung quanh hay không. Dưới đây là mã lập trình phù hợp:

#define TRIG_PIN 8
#define ECHO_PIN 7
#define TIME_OUT 5000

float GetDistance()
{
  long duration, distanceCm;
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration = pulseIn(ECHO_PIN, HIGH, TIME_OUT);
  distanceCm = duration / 29.1 / 2;
  return distanceCm;
}

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  long distance = GetDistance();

  if (distance <= 0)
  {
    Serial.println("Echo time out !!");
  }
  else
  {
    Serial.print("Distance to nearest obstacle (cm): ");
    Serial.println(distance);
  }
  delay(1000);
}

Với chương trình này, mỗi chu kỳ 1s, chúng ta sẽ kích hoạt cảm biến và tính toán khoảng cách đến vật cản gần nhất. Nếu khoảng cách trả về nhỏ hơn 0.5m, chương trình sẽ hiển thị thông báo có vật cản. Sau đó, chương trình sẽ lặp lại chu trình này.

Cuối cùng, chúng ta sẽ thực hiện lắp mạch và chạy chương trình. Đừng quên mở cửa sổ output bằng cách vào menu Tools > Serial Monitor hoặc nhấn tổ hợp phím Ctrl + Shift + M.

Đây là tất cả những gì bạn cần biết về cảm biến khoảng cách siêu âm HY-SRF05 cùng cách lắp đặt và lập trình. Nếu bạn muốn biết thêm chi tiết, hãy truy cập Izumi.Edu.VN để tìm hiểu thêm những kiến thức thú vị khác!

FEATURED TOPIC