Đã được đăng vào 05/06/2019 @ 10:30
Đo khoảng cách (cm-inch) với cảm biến siêu âm SR04T và Arduino
Dưới đây là hướng dẫn đo khoảng cách sử dụng các module siêu âm có sẵn trên thị trường.
Các bạn có thể sử dụng Module siêu âm chống nước JSN-SR04T hoặc Module siêu âm KHÔNG chống nước HC-SR04.
Code hoạt động trên cả 2 loại và không cần chỉnh sửa gì cả, ráp đúng chân là chạy.
Xem thêm:
- Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
- Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
- Đo khoảng cách bằng cảm biến siêu âm HC-SRF04


Trong bài viết này, mình sẽ lập trình bằng Arduino để đo khoảng cách:
- Đơn vị đo “cm” hoặc “inch”
- Hiển thị đồng thời qua màn LCD 16×2 và Serial qua máy tính
- Hiển thị LCD 16×2 dùng giao tiếp I2C – Yêu cầu mua module chuyển đổi I2C cho LCD (Nếu không muốn dùng I2C có thể tham khảo bài sau để sử dụng cách mắc trực tiếp LCD – Hơi tốn chân GPIO của board Arduino nhưng đỡ tiền mua module I2C)
- Đo môi trường ngoài không khí và trong môi trường nước (Thả chìm đầu đo và nước)
VẬT TƯ CẦN THIẾT

-01 module cảm biến siêu âm JSN-SR04T hoăc HC-SR04


Module siêu âm chống nước JSN-SR04T rất tiện dụng cho các ứng dụng ngoài trời như cảm biến đỗ xe; đo khoảng cách ngoài trời; đo mức nước bể cá, bể nước, đo mức nhiên liệu xăng, dầu,…
Bảng thông số của module JSN-SR04T mình trích ra từ tài liệu nhà sản xuất: Download

Giải thích:
Điện áp hoạt động | DC 3 – 5.5V |
Dòng tiêu thụ | Khoảng 8mA |
Tần số đầu dò | 40KHz |
Dải đo | 20cm – 600cm |
Sai số | +- 1cm |
Độ phân giải | 1mm |
Góc mở đầu dò | 75 độ |
Chú ý:
Vì cảm biến JSN-SR04T có góc mở rất lớn ( >= 75 độ) nên KHÔNG phù hợp đo khoảng cách trong không gian chật hẹp.
Chỉ nên dùng trong không gian mở như ngoài trời hoặc bể chứa kích thước lớn- không vật cản.
Nếu đo trong không gian chật hẹp thì sai số rất lớn do sóng phản xạ lại bị va đập vào vật cản hoặc thành bể – bình chứa.
Ảnh dưới mô tả góc quét và phản xạ của 1 loại cảm biến siêu âm trên thị trường, tùy loại sẽ có góc khác nhau:




SƠ ĐỒ NGUYÊN LÝ

Sơ đồ chân kết nối
MODULE PIN | ARDUINO PIN |
Trigger pin (Module SR04) | Pin 11 |
Echo Pin (Module SR04) | Pin 12 |
SDA Pin (LCD I2C) | Pin A4 |
SCL Pin (LCD I2C) | Pin A5 |
5V | 5V |
GND | GND |
THƯ VIỆN CHO CẢM BIẾN SIÊU ÂM
Hầu hết các module cảm biến siêu âm sử dụng thư viện NewPing. Các bạn có thể tham khảo code mẫu tại đây: Download here
- Thư viện LCD I2C NewLiquidCrystal : Download here
Hướng dẫn: Tải thư viện về và copy vào thư mục library của Arduino trong Documents
CODE
Nếu bạn sử dụng thư viện NewPing bạn có thể thử dùng “NewPingExample”
- Code cơ bản 01 Arduino sử dụng thư viện LCD I2C NewLiquidCrystal, hiển thị đồng thời LCD và Serial, đợn vị đo “cm” hoặc “inch“, môi trường đo trong không khí: Download here
- Code cơ bản 02 Arduino sử dụng thư viện LCD I2C NewLiquidCrystal, hiển thị đồng thời LCD và Serial, đợn vị đo “cm“, môi trường đo trong NƯỚC: Download here
- Code nâng cao Arduino sử dụng thư viện LCD I2C NewLiquidCrystal, hiển thị đồng thời LCD và Serial, đợn vị đo “cm”, môi trường đo trong không khí, có điều chỉnh mức cảnh báo “dưới ngưỡng” hoặc “vượt ngưỡng” cho phép, tín hiệu cảnh báo “dưới ngưỡng” hoặc “vượt ngưỡng” đưa ra 2 đèn LED (dễ dàng thay bằng còi hú, relay.. tùy bạn chỉnh) và cảnh báo cả trên Serial: Download here
- Điều chỉnh thông số cảnh báo “dưới ngưỡng” hoặc “vượt ngưỡng” ở 2 dòng dưới đây (Các bạn tự điều chỉnh phù hợp với thực tế) :
— Khoảng cách từ cảm biến đến vật cản 550cm- Khoảng cách khá xa, an toàn không va chạm hoặc bể nước sắp cạn-> cảnh báo (Tối đa 600cm – Khuyến nghị dùng tối đa trong khoảng 250-450cm)
int maximumRange = 550;
— Khoảng cách từ cảm biến đến vật cản 30cm- Khoảng cách khá gần, không an toàn sắp va chạm hoặc bể nước sắp đầy, tràn-> cảnh báo (Tối thiểu 20cm)
int minimumRange = 30;
- Chân kết nối 2 LED cảnh báo: Pin 13 và Pin 8 của Arduino nối với Anot của mỗi LED (Có thể nối Loa báo động hoặc Relay vào 2 chân này thay cho LED)
define G_LED 13 // Onboard Green LED - Pin 13
define R_LED 8 // Onboard Red LED - Pin 8
TEST
Mạch hoạt động khá tốt, khoảng cách đo tối thiểu 20cm và tối đa 6m (khuyến cáo đo tối đa trong 2.5m).
- Nếu muốn đó chính xác hơn và dùng trong không gian nhỏ, chật hẹp thì nên dùng module HC-SR04
- Nếu muốn đo trong không gian rộng rãi + yêu cầu chống nước, đo dưới nước, đo trong môi trường khắc nghiệt thì nên dùng module JSC-SR04T



Nguồn: surtrtech.com
Để lại một bình luận