Đo lường khoảng cách dựa vào Arduino và cảm biến siêu âm

0
2998
Đo khoảng cách dùng HC-SR04

Cảm biến siêu âm (Ultrasonic Sensor) là công cụ tuyệt vời để đo khoảng cách mà không cần tiếp xúc thực tế và được sử dụng ở một số nơi như đo mực nước, đo khoảng cách, v.v.. Đây là một cách hiệu quả để đo khoảng cách chính xác. Trong dự án này, tôi đã sử dụng một cảm biến siêu âm để xác định khoảng cách của một vật cản từ cảm biến. Nguyên tắc cơ bản của phép đo khoảng cách siêu âm dựa trên ECHO. Khi sóng âm được truyền trong môi trường thì sóng quay trở lại vị trí xuất phát dưới dạng ECHO sau khi đập vào vật cản. Vì vậy, chúng tôi chỉ cần tính toán thời gian di chuyển của cả hai sóng siêu âm tức là thời gian đi và thời gian trở về điểm xuất phát sau khi chạm vào chướng ngại vật. Khi chúng ta biết được tốc độ của âm thanh, sau khi thực hiện một số tính toán, chúng ta có thể tính được khoảng cách.

Chuẩn bị

Phần cứng

Linh kiện Số lượng
Arduino Uno 1
Module cảm biến siêu âm  1
LCD 16×2 1
Breadboard 1
Dây cắm breadboard


Phần mềm
: Arduino IDE

Module cảm biến siêu âm HC-SR04

Giới thiệu

Cảm biến siêu âm HC-SR04 là loại cảm biến siêu âm tương đối rẻ và chính xác có thể sử dụng để đo khoảng cách từ 2-400 cm với độ chính xác 3 mm. Cảm biến HC-SR04 được sử dụng phổ biến trong các ứng dụng đo lường ở môi trường dễ cháy nổ như: xăng dầu, hoặc sử dụng để đo mức nước, phát hiện vật cản, hay đếm sản phẩm.

cảm biến siêu âm HC-SR04

Sơ đồ chân:

Số chân Tên chân Mô tả
1 Vcc Chân cấp nguồn cho cảm biến (nguồn 5V, nguồn càng chuẩn cảm biến càng chính xác)
2 Trigger Chân Trigger là chân đầu vào. Chân này phải được giữ ở mức cao trong khoảng 10us để khởi tạo phép đo bằng cách gửi sóng siêu âm.
3 Echo Chân Echo là một pin đầu ra.Chân này sẽ trả về tín hiệu xung khi sóng siêu âm phản xạ lại. Đo độ rộng xung này ta sẽ tính ra khoảng cách từ cảm biến đến vật cản
4 GND Chân nối đất của cảm biến

Thông số kỹ thuật

  • Điện áp hoạt động: + 5V
  • Khoảng cách đo lý thuyết: 2cm đến 450cm
  • Khoảng cách đo thực tế: 2cm đến 80cm
  • Độ chính xác: 3mm
  • Góc đo được bao phủ: <15 °
  • Dòng điện hoạt động: <15mA
  • Tần số hoạt động: 40Hz

Xem datasheet Module cảm biến siêu âm HC-SR04 tại đây.

Nguyên lý hoạt động

Cảm biến siêu âm sử dụng các xung của âm thanh siêu âm (âm thanh trên phạm vi thính giác của con người) để phát hiện khoảng cách giữa chúng và vật thể rắn lân cận. Các cảm biến này bao gồm hai thành phần chính:

  • Một bộ phát sóng siêu âm – Khối này truyền các xung âm thanh siêu âm, nó hoạt động ở tần 40 KHz
  • Một bộ thu sóng siêu âm phản xạ về – Khối thu lắng nghe các xung được truyền về. Nếu nó nhận được các xung này nó tạo ra một xung đầu ra mà độ rộng của nó có thể được sử dụng để xác định khoảng cách.

