Các anh kiểm tra hộ e code này với ạ, nguyên lí là "ban đầu cấp nguồn cho 3 cảm biến (pw=0) trong 2p, nếu cảm biến cho thiếu độ ẩm thì rơle đóng(rl=0) thì giữ nguyên nguồn cho 3 cảm biến, và ngắt giá trị role (rl=1) khi cảm biến cho giá trị ra đủ độ ẩm. Ngược lại, nếu cảm biến cho giá trị đủ độ ẩm thì ngắt nguồn(pw=1) trong 30, sau 30p lặp lại tiếp tục cấp cấp nguồn cho 3 cảm biến như đầu", e dùng delay nhưng có vẻ k hiệu quả, thời gian dừng cấp nguồn với cấp nguồn k chạy, các anh xem và fix hộ e với ạ
phần mạch đây ạ

phần mạch đây ạ

Code:
#include <REGX51.H>
sbit cb1=P3^0;//cam bien do am 1
sbit cb2=P3^2;//cam bien do am 2
sbit cb3=P3^3;//cam bien do am 3
sbit pw=P3^4;//nguon cho cam bien
sbit rl=P3^5;//dong role de bom nuoc
void delay(long time)
{
long n;
for(n=0 ; n<time ; n++)
{
;
}
}
void main(void)
{
while(1)
{
pw=0;//cap nguon cho 3 cam bien
delay(120000);//keo dai trong 2p
if(cb1==0&&cb2==0||cb2==0&&cb3==0||cb1==0&&cb3==0)
{
rl=0;
}
else
{
pw=1;tat nguon cho 3 cam bien
delay(1800000);//tat nguon trong 30p
}
}
}
