- 基于单片机的多点智能温控水杯实验系统设计
点击下载设计资料:https://download.csdn.net/download/m0_51061483/92081495 - 系统功能概述
基于单片机的多点智能温控水杯实验系统旨在实现对水杯内部多个位置温度的实时监测与智能调节。通过 DS18B20 数字温度传感器分别测量水杯上、中、下三个位置的温度,并结合用户设定的目标温度,实现自动加热、自动制冷与自动提醒功能。同时系统提供按键用于手动控制开盖、加热和制冷操作,使得用户能够根据需求灵活使用。此外,通过 LCD1602 液晶显示模块展示实时温度数据及当前系统工作状态,让用户对水杯内温度变化一目了然。
系统整体具有功能完善、控制精确、交互友好、扩展性强等特点,适合作为单片机温控系统的教学实验平台,亦可进一步扩展应用于智能小家电等领域。
- 系统电路设计
3.1 单片机控制核心电路设计
本实验系统采用 51 单片机作为主控核心,原因在于其结构简单、指令体系完善、成本低且广泛用于教学应用。单片机内部的定时器、中断系统以及 I/O 控制口丰富,能够方便地实现温度采集、按键扫描、LCD 驱动等多任务调度。
在电源部分,系统采用 5V 稳压供电,通过 AMS1117 稳压芯片将外部 7–12V 直流电压降至稳定的 5V。单片机的 VCC、GND 与各传感器、LCD、按键模块共地,保证信号一致性。在晶振部分一般使用 11.0592MHz 晶体,为串口通讯和定时运算提供准确的时钟基础,同时在 XTAL1 和 XTAL2 处外接两个 30pF 的瓷片电容稳定振荡。
单片机控制系统还配置了复位电路,通过电容和电阻构成自动复位,同时预留独立复位按键方便调试。
3.2 DS18B20 多点温度采集电路设计
系统中的三个温度测量点均由 DS18B20 数字温度传感器组成。每个传感器均采用单总线接口与单片机连接,三只传感器的 DQ 数据端分别接入 P3.2、P3.3 和 P3.4 等 I/O 口,通过上拉电阻保持通信线稳定。
DS18B20 具有如下优点:
- 测温精度高(±0.5℃)
- 单线通讯,布线简洁
- 可通过唯一序列号实现多点识别
为了避免电磁干扰,三组 DS18B20 均采用屏蔽线连接,传感器安装位置分别位于水杯上层、中层和底部,能够反映水杯内部温度梯度情况。
3.3 按键输入与功能控制电路设计
系统包括若干按键,如:
- 开盖控制键
- 加热功能键
- 制冷功能键
- 目标温度调节键
每个按键采用上拉电阻方式,通过接地触发单片机检测逻辑低电平。在程序中按键采用软件延时消抖方式识别,避免误触发。
按键功能采用短按识别模式,长按则用于快速调节目标温度,增强用户交互体验。
3.4 加热与制冷执行机构电路设计
为了实现水杯的加热与制冷功能,本系统分别使用:
- 加热片(如 PTC 热敏加热片)
- TEC 半导体制冷片(又称珀尔帖片)
单片机无法直接驱动加热片或 TEC 模块,因此通过 MOSFET 功率驱动电路进行控制。控制方式如下:
驱动电路采用 N 沟道 MOSFET(如 IRF540N 等)增强控制能力,同时在负载两端加入续流二极管、滤波电容等保护措施。
3.5 蜂鸣器提醒电路设计
系统配备无源蜂鸣器,通过 PWM 波形驱动形成各种提示音,例如:
- 达到目标温度提醒音
- 水温异常报警音
- 按键操作提示音
蜂鸣器由单片机 P2 口输出 PWM 信号,经限流电阻后驱动。通过调节 PWM 的频率和占空比,可实现不同的提示音效果。
3.6 LCD1602 显示电路设计
LCD1602 是本系统中用于显示温度和工作状态的重要模块。显示内容包括:
- 三个位置的实时温度值
- 当前工作模式(加热、制冷、待机)
- 目标温度设定
- 系统提醒信息(如“温度低”、“温度高”、“正在加热”)
LCD1602 使用 4 位数据模式连接,可以减少 I/O 口占用。典型连接:
- RS、RW、EN 接 P2.5、P2.6、P2.7
- D4–D7 接 P0.4–P0.7
背光电源通过限流电阻与单片机 5V 供电连接,亮度可根据需要调整。
- 程序设计
本系统程序采用模块化设计方式,将 DS18B20 温度采集、按键处理、LCD 显示、加热/制冷控制、蜂鸣器提醒等功能分别封装成独立函数,主程序通过循环调度各模块实现完整系统的逻辑运行。
4.1 主程序设计
主程序主要负责:
- 系统初始化(IO、定时器、LCD、温度传感器)
- 周期性读取三个温度传感器
- 判断当前温度与设定温度的关系
- 控制加热或制冷模块
- 刷新 LCD 显示
- 执行蜂鸣器提示
核心框架如下:
void main() {
System_Init();
LCD_Init();
DS18B20_Init();
while(1) {
Read_All_Temperature();
Key_Scan();
Control_Heating_Cooling();
LCD_Update();
Buzzer_Process();
}
}
4.2 DS18B20 多点温度采集程序
根据单总线协议,对每个传感器分别初始化并读取温度。典型函数代码如下:
float Read_DS18B20(unsigned char id) {
DS18B20_Rst(id);
DS18B20_WriteByte(0xCC);
DS18B20_WriteByte(0x44);
DS18B20_Rst(id);
DS18B20_WriteByte(0xCC);
DS18B20_WriteByte(0xBE);
return DS18B20_ReadTemp();
}
系统逻辑中,将三个温度分别存入:
float temp_top, temp_mid, temp_bottom;
并计算平均温度,作为判断加热/制冷的主要依据。
4.3 按键扫描程序设计
按键采用轮询方式识别短按与长按,不同按键执行不同的功能控制:
void Key_Scan() {
if(KEY_ADD == 0) {
Delay_ms(20);
if(KEY_ADD == 0) targetTemp++;
}
if(KEY_SUB == 0) {
Delay_ms(20);
if(KEY_SUB == 0) targetTemp--;
}
if(KEY_HEAT == 0) {
mode = MODE_HEAT;
}
if(KEY_COOL == 0) {
mode = MODE_COOL;
}
}
通过判断用户的设定,可以灵活调整水杯温控策略。
4.4 加热与制冷控制程序设计
加热与制冷通过 MOSFET 控制,逻辑如下:
void Control_Heating_Cooling() {
if(avgTemp < targetTemp - 0.5) {
Heat_On();
Cool_Off();
} else if(avgTemp > targetTemp + 0.5) {
Cool_On();
Heat_Off();
} else {
Heat_Off();
Cool_Off();
}
}
采用温度回差(±0.5℃)防止加热与制冷之间频繁切换,提高系统稳定性。
4.5 LCD1602 显示程序设计
LCD 每次刷新内容,包括:
- 三个实时温度
- 设定温度
- 系统状态提示
示例代码:
LCD_ShowString(0,0,"T1:");
LCD_ShowNum(3,0,temp_top,2);
LCD_ShowString(0,1,"SET:");
LCD_ShowNum(4,1,targetTemp,2);
显示内容清晰直观,可实时反映系统运行状态。
4.6 蜂鸣器提醒程序设计
根据系统不同状态输出不同提示音:
if(avgTemp == targetTemp) {
Buzzer_Beep();
}
if(avgTemp > MAX_TEMP) {
Buzzer_Alarm();
}
提醒用户及时注意温度变化,提升安全性。
- 总结
基于单片机的多点智能温控水杯实验系统结合了温度采集、智能控制、用户交互以及执行机构驱动等多项技术:通过 DS18B20 实现高精度多点温度测量,通过键控输入设定目标温度,通过加热与制冷模块自动调节水杯内部温度,并利用 LCD 输出现实数据显示。整个系统结构紧凑、控制智能、操作灵活、界面友好,具有较高工程价值与教学示范意义,为智能小家电温控系统研究与开发提供了良好的实验平台。
130