// Cảm biến siêu âm là thiết bị điện tử dùng để đo khoảng cách của một đối tượng mục tiêu bằng cách phát ra sóng siêu âm, sau đó âm thanh phản xạ được chuyển đổi thành tín hiệu điện. Theo đó, bộ phát của cảm biến có khả năng tạo ra âm thanh nhờ sử dụng tinh thể áp điện. Còn bộ thu có vai trò tiếp nhận âm thanh đến và đi từ các vị trí khác nhau
// Nguyên lý hoạt động: Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (5 microSeconds - ú) từ chân Trig. Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ ở pin này. Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại.
const int trig = 8; // chân trig của HC-SR04
const int echo = 7; // chân echo của HC-SR04
void 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);
}