基于PID的STM32恒温控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定
基于PID的STM32恒温控制系统设计
摘要
研究基于STM32单片机和温湿度传感器的恒温智能控制系统。温度具有时变性、非线性和多变量耦合的特点。在温度控制过程中,温度的检测往往滞后于温度的调控,从而会引起温度控制系统的温度出现超调、温度振荡的现象。在设计中提出了基于增量式PID算法控制温度的模型,系统采用低功耗的STM32作为主控芯片、DHT11数字式温度传感器和半导体温度调节器。实验结果表明,该系统能够有效地维持系统地恒温状态。通过将数字PID算法和STM32单片机结合使用,整个控制系统的溫度控制精度也提高了,不仅仅满足了对温度控制的要求,而且还可以应用到对其他变量的控制过程中。所以,在该温度控制系统的设计中,运用单片机STM32进行数字PID运算能充分发挥软件系统的灵活性,具有控制方便、简单和灵活性大等优点。
关键词:STM32,PID算法,恒温控制,DHT11
1绪论
温度控制系统具有滞后性,时变性和非线性的特点。无法建立精准的数学模型,因此使用常规的线性控制理论无法达到满意的控制效果。在嵌入式温度控制系统中的关键是温度的测量、温度的控制和温度的保持,温度是工业控制对象中主要的被控参数之一。因此,嵌入式要对温度的测量则是对温度进行有效及准确的测量,并且能够在工业生产中得广泛的应用,尤其在机械制造、电力工程化工生产、冶金工业等重要工业领域中,担负着重要的测量任务。在日常工作和生活中,也被广泛应用于空调器、电加热器等各种室温测量及工业设备的温度测量。但温度是一个模拟量,需要采用适当的技术和元件,将模拟的温度量转化为数字量,才生使用计算机进行相应的处理。
2 设计方案
为了对于交流负载做到温度精确,升温采用控制双向可控硅导通角度进行升温控制。降温采用PWM电压控制,因为当前降温采用制冷片,风扇等降温手段,采用直流电压供电方式,选用PWM控制使降温更加精确。温度采集选用温度传感器DHT11,好处为可做到高精度,整体框图如图1所示。
图1 系统框图
3硬件设计
DHT11温度传感器
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。DHT11电路图如图2所示。
图2 HT11电路图
DHT11是通过单总线与微处理器通讯,只需要一根线,一次传送40位数据,高位先出。
数据格式:
8bit湿度整数数据 + 8bit湿度小数数据 + 8bint温度整数数据 + 8bit温度小数数据 + 8bit校验位
校验算法:
将湿度、温度的整数小数累加,只保留低8位。
微处理器(M0)与DHT11通信约定:
主从结构,DHT11为从机,M0作为主机,只有主机呼叫从机,从机才能应答。
详细流程:
M0发送起始信号 -> DHT响应信号 -> DHT通知M0准备接受信号 -> DHT发送准备好的数据 -> DHT结束信号-> DHT内部重测环境温湿度数据并记录数据等待下一次M0的起始信号。
由流程可知,每一次M0获取的数据总是DHT上一次采集的数据,要想得到实时的数据,连续两次获取即可,官方不建议连续多次读取DHT,每次读取的间隔时间大于5秒就足够获取到准确的数据,上电时DHT需要1S的时间稳定。
屏幕显示
TFT-LCD 又叫做薄膜晶体管液晶显示器,其管脚图如图3所示,其管脚在STM32F103中有相应的管脚对应。常用的液晶屏接口很多种,8 位、 9 位、16位、18 位都有。而常用的通信模式呢,主要有 6800 模式和 8080 模式两种,今天呢,我们来讲的是 8080 模式。如果大家接触过 LCD1602 或者 LCD12864 等,那么就会发现 8080 模式的时序呢,其实跟 LCD1602 或者 LCD12864 的读写时序是差不多的。8080 接口有 5 条基本的控制线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有 8 根、9 根、16 根、18 根四种类型。
图3 LCD引脚图
STM32单片机
在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。
内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,MHz。单周期乘法和硬件除法。
存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。
时钟、复位和电源管理:的电源供电和I/O接口的驱动电压。上电复位(POR)、掉电复位(PDR)和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC 振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz 的晶振。
低功耗:3种低功耗模式:休眠,停止,待机模式。为RTC和备份寄存器供电的VBAT。
调试模式:串行调试(SWD)和JTAG接口。
DMA:12通道DMA控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和UART。
3个12位的us级的A/D转换器(16通道):A/D测量范围:。双采样和保持能力。片上集成一个温度传感器。
2通道12位D/A转换器:STM32F103xC,STM32F103xD,STM32F103xE独有。
最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受5V以内的输入。
最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位的6通道高级控制定时器:最多6个通道可用于PWM输出。2个看门狗定时器(独立看门狗和窗口看门狗)。Systick定时器:24位倒计数器。2个16位基本定时器用于驱动DAC。
最多多达13个通信接口:2个IIC接口(SMBus/PMBus)。5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。3个SPI接口(18 Mbit/s),两个和IIS复用。CAN 接口。USB 全速接口。SDIO接口。