Cảm biến khoảng cách siêu âm HC-SRF05

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

  • Cảm biến siêu âm HY-SRF05 là cảm biến dùng để đo khoảng cách tới vật cản nhờ vào sóng siêu âm được phát ra từ cảm biến và nhận về. Khoảng cách có thể đo trong khoảng 2-300 cm với độ chính xác gần như chỉ phụ thuộc vào cách lập trình.

HY-SRF05.jpg HY-SRF05-1.jpg

Sơ đồ chân

SRF05 có 5 chân, bao gồm: VCC, Trig(Trigger), Echo, Out, và GND.

  • Chức năng của các chân:
  • VCC: Chân cấp nguồn 5V.
  • GND: Chân nối mass(0V).
  • Trig: Chân kích phát sóng siêu âm (ở chế độ 1). Ở chế độ 2 thì chân Trig vừa là chân kích vừa là chân báo tín hiệu phản xạ của sóng siêu âm.
  • Echo: Chân báo có tín hiệu phản xạ của sóng siêu âm.
  • Out: Không dùng (Not Connect).

HY-SRF05-2.jpg

Kết nối chân tới Arduino
Thứ tự chân Tên gọi Mô tả
1 VCC 5v
2 Trig Một chân Digital OUTPUT (phát sóng siêu âm)
3 Echo Một chân Digital INPUT (thu sóng siêu âm)
4 OUT không dùng (Not Connect)
5 GND GND

Sử dụng

Sơ đồ kết nối

  • Kết nối với Arduino

HY-SRF05-3.jpg

Source code mẫu:

const int trig = 8; 
const int echo = 7; 
 
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 thoigian; // biến đo thời gian
    int khoangcach;           // 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. 
    thoigian = pulseIn(echo,HIGH);  
    // Tính khoảng cách đến vật.
    khoangcach = int(thoigian/2/29.412);
    
    /* In kết quả ra Serial Monitor */
    Serial.print(khoangcach);
    Serial.println("cm");
    delay(800);
}


Các rắc rối có thể bạn gặp phải

Tham khảo thêm