Khác biệt giữa các bản “Cảm biến khoảng cách siêu âm HC-SRF05”
Từ ChipFC Wiki
Dòng 30: | Dòng 30: | ||
− | [[Tập tin:HY-SRF05-2.jpg|300px|giữa]] | + | [[Tập tin:HY-SRF05-2.jpg|300px|nhỏ|giữa]] |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|+ Kết nối chân tới Arduino | |+ Kết nối chân tới Arduino | ||
Dòng 53: | Dòng 53: | ||
Sơ đồ kết nối | Sơ đồ kết nối | ||
* kết nối với Arduino | * kết nối với Arduino | ||
− | [[Tập tin:HY-SRF05-3.jpg|200px|giữa]] | + | [[Tập tin:HY-SRF05-3.jpg|200px|nhỏ|giữa]] |
Source code mẫu: | Source code mẫu: |
Phiên bản lúc 16:07, ngày 17 tháng 7 năm 2017
Bài viết này đang được phát triển hoặc chỉnh sửa lớn. |
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.
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).
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
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);
} |