Mạch đo và hiển thị mực nước sử dụng arduino

MẠCH ĐO VÀ HIỂN THỊ MỰC NƯỚC SỬ DỤNG ARDUINO

Đây là mạch thông tin mực nước giúp người dùng hoàn toàn có thể biết được lượng nước trong bể nước trên cao. Mạch hoàn toàn có thể tăng cấp lên để trấn áp mực nước trong bể bằng cách bật máy bơm khi mực nước ở mức thấp và tắt bơm khi mực nước ở mức cao. Do đó, mạch thông tin mực nước sử dụng Arduino giúp ngăn ngừa thực trạng thiếu nước trong bể trên cao. Mạch là sử dụng những linh phụ kiện không dây vì thế nó rất dễ setup và hoàn toàn có thể hoạt động giải trí tới 100 mét .

Có hai mạch được sử dụng: Mạch phát và mạch thu. Mạch phát sử dụng cảm biến siêu âm để đo mực nước theo 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 gắn với mạch thu.

Bạn đang đọc: Mạch đo và hiển thị mực nước sử dụng arduino

Nguyên lí làm việc

Cảm biến siêu âm được sử dụng trong mạch phát, đo khoảng cách mực nước bồn. Khoảng cách được đo bằng cm và được gửi đến mạch thu bằng tiếp xúc RF .

Mạch thu nhận tài liệu từ mạch phát và quy đổi theo tỷ suất Tỷ Lệ và hiển thị trên LCD .

Cảm biến siêu âm có 2 bộ phận truyền và nhận tín hiệu là Trigger và Echo. Trigger phát ra sóng âm thanh ở tần số cao. Những sóng âm thanh này được truyền qua bồn nước từ trên xuống dưới. Khi những sóng âm chạm vào mặt nước và thì được phản xạ trở lại dưới dạng sóng Echo. Cảm biến mực nước Arduino đo khoảng chừng thời hạn truyền nhận giữa Echo và Trigger. Sau khi đo lường và thống kê sẽ cho ra khoảng cách tương ứng .

Mạch phát:

Trong mạch này, cảm biến siêu âm được nối với chân D9 và D10 của Arduino. Cảm biến siêu âm được cấp nguồn bởi chân Vcc và GND, những chân này nối với chân Vcc và GND của Arduino. Dữ liệu đo được truyền đi bởi mạch phát RF. Chân Data của mạch phát RF được nối với chân D4 của Arduino Nano. Các chân Vcc và GND của mạch phát RF nối với những chân Vcc và GND của Arduino. Trong mạch phát này, Anten được sử dụng được nối với chân ANT của mạch phát RF, mạch sử dụng nguồn 9V. Nguồn này nối với chân Vin và GND của Arduino .

Mạch thu:

Trong mạch thu, Bộ thu RF nhận dữ liệu từ mạch phát. Chân Data của Bộ thu RF nối với chân D4 của Arduino. Mực nước được hiển thị trên LCD và LCD nối với Arduino từ chân D4 đến D9. LCD được cấp nguồn từ chân Vcc và GND qua Arduino. Mạch thu cũng sử dụng nguồn 9V thông qua một công tắc, được nối giữa pin Vcc và GND của Arduino. Mạch được hiển thị như hình dưới đây.

Sơ đồ mạch in PCB

Mạch thu

Mạch phát

Chương trình viết cho mạch phát

# include
# include

Ultrasonic ultrasonic ( 11,10 ) ;
RCSwitch mySwitch = RCSwitch ( ) ;

int i ;

void setup ( ) {
mySwitch. enableTransmit ( 4 ) ;
}

void loop ( ) {
i = ultrasonic. Ranging ( CM ) ;
mySwitch. send ( i, 24 ) ;
delay ( 100 ) ;
}
Đầu tiên là khái báo những thư viện. “ RCSwitch. h ” được sử dụng cho bộ phát RF và “ Ultrasonic. h ” dùng cho cảm biến siêu âm .
Chân của cảm biến siêu âm được khai báo bằng tên Ultrasonic trong dòng 4, chân 11 là Trig và chân10 là Echo. Trong dòng 5, “ RCSwitch ” được khai báo cho bộ phát theo tên là “ mywwitch ”. Trong dòng 7, biến i được khai báo theo kiểu “ int ”. Bộ phát được kích hoạt bởi hàm “ myww. enableTransmit ( 4 ) ”, trong đó chân data của mạch phát được nối với chân D4 của Arduino .
Trong vòng lặp void, khoảng cách được đo bằng hàm “ Ultrasonic. Ranging ( CM ) ” và nó được gán theo biến i, khoảng cách này tính bằng cm .
Trong dòng 15, khoảng cách đo được truyền bởi hàm “ myww.send ( i, 24 ) ”, trong đó, i là khoảng cách và 24 là định dạng bit. Arduino sẽ gửi tài liệu sau mỗi 100 ms .

