Water Level Controller using 8051
Bộ điều khiển mực nước sử dụng 8051.
Bộ điều khiển mực nước sử dụng 8051 được trình bày trong bài viết này. Rất nhiều dự án về bộ điều khiển mực nước đã được công bố trên trang web này nhưng đây là dự án đầu tiên dựa trên vi điều khiển. Bộ điều khiển mực nước này giám sát mức của bể chứa trên đầu và tự động bật máy bơm nước khi mức nước xuống dưới mức giới hạn đặt trước. Mức của bể quá áp được chỉ báo bằng cách sử dụng 5 đèn LED và máy bơm được TẮT khi bể chứa quá áp đầy. Máy bơm không được phép khởi động nếu mực nước trong bể chứa thấp và máy bơm cũng được TẮT khi mức bên trong bể chứa xuống thấp trong một chu kỳ bơm.
Các đầu dò cảm biến mức cho bể chứa trên cao được giao tiếp với cổng 2 của bộ vi điều khiển thông qua các bóng bán dẫn. Hãy xem cách bố trí đầu dò cảm biến cho bể chứa trên cao trong Hình 1. Một đầu dò cung cấp điện áp dương đi xuống đáy bể. Các đầu dò để cảm nhận mức 1/4, 1/2, 3/4 và FULL được đặt với khoảng cách bằng nhau, lần lượt ở trên đầu dò dương dưới cùng. Hãy xem xét đầu dò trên cùng (mức đầy đủ), đầu còn lại của nó được kết nối với đế của bóng bán dẫn Q4 thông qua điện trở R16. Bất cứ khi nào nước tăng đến mức đầy đủ, dòng điện chạy vào đế của bóng bán dẫn Q4 làm cho nó BẬT và do đó điện áp bộ thu của nó thấp. Bộ thu của Q4 được kết nối với P2.4 và điện áp thấp ở P2.4 có nghĩa là bể quá áp không ĐẦY ĐỦ. Khi mực nước xuống dưới đầu dò mức đầy đủ, chân đế của Q2 sẽ mở khiến nó TẮT. Bây giờ điện áp bộ thu của nó tăng cao và cao ở P2.4 có nghĩa là bình chưa đầy. Điều tương tự cũng áp dụng cho các đầu dò cảm biến khác (3/4, 1/2, 1/4) và bộ vi xử lý hiểu mức hiện tại bằng cách quét các chân cổng P2.4, P2.5, P2.6 và P2.7. Tất cả các chân cổng này đều ở mức cao (tất cả các đầu dò cảm biến đều mở) có nghĩa là bể chứa rỗng.
Chân cổng P0.5 dùng để điều khiển máy bơm. Khi cần bắt đầu bơm, bộ điều khiển làm cho P0.5 ở mức thấp làm cho bóng bán dẫn Q6 BẬT, lần lượt kích hoạt rơle K1 chuyển máy bơm. Ngoài ra, đèn LED d6 phát sáng cho biết động cơ đang BẬT. LED D7 là chỉ báo bể phốt thấp. Khi mực nước trong bể chứa xuống thấp, bộ điều khiển làm cho P0.7 thấp, làm cho đèn LED D7 phát sáng. Sơ đồ mạch của bộ điều khiển mực nước được thể hiện trong hình bên dưới.
Program.
MOV P2,#11111111B // initiates P2 as sensor input
MOV P0,#11111111B // initiates P2 as the output port
MOV A,#00000000B
MAIN:ACALL SMPCK // checks the level of the sump tank
MOV A,P2 // moves the current status of P2 to A
CJNE A,#11110000B,LABEL1 // checks whether tank is full
SETB P0.1
SETB P0.2
SETB P0.3
SETB P0.4
CLR P0.0 // glows full level LED
SETB P0.5
LABEL1:MOV A,P2
CJNE A,#11111000B,LABEL2 // checks whether tank is 3/4
SETB P0.0
SETB P0.2
SETB P0.3
SETB P0.4
CLR P0.1 // glows 3/4 level LED
LABEL2:MOV A,P2
CJNE A,#11111100B,LABEL3 // checks whether tank is 1/2
SETB P0.0
SETB P0.1
SETB P0.3
SETB P0.4
CLR P0.2 // glows 1/2 level LED
LABEL3:MOV A,P2
CJNE A,#11111110B,LABEL4 // checks whether tank is 1/4
SETB P0.0
SETB P0.1
SETB P0.2
SETB P0.4
CLR P0.3 // glows 1/4 level LED
JB P0.6,LABEL4
CLR P0.5 // switches motor ON
LABEL4:MOV A,P2
CJNE A,#11111111B,MAIN // checks whether tank is empty
SETB P0.0
SETB P0.1
SETB P0.2
SETB P0.3
CLR P0.4 // glows EMPTY LED
JB P0.6,MAIN // checks whether sump is low
CLR P0.5 // switches motor ON
SJMP MAIN
SMPCK:JB P0.6,LABEL5 // checks whether sump is low
SETB P0.7 // extinguishes the sump low indicator LED
SJMP LABEL6
LABEL5:SETB P0.5 // switches the pump OFF
CLR P0.7 // glows sump low indicator LED
LABEL6:RET
END