Nội dung bài viết
Cảm biến siêu âm là một loại cảm biến đo khoảng cách bằng cách sử dụng sóng siêu âm. Đây là một trong những phương pháp phổ biến và chính xác để đo khoảng cách mà không cần tiếp xúc vật lý với vật thể.
Trong bài viết này, chúng ta sẽ tìm hiểu nguyên lý hoạt động của cảm biến siêu âm, cách kết nối và lập trình cảm biến để đo khoảng cách trong các ứng dụng thực tế.
Nguyên Lý Hoạt Động Của Cảm Biến Siêu Âm

Cảm biến siêu âm hoạt động dựa trên nguyên tắc sóng siêu âm truyền đi và phản xạ lại. Nó gồm hai phần chính:
- Bộ phát (Transmitter): Phát ra sóng siêu âm với tần số cao (thường là 40kHz).
- Bộ thu (Receiver): Nhận lại sóng phản xạ từ vật thể.
Quá trình hoạt động:
- Cảm biến phát ra xung siêu âm.
- Sóng siêu âm di chuyển trong không khí và phản xạ khi gặp vật cản.
- Bộ thu nhận tín hiệu phản xạ và tính toán thời gian sóng quay trở lại.
- Sử dụng công thức:
Trong đó:
- : Khoảng cách đến vật cản (m).
- : Thời gian sóng siêu âm đi và về (s).
- : Vận tốc âm thanh trong không khí (~343 m/s).
Các Loại Cảm Biến Siêu Âm Phổ Biến
HC-SR04
- Phổ biến trong các dự án Arduino và IoT.
- Phạm vi đo: 2cm – 400cm.
- Độ chính xác: ±3mm.
- Điện áp hoạt động: 5V.
US-100
- Hoạt động ở mức 3.3V hoặc 5V.
- Có chế độ UART và chế độ trigger giống HC-SR04.
- Khoảng cách đo chính xác hơn trong môi trường có nhiều nhiễu.
HY-SRF05
- Tương tự HC-SR04 nhưng có thêm chân Echo enable.
- Dải đo rộng hơn (3cm – 450cm).

Kết Nối Cảm Biến Siêu Âm Với Vi Điều Khiển
Kết Nối Với Arduino
Chuẩn bị linh kiện
- 1 Arduino Uno.
- 1 Cảm biến HC-SR04.
- Dây nối.
- 1 màn hình LCD (tùy chọn để hiển thị khoảng cách).
Sơ đồ nối dây
Cảm Biến HC-SR04 | Arduino Uno |
---|---|
VCC | 5V |
GND | GND |
Trig | D9 |
Echo | D10 |
Mã code Arduino đo khoảng cách
#define TRIG_PIN 9
#define ECHO_PIN 10
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
long duration;
float distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Khoảng cách: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
Kết Nối Với Raspberry Pi
Nếu dùng Raspberry Pi, ta cần sử dụng thư viện GPIO để đọc tín hiệu Echo. Kết nối tương tự Arduino nhưng sử dụng ngôn ngữ Python.
Mã code Python đo khoảng cách
import RPi.GPIO as GPIO
import time
TRIG = 23
ECHO = 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def get_distance():
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO) == 0:
start_time = time.time()
while GPIO.input(ECHO) == 1:
end_time = time.time()
duration = end_time - start_time
distance = (duration * 34300) / 2
return distance
try:
while True:
distance = get_distance()
print(f"Khoảng cách: {distance:.2f} cm")
time.sleep(0.5)
except KeyboardInterrupt:
GPIO.cleanup()
5. Ứng Dụng Của Cảm Biến Siêu Âm
5.1. Robot Tránh Vật Cản
- Sử dụng cảm biến siêu âm để giúp robot nhận biết chướng ngại vật và tự động điều chỉnh hướng di chuyển.
5.2. Đo Mực Nước
- Ứng dụng trong các bể chứa nước để theo dõi mức nước tự động.
5.3. Hệ Thống Đo Khoảng Cách Ô Tô
- Giúp cảnh báo khi lùi xe hoặc đỗ xe.
5.4. Ứng Dụng Trong Công Nghiệp
- Kiểm tra độ đầy của thùng chứa nguyên liệu.
- Phát hiện vật thể trên băng chuyền.
6. Những Lưu Ý Khi Sử Dụng Cảm Biến Siêu Âm

- Không đo qua bề mặt hấp thụ âm thanh (như vải, bọt biển) vì sóng siêu âm có thể bị giảm cường độ hoặc không phản xạ lại.
- Hạn chế đo qua góc nghiêng lớn vì sóng có thể bị lệch hướng.
- Kiểm tra nguồn cấp đủ điện áp để đảm bảo cảm biến hoạt động ổn định.
- Sử dụng lọc nhiễu nếu cần thiết để tránh sai số do âm thanh môi trường.
7. Kết Luận
Cảm biến siêu âm là một giải pháp hiệu quả và dễ sử dụng để đo khoảng cách mà không cần tiếp xúc vật lý. Với những ứng dụng đa dạng trong đời sống và công nghiệp, cảm biến này đang ngày càng được sử dụng rộng rãi.
Hy vọng bài viết này giúp bạn hiểu rõ cách hoạt động và ứng dụng cảm biến siêu âm vào thực tế!