Chương trình viết cho mạch thu

# include

#include

LiquidCrystal lcd ( 4, 5, 6, 7, 8, 9 ) ;
RCSwitch mySwitch = RCSwitch ( ) ;

float level ;

int Hval = 2 ;
int Lval = 12 ;
int BUZZER = 10 ;

void setup ( ) {
mySwitch. enableReceive ( 0 ) ;

lcd.begin ( 16, 2 ) ;
lcd.print ( ” WATER LEVEL INDI ” ) ;

pinMode ( BUZZER, OUTPUT ) ;
}

void loop ( ) {
if ( mySwitch. available ( ) ) {

level = mySwitch. getReceivedValue ( ) ;

level = level / ( Lval – Hval ) ;
level = level * 100 ;

if ( level > 100 ) { level = 100 ; }

lcd. setCursor ( 0, 1 ) ;
lcd.print ( ” LEVEL ” ) ;
lcd.print ( level ) ;
lcd.print ( ” % ” ) ;

mySwitch. resetAvailable ( ) ;

}
digitalWrite ( BUZZER, HIGH ) ;
if ( level > 99 ) { digitalWrite ( BUZZER, HIGH ) ; delay ( 100 ) ; digitalWrite ( BUZZER, LOW ) ; delay ( 100 ) ; }
else { digitalWrite ( BUZZER, LOW ) ; }
}
Đầu tiên khai báo 2 thư viện : “ RC RCSwitch. h ” sử dụng để liên lạc RF giữa bộ phát và bộ thu và “ LiquidCstall. h ” được sử dụng cho màn hình hiển thị LCD .
Dòng 4, những chân Arduino được khai báo, được liên kết với LCD. Tổng cộng có 6 chân được liên kết với Arduino là D4, D5, D6, D7, D8, D9. Trong dòng 5, “ RCSwitch ” đã được khai báo với tên là tên “ mySwitch ” .
Dòng 7, biến “ level ” được khai báo theo kiểu “ float ” để hiển thị mực nước. Trong dòng 9 và 10, “ Hval ” và “ Lval ” được khai báo theo kiểu “ int ” trong đó, “ Hval ” là giá trị mức cao của mực nước và “ Lval ” là giá trị mức thấp của mực nước. Khai báo chân BUZZER theo kiểu “ int ” .
Bộ thu RF được kích hoạt bởi hàm “ myww. enableReceiver ( 0 ) ”, trong đó 0 là chân ngắt ( INT0 ) và là chân D2 của Arduino .
Dòng 16, LCD kích hoạt trải qua lệnh “ LCD.begin ( 16, 2 ) ” và trong dòng 17, “ LCD.print ” có công dụng xuất ra màn hình hiển thị LCD mực nước ở hàng tiên phong của màn hình hiển thị .
Dòng 19, khai báo chân BUZZER là OUTPUT .
Trong vòng lặp ( void loop ) nếu lệnh “ if ( mySwitch. av Available ( ) ) ” đúng, chương trình sẽ thực thi những lệnh trong vòng lặp. Ở dòng 25, tài liệu từ Bộ thu RF được giải thuật bởi hàm “ myww. getRecivingValue ” và được lưu trong biến “ level ” .

Dòng 27 và 28, biến “Level” được xử lý và chuyển đổi thành tỷ lệ phần trăm. Dòng 30, sử dụng điều kiện của “If” để giới hạn tỷ lệ phần trăm.

Trong dòng 32, 33, 34, 35, “ level ” được hiện trên màn hình hiển thị LCD và trong dòng 37 hàm “ mySwitch. reset. Av Available ( ) ” được sử dụng để cài lại mô-đun RF .
Cuối cùng khi điều kiện kèm theo “ if ( level > 99 ) ” đúng thì chuông sẽ kêu trong khoảng chừng thời hạn 100 ms .

Source: https://dvn.com.vn
Category: Phụ Kiện

Alternate Text Gọi ngay