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
- 1 Arduino Uno R3.
- 1Module cảm biến siêu âm HY-SRF05.
- 1 LCD 1206 Keypad Shield.
- 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

Viết đánh giá

Họ và tên:


Đánh giá của bạn: Lưu ý: Không hỗ trợ HTML!

Bình chọn: Dở            Hay

Nhập mã bảo vệ: