网站建设分为哪几部分,做美容美发学校网站公司,网站怎么做联系我们页面,一般网站维护要多久文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真STM32单片机控制器#xff0c;使用按键、LCD1602液晶、DS18B20模块、PCF8591 ADC、浑浊传感器、PH传感器、液位传感器、继电器、水泵、酸碱调节剂、加热降温装置等。 主要功能使用按键、LCD1602液晶、DS18B20模块、PCF8591 ADC、浑浊传感器、PH传感器、液位传感器、继电器、水泵、酸碱调节剂、加热降温装置等。 主要功能 系统运行后LCD1602显示温度、液位、浑浊度、PH浓度值 可通过按键K3进入阈值设置模式K3键用于切换选择温度阈值、浑浊度、PH浓度 K1和K2用于调节对应阈值K4用于确定并返回主界面。 如果温度高于上限打开降温装置如果温度低于下限打开加热装置 如果温度正常关闭加热和降温装置 如果水位低于下限停止抽水打开加水装置 如果水位高于上限停止加水如果水位正常范围内 浑浊高于上限打开抽水装置 PH高于上限打开酸性调节剂PH低于下限打开碱性调节剂 二、软件设计
/*
作者嗨小易QQ技术交流群570487280*///系统数据获取
void sys_data_get(void)
{static u8 i0;while(1){//温度获取i;if(i%50)sys_ctrl.tempDS18B20_GetTemperture();//浑浊获取sys_ctrl.turbidpcf8591_read_adcvalue(0);sys_ctrl.turbidpcf8591_read_adcvalue(0);sys_ctrl.turbidcal_map(sys_ctrl.turbid,0,255,0,99);//PH获取sys_ctrl.phpcf8591_read_adcvalue(1);sys_ctrl.phpcf8591_read_adcvalue(1);sys_ctrl.phcal_map(sys_ctrl.ph,0,255,0,140);//液位获取sys_ctrl.levelpcf8591_read_adcvalue(2);sys_ctrl.levelpcf8591_read_adcvalue(2);sys_ctrl.levelcal_map(sys_ctrl.level,0,255,0,99); break;}
}//系统数据设置
void sys_data_set(void)
{u8 key0;keyKEY_Scan(0);//模式设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode5)sys_ctrl.mode1;sys_parm_set_show();//系统参数设置显示}if(sys_ctrl.mode!0){//在设置模式下加if(keyKEY1_PRESS){ switch(sys_ctrl.mode){case 1://PH下 sys_ctrl.phl;if(sys_ctrl.phl140)sys_ctrl.phl0;break;case 2://PH上 sys_ctrl.phh;if(sys_ctrl.phh140)sys_ctrl.phh0;break;case 3://温度下 sys_ctrl.templ;if(sys_ctrl.templ99)sys_ctrl.templ0;break;case 4://温度上 sys_ctrl.temph;if(sys_ctrl.temph99)sys_ctrl.temph0;break;case 5://浑浊度 sys_ctrl.turbidh;if(sys_ctrl.turbidh99)sys_ctrl.turbidh0;break;} }//在设置模式下减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://PH下 sys_ctrl.phl--;if(sys_ctrl.phl0)sys_ctrl.phl140;break;case 2://PH上 sys_ctrl.phh--;if(sys_ctrl.phh0)sys_ctrl.phh140;break;case 3://温度下 sys_ctrl.templ--;if(sys_ctrl.templ0)sys_ctrl.templ99;break;case 4://温度上 sys_ctrl.temph--;if(sys_ctrl.temph0)sys_ctrl.temph99;break;case 5://浑浊度sys_ctrl.turbidh--;if(sys_ctrl.turbidh0)sys_ctrl.turbidh99;break;}}//确定else if(keyKEY4_PRESS){sys_ctrl.mode0;sys_open_show();//系统开机界面显示 } }
}//系统功能控制
void sys_fun_ctrl(void)
{//正常工作模式下if(sys_ctrl.mode0){//如果温度高于上限打开降温装置if(sys_ctrl.tempsys_ctrl.temph)JW_PIN0;//如果温度低于下限打开加热装置else if(sys_ctrl.tempsys_ctrl.templ)JR_PIN0;//如果温度正常关闭加热和降温装置else {JW_PIN1;JR_PIN1;}//如果水位低于下限停止抽水打开加水装置if(sys_ctrl.levelsys_ctrl.levell){JS_PIN0;CS_PIN1;}//如果水位高于上限停止加水else if(sys_ctrl.levelsys_ctrl.levelh)JS_PIN1;//如果水位正常范围内else{//浑浊高于上限打开抽水装置if(sys_ctrl.turbidsys_ctrl.turbidh)CS_PIN0;else CS_PIN1;}//PH高于上限打开酸性调节剂if(sys_ctrl.phsys_ctrl.phh){SXTJ_PIN0;JXTJ_PIN1;}//PH低于下限打开碱性调节剂else if(sys_ctrl.phsys_ctrl.phl){SXTJ_PIN1;JXTJ_PIN0; }else{SXTJ_PIN1;JXTJ_PIN1; } }
}//应用控制系统
void appdemo_show(void)
{u8 i10;sys_parm_init();//系统参数初始化KEY_Init();ctrl_pin_init();pcf8591_init();DS18B20_Init();lcd1602_init();//LCD1602初始化//等待数据稳定while(i--){//温度获取sys_ctrl.tempDS18B20_GetTemperture();delay_ms(100);}sys_open_show();//系统开机界面显示while(1){sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制 }
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。