【Proteus仿真】【STM32单片机】智能浴室水温调控仪设计

news/2024/10/17 5:37:45/

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602、DS18B20、继电器加热、电机模块等。

系统运行后,LCD1602显示DS18B20采集温度值、温度上限阈值。
开启加水,一段时间后开启加热,当水位到达后停止注水,继续
加热到设定温度,可通过K1、K2键对温度上限设置,
若检测温度大于或等于上限,关闭加热装置;
若温度低于上限,开启加热装置;

主要功能如下:
1、水温,水位实时检测
2、水温设定,超限关闭加热
3、继电器控制加热、注水
4、LCD1602液晶显示


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*///系统参数初始化
void sys_parm_init(void)
{//初始自动模式sys_ctrl.mode=0;//温度上限值sys_ctrl.temph=37;sys_ctrl.sign=0;//默认温度符号为正	
}//开机界面显示
void sys_open_show(void)
{lcd1602_clear();lcd1602_show_string(0,0,"Temp:      C");lcd1602_show_string(0,1,"Set TH:  C");		
}//系统参数设置
void sys_parm_set(void)
{u8 key=0;key=KEY_Scan(0);//温度上限设置if(key==KEY1_PRESS)//加	{sys_ctrl.temph+=THRESHOLD_STEP;if(sys_ctrl.temph>TEMP_MAX)sys_ctrl.temph=0;		}else if(key==KEY2_PRESS)//减	{sys_ctrl.temph-=THRESHOLD_STEP;if(sys_ctrl.temph<TEMP_MIN)sys_ctrl.temph=0;		}
}//系统数据采集
void sys_data_get(void)
{static u8 i=0;while(1){	i++;//间隔采集温度if(i%1==0){sys_ctrl.temp=DS18B20_GetTemperture()*10;//放大10倍,保留小数点后1位if(sys_ctrl.temp<0){sys_ctrl.sign=1;//负温度符号sys_ctrl.temp=-sys_ctrl.temp;}		else sys_ctrl.sign=0;//正温度符号	}break;}
}//系统数据显示
void sys_data_show(void)
{u8 buf[6];//正常界面显示温度while(1){//温度符号显示if(sys_ctrl.sign==1)	lcd1602_show_num(5,0,'-',0);			elselcd1602_show_num(5,0,' ',0);	//温度显示buf[0]=sys_ctrl.temp/1000+0x30;if(buf[0]==0x30)buf[0]=' ';buf[1]=sys_ctrl.temp%1000/100+0x30;	if(buf[0]==' ' && buf[1]==0x30)buf[1]=' ';		buf[2]=sys_ctrl.temp%1000%100/10+0x30;buf[3]='.';buf[4]=sys_ctrl.temp%1000%100%10+0x30;buf[5]='\0';lcd1602_show_string(6,0,buf);//温度上限显示	lcd1602_show_nums(7,1,sys_ctrl.temph,2,1);break;	}		
}//系统功能控制
void sys_fun_ctrl(void)
{static u8 flag=0;while(1){//如果液位到达,停止加水if(YW_SWITCH==0 && flag==0){delay_ms(10);if(YW_SWITCH==0){ZS_RELAY(1);//停止加水flag=1;}}//如果温度到达设定温度,停止加热if(sys_ctrl.temp>=sys_ctrl.temph*10){JR_RELAY(1);//停止加热}else{JR_RELAY(0);//开始加热}break;}		
}//应用控制系统
void appdemo_show(void)
{u8 i=10;LED_Init();KEY_Init();lcd1602_init();DS18B20_Init();jr_zs_gpio_init();yw_switch_gpio_init();sys_parm_init();//系统参数初始化//等待温度数据稳定while(i--){sys_ctrl.temp=DS18B20_GetTemperture()*10;delay_ms(100);	}sys_open_show();//系统开机显示ZS_RELAY(0);//开始加水delay_ms(2000);JR_RELAY(0);//开始加热while(1){sys_data_get();//系统数据采集sys_data_show();//系统数据显示sys_parm_set();//系统参数设置sys_fun_ctrl();//系统功能控制	}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


联系作者

B站演示视频:https://space.bilibili.com/444388619
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。


http://www.ppmy.cn/news/379813.html

相关文章

51单片机的恒温箱控制系统【proteus仿真+程序+报告+原理图】

1、主要功能 该系统由AT89C51单片机LCD1602模块DS18B20温度传感器模块继电器驱动模块构成。适用于恒温控制&#xff0c;温度闭环的项目&#xff0c;比如恒温箱。 本来想用数码管&#xff0c;但奈何采集到的温度值一直闪烁&#xff0c;着实找不到bug在哪&#xff0c;也一起放在文…

针对纳米片环栅晶体管中制造锗化硅(SiGe)和硅(Si)选择性蚀刻的研究

引言 栅极全能场效应晶体管&#xff08;GAAFET&#xff09;是一种很有前途的候选晶体管&#xff0c;可以用来提高FinFET性能。制造n型晶体管一般涉及到在内隔层沉积之前的高选择性SiGe&#xff1a;Si蚀刻步骤&#xff0c;我们在Si-SiGe堆叠的纳米片上产生硅压痕&#xff0c;并…

matlab水壶图形,[转载]Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一、通用函数: colorbar 显示彩色条 语法:colorbar colorbar(vert) colorbar(horiz) colorbar(h) h=colorbar(...) colorbar(...,peer,axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) [x,y,A]=getimage(h) [...,A,flag]=g…

由电热壶想到的问题

昨天我家的电热壶坏了&#xff0c;我又试了两次还是不能工作。我不相信我买了1年多的电热壶就这么坏了。于是我做了检查&#xff1a; &#xff08;1&#xff09;我看了插座&#xff0c;插座灯是亮的&#xff0c;所以我推断插座没有问题。 &#xff08;2&#xff09;电热壶的底…

Linux防火墙学习笔记13

NDAT 目标地址转换&#xff08;端口映射&#xff09;案例&#xff1a; 案例1&#xff1a; 实现局域网内发布服务器&#xff1a; 网络连接拓扑&#xff1a; win系统使用vmware workstation实现DNAT实验拓扑&#xff1a; 服务器在内网里&#xff0c;客户端在外网里。 iptable…

VS2015 MSB4018错误解决方法

问题&#xff1a; 解决方法&#xff1a;打开项目属性窗口&#xff0c;选择Platform Toolset到对应版本即可。

Spring Security 6.x 系列【57】认证篇之集成Keycloak SAML 2.0登录

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 前言2. 环境搭建3. 创建客户端4. 测试1. 前言 在上一篇文档,我们安装并…

【哈佛积极心理学笔记】第13讲 面对压力

第13讲 面对压力 self-concordant goals resolve internal conflicts, for example, it helps us deals with anxiety, with uncertainty, with existential questions. the best way to deal with conflict and resolve them is to have a super ordinate goal, a goal in w…