bài viết hướng dẫn cách làm mạch Chỉ báo mực nước sử dụng cảm biến arduino và siêu âm
Chỉ báo mực nước sử dụng cảm biến arduino và siêu âm
Chỉ số mực nước sử dụng Arduino
Chỉ báo mực nước không dây sử dụng cảm biến siêu âm & Arduino là một dự án tuyệt vời và rất hữu ích. Mục tiêu của dự án này là thông báo cho người sử dụng lượng nước có trong bể chứa nước trên cao. Dự án này có thể được tăng cường hơn nữa để kiểm soát mực nước trong bể bằng cách bật nó lên, khi mực nước thấp và tắt nó khi mực nước cao. Do đó, chỉ báo mực nước Arduino giúp ngăn ngừa lãng phí nước trong bể trên cao. Dự án này là không dây như vậy, nó rất dễ dàng để cài đặt và nó có thể làm việc lên đến 100 mét.
Trong dự án này hai mạch được sử dụng: một mạch truyền và một mạch thu. Mạch phát sử dụng cảm biến siêu âm để đo mực nước về khoảng cách. Dữ liệu này được gửi đến mạch thu bằng cách sử dụng giao tiếp RF. Mực nước được hiển thị theo tỷ lệ phần trăm trên mô-đun LCD 16×2, được kết nối với mạch thu.
Các thành phần được sử dụng
Làm việc
Trong dự án hai mạch được sử dụng, Đầu tiên là máy phát và thứ hai là máy thu. Một cảm biến siêu âm được sử dụng trong mạch truyền, đo khoảng cách mực nước từ điểm trên của chai hoặc bể. Khoảng cách được đo bằng cm và gửi đến mạch thu bằng cách sử dụng giao tiếp RF.
Mạch thu nhận dữ liệu từ mạch phát và chuyển đổi nó về tỷ lệ phần trăm và hiển thị trên màn hình LCD.
Cảm biến siêu âm có hai lỗ, một là Trigger và một là Echo. Kích hoạt làm cho sóng âm thanh tần số cao. Những sóng âm thanh được truyền qua bể từ trên xuống dưới. Các sóng âm thanh rơi xuống nước và được phản xạ trở lại dưới dạng sóng Echo. Echo mở nhận được sóng Echo. Cảm biến mực nước Arduino đo thời gian giữa Echo và Trigger. Khoảng cách di chuyển này tỷ lệ thuận với thời gian.
Mạch chỉ báo mực nước Arduino
Trong dự án này, hai mạch được sử dụng
• Mạch phát – Mạch phát được hiển thị trong hình dưới đây. Fig1, trong mạch này một cảm biến siêu âm được kết nối với pin D9 và D10 pin của Arduino. Cảm biến siêu âm được cung cấp bởi Vcc và pin GND, các chân được kết nối với Vcc và GND pin của Arduino. Dữ liệu đo được truyền qua máy phát RF. Pin dữ liệu của máy phát RF được kết nối với pin D4 của Arduino Nano. Chân Vcc và GND của máy phát RF được kết nối với chân Vcc và GND của Arduino. Trong mạch phát này, một Ăng-ten được sử dụng được kết nối với pin ANT của máy phát RF, toàn bộ mạch được cung cấp bởi pin 9 volt. Pin được kết nối với Vin và GND pin của Arduino.
• Mạch thu – Trong mạch thu, bộ thu RF được sử dụng để nhận dữ liệu từ máy phát. Pin dữ liệu của rf nhận được kết nối với D4 pin của Arduino. Mực nước được hiển thị trên màn hình LCD và LCD được kết nối với Arduino từ pin D4 đến D9. LCD được cung cấp bởi Vcc và pin GND bằng cách sử dụng Arduino, độ tương phản của LCD được thay đổi bằng cách di chuyển cài đặt trước, được kết nối với pin 3 của LCD. Mạch thu được cung cấp bởi pin 9 Volt thông qua công tắc, được kết nối giữa Vcc và pin GND của Arduino. Mạch được hiển thị trong hình dưới đây.
Máy phát
Trong mã hóa của phía máy phát, hai tập tin tiêu đề được sử dụng. Đầu tiên là RCSwitch.h, được sử dụng cho máy phát RF và thứ hai là Ultrasonic.h, được sử dụng cho cảm biến siêu âm.
Bây giờ chân của cảm biến siêu âm được tuyên bố bằng tên siêu âm trong dòng 4, pin11 là Trig và pin10 là Echo. Trong dòng 5 RCSwitch được tuyên bố cho máy phát bằng tên "mySwitch". Trong dòng 7, một số nguyên được khai báo bằng tên "i".
Trong khoảng trống thiết lập Transmitter được kích hoạt bởi chức năng "mySwitch.enableTransmit(4)", nơi máy phát dữ liệu pin được kết nối với pin D4 của Arduino.
Trong vòng lặp khoảng trống, khoảng cách được đo bằng chức năng "siêu âm. Ranging(CM)" và nó được gán bằng số nguyên "I", khoảng cách này được đo bằng cm.
Trong dòng 15, khoảng cách đo được truyền qua chức năng "mySwitch.send(i, 24)", trong đó "i" là khoảng cách và 24 là định dạng bit. Sau khi tất cả "sự chậm trễ" của 100 mili giây được sử dụng, có nghĩa là Arduino gửi dữ liệu sau mỗi 100 mili giây.
Nhận
Ở phía người nhận, hai tập tin tiêu đề được sử dụng, Đầu tiên là "RCSwitch.h" được sử dụng để giao tiếp RF giữa máy phát và người nhận và thứ hai là "LiquidCrystal.h", được sử dụng cho màn hình LCD.
Trong dòng 4, chân Arduino được khai báo, được kết nối với màn hình LCD. Tổng cộng 6 chân được kết nối với Arduino là D4, D5, D6, D7, D8, D9. Trong dòng 5, "RCSwitch" được tuyên bố bằng tên "mySwitch".
Trong dòng 7, một phao được tuyên bố bằng tên "mức độ", trong đó cho thấy mực nước và trong dòng 9 và 10 hai số nguyên được tuyên bố bằng tên "Hval" và "Lval" trong đó, "Hval" là giá trị trên của mực nước (khoảng cách từ cảm biến siêu âm) và "Lval" là giá trị thấp hơn của mực nước (khoảng cách từ cảm biến siêu âm). Sau khi tất cả các pin của buzzer được tuyên bố bởi số nguyên "BUZZER" trong đó, 10 là mã PIN D10 của Arduino.
Trong khoảng trống thiết lập RF nhận được kích hoạt bởi chức năng "mySwitch.enableReceiver(0)", nơi 0 là ngắt pin (INT0) đó là D2 pin của Arduino.
Trong dòng 16, màn hình LCD bắt đầu bằng chức năng "lcd.begin(16, 2)", và trong dòng 17, "lcd.print" được sử dụng để hiển thị "MỰC NƯỚC INDI" ở hàng đầu tiên của màn hình LCD.
Trong dòng 19, "pinMode(BUZZER, OUTPUT)" tuyên bố pin BUZZER là OUTPUT.
Trong "void loop()" trong begening "nếu (mySwitch.available())" được sử dụng, có nghĩa là nếu bất kỳ dữ liệu nhận được từ RF Receiver, chương trình đi vào vòng lặp. Trong dòng 25, dữ liệu đến từ rf nhận được giải mã bởi chức năng "mySwitch.getRecivedValue" và lưu trong một phao "cấp".
Trong dòng 27 và 28 "cấp" được xử lý và chuyển đổi thành tỷ lệ phần trăm, bằng cách sử dụng một số biểu thức toán học. Trong dòng 30, điều kiện "Nếu" được sử dụng để giới hạn tỷ lệ phần trăm.
Trong dòng 32, 33, 34, 35 mức được in trên màn hình LCD và trong dòng 37 "mySwitch.reset.Available()" chức năng được sử dụng để thiết lập lại các mô-đun RF.
Ở phần cuối của mã, "Nếu" điều kiện được sử dụng để bật còi, nếu mức độ trở nên nhiều hơn sau đó 99 phần trăm.
Hotline: 0979 466 469