Đo Khoảng Cách Bằng Cảm Biến Siêu Âm -Arduino
1. Chuẩn Bị:
Arduino Uno R3 SMD CH340 ( Tặng Cáp ).
Cảm biến siêu âm HC-SR05 sử dụng sóng siêu âm để xác định khoảng cách đến một đối tượng. Cảm biến này đọc từ 2cm đến 400cm (0.8inch đến 157inch) với độ chính xác là 0.3cm (0.1inches), đây là độ chính xác tốt đối với hầu hết các dự án của các nhà sáng chế. Ngoài ra, mô-đun này đi kèm với các mô-đun truyền và nhận sóng siêu âm.
Hình ảnh sau đây cho thấy cảm biến siêu âm HC-SR05.
HC-SR05 Ultrasonic Sensor Module Distance Measurement Component Part Back Tính năng Dưới đây là danh sách một số tính năng và thông số kỹ thuật của cảm biến siêu âm HC-SR05 - để biết thêm thông tin, bạn nên tham khảo bảng thông số kỹ thuật của cảm biến:
Nguồn cấp: +5V DC
Dòng tĩnh: <2mA
Dòng làm việc: 15mA
Góc hiệu quả: <15°
Khoảng cách đo: 2cm - 400 cm/1" - 13ft
Độ phân giải: 0.3 cm Góc đo: 30 độ
Điện xung kích hoạt đầu vào: xung TTL 10uS
Tín hiệu đầu ra Echo: xung TTL tỷ lệ thuận với khoảng cách đo được
Kích thước: 45mm x 20mm x 15mm
2. Kết Nối Arduino & HC-SR05 Sensor
3. Phần Code
/*
* created by Rui Santos, https://randomnerdtutorials.com
*
* Complete Guide for Ultrasonic Sensor HC-SR04
*
Ultrasonic sensor Pins:
VCC: +5VDC
Trig : Trigger (INPUT) - Pin11
Echo: Echo (OUTPUT) - Pin 12
GND: GND
*/
int trigPin = 11; // Trigger
int echoPin = 12; // Echo
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// Convert the time into a distance
cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by 0.0343
inches = (duration/2) / 74; // Divide by 74 or multiply by 0.0135
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}