Tìm hiểu Cảm biến Siêu âm HC-SR04 và Cách Sử dụng với Arduino
1. Giới thiệu: Cảm biến Siêu âm HC-SR04 là gì?
Cảm biến siêu âm HC-SR04 là một module điện tử rất phổ biến được sử dụng để đo khoảng cách không tiếp xúc. Nó hoạt động dựa trên nguyên lý phát và thu sóng siêu âm (âm thanh có tần số cao hơn ngưỡng nghe của con người).

Module này thường được kết hợp với các bo mạch vi điều khiển như Arduino, Raspberry Pi, ESP8266/ESP32 để tạo ra các ứng dụng thực tế như:
Robot tự hành tránh vật cản.
Thiết bị đo khoảng cách cầm tay.
Hệ thống đo mực nước trong bồn chứa.
Cảm biến lùi cho xe mô hình.
2. Cấu tạo và Chân Kết nối
Nhìn bề ngoài, HC-SR04 có hai thành phần chính trông giống như cặp mắt:
Bộ phát (Transmitter - thường ký hiệu T): Phát ra một chùm sóng siêu âm ngắn khi được kích hoạt.
Bộ thu (Receiver - thường ký hiệu R): Lắng nghe và phát hiện sóng siêu âm phản xạ lại từ vật cản.
Ngoài ra, module có 4 chân kết nối chính:
VCC: Chân cấp nguồn dương (+5V DC).
Trig (Trigger): Chân kích hoạt. Gửi một xung tín hiệu ngắn đến chân này để yêu cầu cảm biến bắt đầu đo. Đây là chân Input đối với cảm biến (Output từ Arduino).
Echo: Chân phản hồi. Cảm biến sẽ tạo ra một xung tín hiệu trên chân này, độ dài của xung tỷ lệ thuận với thời gian sóng siêu âm di chuyển đi và về. Đây là chân Output từ cảm biến (Input đối với Arduino).
GND: Chân nối đất (0V).
Bên trong mạch: Module chứa các mạch điện tử để tạo sóng siêu âm, khuếch đại tín hiệu thu về và xử lý tín hiệu cơ bản, nhưng đối với người dùng cuối, chúng ta chỉ cần quan tâm đến 4 chân kết nối trên.
3. Nguyên lý Hoạt động (Cách đo khoảng cách)
HC-SR04 đo khoảng cách theo các bước sau:
Kích hoạt (Trigger): Vi điều khiển (Arduino) gửi một xung tín hiệu HIGH (5V) ngắn (khoảng 10 micro giây - µs) đến chân Trig của cảm biến.
Phát sóng: Ngay sau khi nhận xung kích hoạt, module HC-SR04 tự động phát ra một chùm 8 xung siêu âm ở tần số 40kHz từ bộ phát (T). Đồng thời, nó bắt đầu đưa chân Echo lên mức HIGH (5V).
Chờ phản xạ: Sóng siêu âm di chuyển trong không khí với tốc độ xấp xỉ 340 mét/giây. Khi gặp vật cản, một phần sóng sẽ bị phản xạ lại về phía cảm biến.
Nhận phản xạ (Echo): Khi bộ thu (R) nhận được sóng siêu âm phản xạ, nó ngay lập tức kéo chân Echo xuống mức LOW (0V).
Đo thời gian: Vi điều khiển (Arduino) đo chính xác khoảng thời gian mà chân Echo ở trạng thái HIGH. Khoảng thời gian này (duration) chính là tổng thời gian sóng siêu âm bay từ cảm biến đến vật cản và quay trở lại.
Tính toán khoảng cách:
Vì thời gian đo được (duration) là thời gian cho cả quãng đường đi và về, nên thời gian cho một chiều (từ cảm biến đến vật) là duration / 2.
Biết tốc độ âm thanh trong không khí là khoảng 340 m/s, tương đương 0.034 cm/µs (centimet trên micro giây).
Khoảng cách = (Thời gian một chiều) x (Tốc độ âm thanh)
Khoảng cách (cm) = (duration / 2) * 0.034
Hoặc một công thức thường dùng (dựa trên 1 / (0.034 / 2) ≈ 58.8 hoặc cách tính gốc 1/(2*29.412) trong bài):
Khoảng cách (cm) = duration / 58.8 (Cách tính này thường được làm tròn và sử dụng trong code ví dụ, ví dụ duration / 2 / 29.412 ≈ duration / 58.824).

Ví dụ: Nếu Arduino đo được duration là 588 µs, thì khoảng cách là: 588 / 58.8 = 10 cm.
4. Thông số Kỹ thuật
Điện áp hoạt động: 5V DC
Dòng điện tiêu thụ (hoạt động): ~15mA
Dòng điện chờ: < 2mA
Tần số siêu âm: 40 kHz
Phạm vi đo: Khoảng 2 cm đến 400 cm (4 mét)
Độ chính xác: Khoảng 3 mm (trong điều kiện lý tưởng)
Góc đo hiệu quả: Khoảng 15 độ (cảm biến nhạy nhất với vật cản trực diện)
Tín hiệu kích hoạt (Trig): Xung HIGH 10µs
Tín hiệu phản hồi (Echo): Xung HIGH, độ rộng tỷ lệ với khoảng cách (mức 0V - 5V)
Kích thước: Tương đối nhỏ gọn.
5. Sơ đồ Kết nối với Arduino Uno
Kết nối rất đơn giản:
VCC | 5V | Cấp nguồn |
Trig | Digital Pin 8 (Ví dụ) | Gửi xung kích hoạt |
Echo | Digital Pin 7 (Ví dụ) | Nhận xung phản hồi |
GND | GND | Nối đất (Mass) |

