Hướng dẫn sử dụng Module cảm biến siêu âm HY-SRF05
Ứng dụng
Dùng đo khoảng cách, đo mực chất lỏng, robot dò đường,phát hiện các vết đứt gãy trong dây cáp.
Thông số kỹ thuật
- Điện áp vào: 5V
- Dòng tiêu thụ : <2mA
- Tín hiệu đầu ra: xung HIGH(5V) và LOW(0V)
- Khoảng cách đo : 2cm – 450cm
- Độ chính xác : 0.5cm
- Kích thước: 20*45*15mm
- Góc cảm biến :<15 độ
Sơ đồ chân: có 5 chân
1. VCC : 5V.
2. Trig(T) : digital input.
3. echo (R): digital output.
4. OUT.
5. GND.
Nguyên lý hoạt động
+ Ở chế độ 1: Tách biệt, kích hoạt và phản hồi
Để đo khoảng cách, ta 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 được xung phản xạ ở chân 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 quay trở lại. Tốc độ của âm thanh trong không khí là 340 m/s tương đương với 29,412 microSeconds/cm(1000000/(340*100)). Khi đã tính được thời gian ta chia cho 29,412 để được khoảng cách cần đo.
+Ở chế độ 2: Dùng 1 chân cho cả kích hoạt và phản hồi
Ta sử dụng chân OUT để nó vừa phát ra xung rồi nhận xung phản xạ về,chân chế độ thì nối đất.Tín hiệu hồi tiếp sẽ suất hiện trên cùng 1 chân với tín hiệu kích hoạt.SR05 sẽ không tăng dòng phản hồi cho đến 700uS sau khi kết thúc các tín hiệu kích hoạt và bạn đã có thời gian để kích hoạt pin xoay quanh và làm cho nó trở thành 1 đầu vào.
Ứng dụng minh họa: Thiết bị đo khoảng cách và hiển thị kết quả lên LCD.
Chuẩn bị phần cứng
- Dây nối.
Bạn có thể xem hình dưới đây:
Sau khi kết nối xong ta được hình như sau đây:
Cắm dây USB 5V vào Arduino. Như vậy ta đã chuẩn bị xong phần cứng
Code
Phần lập trình , các bạn mở Arduino IDE lên và copy đoạn code dưới vào
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#define TRIG_PIN 8 // Chân Trig nối với chân 8
#define ECHO_PIN 7 // Chân Echo nối với chân 7
#define TIME_OUT 5000 // Time_out của pulseIn là 5000 microsecond
// Chương trình con tính khoảng cách
float getDistance()
{
long duration, distanceCm;
// Phát 1 xung 10uS từ chân Trig
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Thời gian tín hiệu phản hồi lại chân Echo
duration = pulseIn(ECHO_PIN, HIGH, TIME_OUT);
// Tính khoảng cách
distanceCm = duration / 29.1 / 2;
// trả lại giá trịnh tính được
return distanceCm;
}
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// gọi chương trình con getDistance
long distance = getDistance();
if (distance <= 0)
{
Serial.println("Echo time out !!"); // nếu thời gian phản hồi vượt quá Time_out của hàm pulseIn
}
else
{
// Hiển thị khoảng cách đo được lên Serial Monitor
Serial.print("Distance to nearest obstacle (cm): ");
Serial.println(distance);
}
// Chờ 1s và lặp lại cu kỳ trên
delay(1000);
}
|
Đây là kết quả các bạn sẽ đạt được
Bạn có thể tham khao mua hàng tại đây