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 lắp mạch
- Cách nối dây
Cảm biến------Arduino
GND--------------GND
UOT--------------
TRIG-------------11
ECHO------------12
VCC--------------VCC
Sau đây là phần code lập trình cho
cảm biến
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
Video thực nghiệm https://www.youtube.com/watch?v=mIFeEYLg1hU&feature=youtu.be
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