【proteus仿真】基于 STM32 单片机恒温箱控制系统设计(仿真图+程序)

一、系统设计方案

1.1 设计需求

  1. 温度采集:DS18B20 实时采集恒温箱内部温度;
  2. 温度设置:加减按键修改目标恒温值;
  3. 自动控温:实测温度低于设定值启动加热;实测温度高于设定值启动制冷;温度达到设定区间停止执行;
  4. 信息显示:OLED12864 屏幕实时显示当前温度、设定温度;虚拟串口打印温度数据;
  5. 报警保护:温度异常时蜂鸣器 + 红色 LED 声光报警;
  6. 拓展接口:预留 ESP8266 模块,支持网络数据上传。

1.2 整体硬件框图

主控单元 STM32F103C8T6 作为核心;DS18B20 温度传感器采集环境温度;独立按键完成人机参数设置;OLED 屏幕实现本地显示;三极管 + 继电器驱动加热、制冷负载;三极管驱动蜂鸣器与报警 LED;USART 串口输出温度信息,外接 ESP8266 模块实现网络拓展。

二、Proteus 电路解析

2.1 主控最小系统

使用 STM32F103C8 单片机,包含复位 NRST、外部晶振、BOOT 启动配置,完成单片机基础运行环境。

2.2 温度检测模块

DS18B20 数字温度传感器,PB15 作为数据 IO 口,单总线通信,无需额外 AD 转换,直接输出数字温度,测量精度高,电路简单。

2.3 按键设置模块

PA14、PA15 外接两个独立按键,分别实现温度加、温度减,用来修改恒温箱目标温度。

2.4 OLED12864 显示模块

I2C 接口 OLED 屏幕,实时刷新显示当前采集温度、用户设定温度,直观查看系统运行状态。

2.5 加热与制冷驱动电路

  • 加热回路:PB2 输出控制 NPN 三极管 2N3904,驱动继电器 RL3,接通模拟加热负载 Heater;
  • 制冷回路:PB5 输出控制三极管,驱动继电器 RL1,控制制冷电机;

三极管做信号放大,继电器隔离单片机与大功率负载,防止高压负载损坏主控芯片。

2.6 声光报警模块

PB0 控制 8050 三极管,驱动 BUZ1 蜂鸣器与红色 LED,当温度超出安全阈值时触发声光告警。

2.7 串口与 WiFi 拓展

PA9 (TX)、PA10 (RX) 为串口引脚,一方面连接 Proteus 虚拟终端打印温度日志;另一方面外接 ESP8266 模块,预留 WiFi 上传功能,可把温度数据上传网络。

三、系统工作逻辑

  1. 系统上电初始化:OLED、DS18B20、串口、IO 口初始化;读取温度,屏幕与串口同步输出温度;
  2. 扫描按键:按下 "加 / 减" 按键修改目标恒温值;
  3. DS18B20 读取实时箱内温度;
  4. 比较实测温度与设定温度:
    • 实际温度 < 设定温度:闭合加热继电器,开启加热;制冷关闭;
    • 实际温度 > 设定温度:闭合制冷继电器,开启制冷;加热关闭;
    • 温度在设定允许误差区间:加热、制冷全部停止;
  5. 温度越限,启动蜂鸣器 + LED 声光报警;
  6. 循环把温度数据通过串口打印输出,同时 OLED 刷新界面;
  7. ESP8266 可将温度数据上传上位机。

四、伪代码片段

复制代码
//DS18B20读取温度
float DS18B20_GetTemp(void)
{
    short temp;
    DS18B20_Reset();
    DS18B20_WriteByte(0xCC);
    DS18B20_WriteByte(0x44);
    DS18B20_Reset();
    DS18B20_WriteByte(0xCC);
    DS18B20_WriteByte(0xBE);
    temp=DS18B20_ReadByte();
    temp|=DS18B20_ReadByte()<<8;
    return temp*0.0625f;
}

//恒温控制逻辑
void Temp_Control(float real_temp,float set_temp)
{
    if(real_temp < set_temp - 0.5f)
    {
        HEAT_ON();
        COLD_OFF();
    }
    else if(real_temp > set_temp + 0.5f)
    {
        HEAT_OFF();
        COLD_ON();
    }
    else
    {
        HEAT_OFF();
        COLD_OFF();
    }
    //超温报警
    if(real_temp>55||real_temp<5)
    {
        ALARM_ON();
    }
    else ALARM_OFF();
}

五、仿真现象说明

仿真运行后:

  1. OLED 屏幕显示实时温度和设定温度;
  2. Proteus 虚拟终端持续打印 "恒温箱控制系统 温度:XX.X";
  3. 按下加、减按键修改设定温度;
  4. 当 DS18B20 模拟温度低于设定值,加热继电器吸合;高于设定值,制冷继电器启动;
  5. 温度异常,蜂鸣器响、红色报警灯点亮。

六、项目拓展方向

  1. 增加 PID 算法,代替简单阈值比较,减小温度波动,控温精度更高;
  2. ESP8266 接入云平台,手机小程序远程查看、修改恒温箱温度;
  3. 增加掉电保存,保存用户设置的目标温度;
  4. 增加上限、下限温度独立设置;
  5. 可以搭建实物,继电器更换为固态继电器,适配实际加热片、半导体制冷片。

七、总结

本恒温箱系统基于 STM32+DS18B20,实现温度采集、按键设定、自动加热制冷、显示、报警、串口输出完整功能。Proteus 仿真完整跑通全部业务逻辑,结构清晰,适合电子信息、自动化专业课程设计、毕业设计参考学习。

通过网盘分享的文件:仿真文件获取.zip

链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666

相关推荐
国科安芯32 分钟前
星载CAN总线通信网络中抗辐射MCU的通信可靠性设计分析
网络·人工智能·分布式·单片机·嵌入式硬件·架构
新晨单片机设计2 小时前
S003A-基于STM32单片机温度计(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·stm32单片机功能定制
一条破秋裤2 小时前
TIM 输入捕获与 PWMI:从边沿到频率、占空比
笔记·stm32·学习
AOI小白新手上路2 小时前
江科协51单片机16-1 DA数模转换实验(PWM 呼吸灯)
单片机·嵌入式硬件·51单片机
hongmai6668883 小时前
告别Wi-Fi,专注Mesh:ESP32-H2-MINI-1U-H2S模组规格与应用
单片机·嵌入式硬件·物联网·5g·h.265
Yiran_G3 小时前
BLE通信距离怎么判断?从发射功率、PHY到天线设计分析
单片机·嵌入式硬件
女神下凡3 小时前
芯参谋(11): 各种存储芯片电路设计
开发语言·嵌入式硬件
HUI-4743 小时前
EG5101|TSSOP‑24 数字算法电流模式同步降压控制器,高性能数字化电源方案
单片机·嵌入式硬件
亿道电子Emdoor3 小时前
【Altium】DWG文件修改图层颜色问题
嵌入式硬件·硬件工程