Thiết bị hoạt động như sau:

  1. Một xung ở mức cao (5V) trong thời gian ít nhất 10 μs (10 micro giây) được đưa vào chân Trigger.
  2. HC-SR04 đáp ứng bằng cách truyền một chùm tám xung với tần số 40 KHz. Mẫu 8 xung này làm “chữ ký siêu âm” từ thiết bị duy nhất này, cho phép bộ thu phân biệt giữa mẫu được truyền và tạp âm siêu âm.
  3. Tám xung siêu âm di chuyển qua không khí cách xa bộ phát. Trong khi đó, chân Echo lên mức cao để bắt đầu hình thành sự khởi đầu của tín hiệu dội ngược.
  4. Nếu xung này KHÔNG phản xạ về thì tín hiệu Echo sẽ hết thời gian chờ sau 38 ms (38 mili giây) và trở về mức thấp. Việc  tạo ra xung 38 ms cho biết không có chướng ngại vật nào trong phạm vi của cảm biến.
  5. Nếu xung được phản xạ trở lại, chân Echo sẽ xuống thấp khi nhận được tín hiệu. Điều này tạo ra một xung có độ rộng thay đổi từ 150 μs đến 25 ms, tùy thuộc vào thời gian nhận tín hiệu.
  6. Chiều rộng của xung nhận được được sử dụng để tính toán khoảng cách đến đối tượng được phản xạ. Hãy nhớ rằng xung cho biết thời gian cần để tín hiệu được gửi đi và phản xạ lại để có khoảng cách bạn sẽ cần phải chia kết quả của mình thành một nửa.

Khoảng cách = (Thời gian x Vận tốc âm thanh trong không khí (340 m / s)) / 2

hoạt động của cảm biến siêu am

Sơ đồ mạch

kết nối arduino với cảm biến siêu âm

Sơ đồ mạch cho cảm biến arduino và cảm biến siêu âm ở hình trên để đo khoảng cách. Trong các kết nối mạch, các chân “trigger” và “echo” của module cảm biến siêu âm được kết nối trực tiếp với chân 8 và 9 của Arduino. Màn hình LCD 16×2 được kết nối với Arduino ở chế độ 4 bit. Các chân điều khiển RS, RW và E được kết nối trực tiếp với chân 7, GND và 6 của Arduino. Các chân dữ liệu D4-D7 được kết nối với 2, 3, 4 và 5 của Arduino.

Trước hết chúng ta cần phải kích hoạt các mô-đun cảm biến siêu âm để truyền tín hiệu bằng cách sử dụng arduino và sau đó chờ đợi để nhận ECHO. Arduino đọc thời gian giữa kích hoạt và nhận ECHO. Chúng ta biết rằng tốc độ của âm thanh là khoảng 340m /s. Để tính khoảng cách, chúng ta sử dụng công thức đã cho:

Khoảng cách = (thời gian di chuyển* tốc độ của âm thanh) / 2 

Tốc độ âm thanh khoảng 340m mỗi giây.

Màn hình LCD 16×2 được sử dụng để hiển thị khoảng cách.

Chương trình

#include <LiquidCrystal.h>
#define trigger 8               // chân trig của HC-SR04

#define echo 9                  // chân echo của HC-SR04

LiquidCrystal lcd(7,6,5,4,3,2);

float time=0,distance=0;

void setup()
{
lcd.begin(16,2);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
lcd.print(“Do khoang cach”);
lcd.setCursor(0,1);
lcd.print(“Cam bien sieu am”);
delay(2000);
lcd.clear();
lcd.print(“dientuadenz.com”);
delay(2000);
}

void loop()
{
lcd.clear();
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH);
distance=time*340/20000;
lcd.clear();
lcd.print(“K.cach:”);
lcd.print(distance);
lcd.print(“cm”);
lcd.setCursor(0,1);
lcd.print(“K.cach:”);
lcd.print(distance/100);
lcd.print(“m”);
delay(1000);
}

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây