1 Star 1 Fork 0

BI6NTI / 净水机主控MCU代码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main 2.53 KB
一键复制 编辑 原始数据 按行查看 历史
BI6NTI 提交于 2024-01-11 08:26 . update main.
//净水机主控板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;
}
}
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/bi6nti/20231225.git
git@gitee.com:bi6nti/20231225.git
bi6nti
20231225
净水机主控MCU代码
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891