Cảm biến siêu âm HC-SR04 (Ultrasonic Sensor) được sử dụng rất phổ biến để đo khoảng cách trong khoảng từ 2 -> 300cm, với độ chính xác gần như chỉ phụ thuộc vào cách lập trình.
VCC (5V), trig (chân điều khiển phát), echo (chân nhận tín hiệu phản hồi), GND (nối đất)
Cảm biến siêu âm SR04 sử dụng nguyên lý phản xạ sóng siêu âm. Cảm biến gồm 2 module.1 module phát ra sóng siêu âm và 1 module thu sóng siêu âm phản xạ về. Đầu tiên cảm biến sẽ phát ra 1 sóng siêu âm với tần số 40khz. Nếu có chướng ngại vật trên đường đi, sóng siêu âm sẽ phản xạ lại và tác động lên module nhận sóng. Bằng cách đo thời gian từ lúc phát đến lúc nhận sóng ta sẽ tính được khoảng cách từ cảm biến đến chướng ngại vật.
Khoảng cách = (thời gian * vận tốc âm thanh (340 m/s) / 2
Thông số kỹ thuật
- Điện áp: 5V DC
- Dòng hoạt động: < 2mA
- Mức cao: 5V
- Mức thấp: 0V
- Góc tối đa: 15 độ
- Khoảng cách: 2cm – 450cm (4.5m)
- Độ chính xác: 3mm
Sơ đồ chân:
Code tham khảo Arduino:
/* HCSR04 Arduino
VCC 5V
GND GND
TRIG 8
ECHO 7Nạp code mở Serial Monitor chọn No line ending, baud 9600.
*/
const int trig = 8; // chân trig của HC-SR04
const int echo = 7; // chân echo của HC-SR04void setup()
{
Serial.begin(9600); // giao tiếp Serial với baudrate 9600
pinMode(trig,OUTPUT); // chân trig sẽ phát tín hiệu
pinMode(echo,INPUT); // chân echo sẽ nhận tín hiệu
}void loop()
{
unsigned long duration; // biến đo thời gian
int distance; // biến lưu khoảng cách/* Phát xung từ chân trig */
digitalWrite(trig,0); // tắt chân trig
delayMicroseconds(2);
digitalWrite(trig,1); // phát xung từ chân trig
delayMicroseconds(5); // xung có độ dài 5 microSeconds
digitalWrite(trig,0); // tắt chân trig/* Tính toán thời gian */
// Đo độ rộng xung HIGH ở chân echo.
duration = pulseIn(echo,HIGH);
// Tính khoảng cách đến vật.
distance = int(duration/2/29.412);/* In kết quả ra Serial Monitor */
Serial.print(distance);
Serial.println("cm");
delay(200);
}
Tài liệu tham khảo:
Video tham khảo: