Bài đăng nổi bật

Cảm biến siêu âm HC-SR04 kết nối với Arduino

Thứ Tư, 17 tháng 2, 2016

Cảm biến siêu âm HC-SR04 kết nối với Arduino

Chào các bạn, hôm này mình xin giới thiệu về sản phẩm cảm biến siêu âm đo khoảng cách. Cảm biến này có tác dụng đo khoảng cách vật sau đó hiển thị lên màn hình LCD, giúp ta biết được khoảng cách với vật
Nguyên lý hoạt động : cảm biến siêu âm SR04 hoạt động bằng cách phát 1 tín hiệu siêu âm (tần số 40Khz) và bắt đầu đếm thời gian nhận được tín hiệu phản hồi khi phát hiện vật cản
Khoảng cách do cảm biến siêu âm SR-04 được tính từ tốc độ và thời gian phản hồi.


Phần cứng
1.     Arduino uno
2.     Siêu âm HC-SR04
Cảm biến này được sử dụng nhiều vì rẽ và chính xác
Nguồn làm việc: 5V
Dòng tiêu thụ : nhỏ hơn 2mA
Tín hiệu đầu ra: xung HIGH (5V) và LOW (0V)
Khoảng cách đo: 2cm - 300cm (3 mét)
Độ chính xác: 0.5cm
3.     Màn hình LCD 16x2
4.     1 breadboard
5.    Dây nối
6. Biến trở để điều chỉnh lcd
*Tất cả các thiết bị có bán trên codientuvina.com, các bạn có thể vào đường link http://codientuvina.com/ 
Cách lắp mạch
- Cách nối dây
Cảm biến------Arduino
GND--------------GND
UOT--------------
TRIG-------------11
ECHO------------12
VCC--------------VCC

LCD----------------Arduino
D4---------------7
D5---------------6
D6---------------5
D7---------------4
Vss-------------5v (trái biến trở)
Vdd-------------GND (phải biến trở)
V0---------------chân giữa của biến trở
Rs------------------9
Rw-----------------5V

E-------------------8
Sau đây là phần code lập trình cho cảm biến
1#include <LiquidCrystal.h>
const int trig = 11;     // chân trig của HC-SR0
const int echo = 12;     // chân echo của HC-
LiquidCrystal lcd(9  , 8, 7, 6, 5, 4);

void setup()
{
    lcd.begin(16, 2);   
    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()
{  
    lcd.setCursor(0, 1);
    unsigned long duration; // biến đo thời gian
    int distance;           // 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.
    duration = pulseIn(echo,HIGH); 
    // Tính khoảng cách đến vật.
    distance = int(duration/2/29.412);
   
    /* In kết quả ra Serial Monitor */
    lcd.print(distance);
    lcd.println(" cm "); 
    delay(1000);
}


Không có nhận xét nào:

Đăng nhận xét