单片机交流
直播中

张静

7年用户 1455经验值
私信 关注
[问答]

如何利用单片机实现智能饮水机控制系统设计?

如何利用单片机实现智能饮水机控制系统设计?

回帖(1)

叶紫薇

2021-11-2 14:41:57
用液晶显示屏实时显示水温;三种工作模式通过按键选择,即时加热,并由LED灯指示,分别是咖啡模式(固定水温65度),沏茶模式(固定水温85度),用户模式(用户通过按键自行设定温度);温度PID控制;比例控制出水温度;显示屏显示温度;当检测到缺水时,蜂鸣器报警,对应LED指示灯亮,电机驱动水泵控制自动加水;当热水口检测到有杯子时,显示屏提示用户,等待一段时间自动出水。
做出系统的系统方框图、威廉希尔官方网站 原理图。最后设计出一套可以实现基本功能的智能饮水机的控制系统并做出仿真和实物。
温度传感器实时检测水温,并传递信号给单片机,单片机将接收到的信号传给液晶显示屏,使液晶屏可以实时的显示当前的水温。人们通过按键选择他们需要的不同模式,相对应的指示灯发亮,单片机接收信号再传递给加热器,加热器进行加热。温度传感器检测温度,当温度到达人们指定的温度时,加热器停止加热。当热水口检测到有杯子时,单片机接收到信号,并传递给显示屏和电机,显示屏提醒用户;电机驱动,使混水阀打开,当杯子接满时,混水阀关闭。当水加热到高温,而人们想快速的喝到温度较低的水时,混水阀可通过控制热水和冷水的比例来快速的降低水温,出水。当压力传感器检测到饮水机缺水时,传递信号给单片机,单片机传递信号使蜂鸣器报警,并使电机驱动水泵进水。
单片机:89C51或52
温度传感器:DS18B20
液晶显示屏:LCD1602
检测杯子的传感器可换,不用压力传感器。计划用光电对管,超声波模块。
【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl










#include"reg52.h"
#include "delay.h"
#include "typedef.h"
#include "1602.h"
#include "key.h"
#include "set.h"
#include "18b20.h"
#include "24c02.h"


float  Temp_Data=0;

***it MLED0=P1^0;   //咖啡模式65度
***it MLED1=P1^1;   //沏茶模式85度
***it MLED2=P1^2;   //用户模式 自由设置
***it RLED=P1^3;           //缺水指示灯
***it GLED=P1^4;           //出水指示灯
***it CUP = P1^6;   //水杯检测
***it LEV = P1^7;   //水位检测0表示没有水  1表示有水

***it MENA=P3^6;   //加水小水泵
***it MENB=P3^7;          //出水小水泵
***it BUZZER=P2^0;  //蜂鸣器


***it HEAT_REALY=P2^1;  //加热继电器


void TimerInit(void);
void GetTemp(void);
void PageInit(void);
void PageDisplay(void);
void DataLoad(void);  //数据加载
void TempInit(void);  //
void PageDisplayInit(void);
void PageDisplay(void);
void ModeControl(void);
void UserTempSet(void);
void StoreCheck(void);  //自动蓄水检测
void TempControl(void);        //温度自动控制
void UART_Init(void);   //串口初始化
void GetDistance(void);        //距离检测


uchar Mode=0;         //0咖啡模式65  1沏茶模式85  2用户模式
uchar UserTemp=0;          //用户温度
uchar TargetTemp=0;   //目标温度
uchar LowWater=0;     //缺水标志 =0不缺水  =1缺水


uchar US_RxBuf[5]={0};
uchar US_RxCon=0;
uint  Distance=0;        //距离



void PageDisplay(void)
{  
   TempDisplay(5,Temp_Data);   //实时显示温度
   DisplayU8(20,TargetTemp);
   DisplayU8(28,Distance);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分