代码拉取完成,页面将自动刷新
//净水机主控板V1.0
/*引脚说明
制水指示灯PB0
冲洗指示灯PB2
故障指示灯PB1
蜂鸣器PB3
高压开关PA0
低压开关PA1
进水阀PA2
冲洗阀PA3
增压泵PA4
*/
int ZS=PB_0;
int CX=PB_2;
int GZ=PB_1;
int WMQ=PB_3;
int GYKG=PA_0;
int DYKG=PA_1;
int JSF=PA_2;
int CXF=PA_3;
int ZYB=PA_4;
boolean i; //布尔变量i 为低压开关状态
unsigned long time1;
void setup(){
pinMode(ZS, OUTPUT);
pinMode(CX, OUTPUT);
pinMode(GZ, OUTPUT);
pinMode(WMQ, OUTPUT);
pinMode(JSF, OUTPUT);
pinMode(CXF, OUTPUT);
pinMode(ZYB, OUTPUT);
pinMode(GYKG, INPUT_PULLUP);
pinMode(DYKG, INPUT_PULLUP);
}
void loop(){
unsigned long time1;
digitalWrite(ZS,LOW); //初始化
digitalWrite(CX,LOW);
digitalWrite(GZ,LOW);
digitalWrite(JSF,LOW);
digitalWrite(CXF,LOW);
digitalWrite(ZYB,LOW);
if (digitalRead(DYKG)) { //低压开关判断自来水有无,内部上拉模式,置1为断开
digitalWrite(WMQ,HIGH);
delay(3000); //蜂鸣器报警,故障灯常亮
digitalWrite(WMQ,LOW);
while (1) {
digitalWrite(GZ,HIGH);
i=digitalRead(DYKG); //读取低压开关状态 并赋值给i
if(i==0){
digitalWrite(GZ,LOW); //关闭故障灯
break; //跳出循环
}
}
} else {
if (digitalRead(GYKG)) { //高压开关断开,引脚置1(上拉模式),缺水,开始制水
unsigned long startTime = millis(); //获取当前时间
while (1) {
digitalWrite(ZS,HIGH);
digitalWrite(JSF,HIGH);
delay(1000);
digitalWrite(ZYB,HIGH);
unsigned long currentTime = millis(); // 获取当前时间
time1 = currentTime - startTime; //连续制水时长
if(time1>3600000) //制水超时报故障
{
digitalWrite(ZS,LOW);
digitalWrite(JSF,LOW);
digitalWrite(ZYB,LOW);
digitalWrite(WMQ,HIGH);
delay(3000);
digitalWrite(WMQ,LOW);
while(1){
digitalWrite(GZ,HIGH); //故障灯常亮
}
}
if (digitalRead(GYKG)==0) { //水满启动冲洗程序
digitalWrite(CX,HIGH);
digitalWrite(ZS,LOW);
digitalWrite(JSF,LOW);
digitalWrite(ZYB,LOW);
delay(1000);
digitalWrite(JSF,HIGH);
digitalWrite(CXF,HIGH);
digitalWrite(ZYB,HIGH);
delay(15000);
break;
}
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。