[004]PID算法C语言程序STM32单片机控制水温实验

作品简介

一、概述

实验所用器材均为容易买到的设备,主要有STM32F103C8T6最小系统板、DS18B20温度传感器、继电器模块、TM1638显示模块、电加热棒(12V/80W)、直流电源适配器(12V/10A),再找一个小一些的玻璃杯(水250ml),所有设备如下图。

二、系统功能

由于采用普通继电器控制加热棒,继电器不允许频繁启停,因此将控制周期设为1min,即每1min计算一次当前1min内电加热棒需要开启的时间(占周期的百分比),通过控制每一个控制周期内电加热棒的开启时间,使水温在设定温度附近恒定;因温度的惯性和滞后性,这1min的周期基本可满足要求。

PID采用位置型。程序开发环境IAR,HAL库。

实现功能如下:

上电默认设定温度45.0℃,可通过TM1638按键显示模块修改设定温度,调节精度0.1℃,显示模块左4位数码管显示设定温度,右4位显示实际温度。实际温度可通过串口发送给计算机端,串口助手接收数据后可通过其他方式将温度变化曲线绘出。

三、实验结果

室温约23℃,将水在室温中静置较长时间,使水温与环境温度达到平衡后,开始实验。设定温度为默认的45.0℃。下图为串口助手收到的部分数据:

下图为绘制的水温变化曲线,横轴每个点为1秒的时间,可看出超调量最大约1.1℃,约10min后水温恒定在45℃附近,误差很小。




创作时间:2022-03-28 22:37:25