6. Code Arduino Tham khảo
Đây là đoạn code mẫu để đọc khoảng cách từ HC-SR04 và hiển thị lên Serial Monitor của Arduino IDE:
const int trigPin = 8;
const int echoPin = 7;
long duration;
int distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.println("HC-SR04 Khoi dong xong. Bat dau do...");
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 2 / 29.412;
Serial.print("Khoang cach: ");
Serial.print(distance);
Serial.println(" cm");
delay(200);
}
Cách sử dụng code:
Kết nối phần cứng như sơ đồ ở Mục 5.
Mở Arduino IDE, dán code này vào.
Kết nối Arduino với máy tính qua cáp USB.
Chọn đúng Board (Arduino Uno) và Port trong menu Tools.
Nhấn nút Upload để nạp code.
Mở Serial Monitor (biểu tượng kính lúp hoặc Tools -> Serial Monitor). Đảm bảo tốc độ baud là 9600.
Bạn sẽ thấy khoảng cách đo được hiển thị liên tục. Hãy thử đưa tay hoặc một vật cản trước cảm biến để xem giá trị thay đổi.
7. Ưu và Nhược điểm của HC-SR04
Ưu điểm:
Giá thành rẻ: Rất dễ tiếp cận cho các dự án cá nhân và giáo dục.
Dễ sử dụng: Kết nối đơn giản, code điều khiển không phức tạp.
Phổ biến: Có nhiều tài liệu hướng dẫn, ví dụ và thư viện hỗ trợ từ cộng đồng.
Phạm vi đo khá: Từ vài cm đến vài mét, phù hợp nhiều ứng dụng cơ bản.
Không bị ảnh hưởng bởi màu sắc, ánh sáng: Hoạt động tốt trong bóng tối hoặc với các vật thể trong suốt (miễn là chúng phản xạ âm thanh).
Nhược điểm:
Góc đo hẹp (hình nón): Chỉ phát hiện tốt vật cản trong một góc nhất định phía trước, khó phát hiện vật quá nhỏ hoặc ở rìa vùng quét.
Bị ảnh hưởng bởi bề mặt vật liệu: Các vật liệu mềm, xốp (như vải, bông) hấp thụ sóng siêu âm tốt, làm giảm khoảng cách đo hoặc không đo được.
Khoảng cách tối thiểu: Không đo được khoảng cách quá gần (thường dưới 2cm).
Ảnh hưởng bởi môi trường: Nhiệt độ, độ ẩm không khí có thể ảnh hưởng nhẹ đến tốc độ âm thanh, gây sai số nhỏ. Gió mạnh cũng có thể ảnh hưởng.
Nhiễu âm thanh: Tiếng ồn siêu âm từ các nguồn khác có thể gây nhiễu. Nhiều cảm biến HC-SR04 đặt gần nhau có thể nhiễu lẫn nhau nếu không được quản lý thời gian phát xung cẩn thận.
Tốc độ đo giới hạn: Cần có khoảng nghỉ giữa các lần đo để tránh tín hiệu cũ gây nhiễu cho lần đo mới.
8. Một số Ứng dụng Thực tế
Robot tránh vật cản: Giúp robot tự động dừng hoặc đổi hướng khi gặp chướng ngại vật.
Thước đo điện tử: Tạo ra thiết bị đo khoảng cách nhanh chóng.
Hệ thống cảnh báo khoảng cách: Ví dụ: cảnh báo khi xe lùi quá gần tường.
Đo mực chất lỏng: Đo khoảng cách từ cảm biến đến bề mặt chất lỏng trong bồn chứa (cần lưu ý khả năng phản xạ của bề mặt chất lỏng).
Phát hiện người/vật đi qua: Kích hoạt một hành động (bật đèn, chuông báo) khi có vật đi vào vùng quét.
9. Mua Cảm biến HC-SR04 ở đâu?
Cảm biến HC-SR04 rất phổ biến và có giá thành rẻ. Bạn có thể dễ dàng tìm mua tại:
Các cửa hàng linh kiện điện tử trong nước.
Các trang thương mại điện tử như Shopee, Lazada, Tiki,...
Các nhà cung cấp linh kiện quốc tế như AliExpress, Banggood,...
Kết luận
Cảm biến siêu âm HC-SR04 là một lựa chọn tuyệt vời cho những người mới bắt đầu tìm hiểu về cảm biến và các dự án IoT/robotics cơ bản. Với chi phí thấp, cách sử dụng đơn giản và nhiều tài liệu hỗ trợ, nó mở ra nhiều khả năng sáng tạo cho các dự án điện tử của bạn.
Bạn có thể thử mô phỏng hoạt động của cảm biến này với Arduino trên Wokwi tại đây: https://wokwi.com/projects/377910366347889665
Không có nhận xét nào:
Đăng nhận xét