基于PID的STM32恒温控制系统设计.docx

上传人:b****2 文档编号:20125799 上传时间:2023-04-25 格式:DOCX 页数:11 大小:409.40KB
下载 相关 举报
基于PID的STM32恒温控制系统设计.docx_第1页
第1页 / 共11页
基于PID的STM32恒温控制系统设计.docx_第2页
第2页 / 共11页
基于PID的STM32恒温控制系统设计.docx_第3页
第3页 / 共11页
基于PID的STM32恒温控制系统设计.docx_第4页
第4页 / 共11页
基于PID的STM32恒温控制系统设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于PID的STM32恒温控制系统设计.docx

《基于PID的STM32恒温控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于PID的STM32恒温控制系统设计.docx(11页珍藏版)》请在冰豆网上搜索。

基于PID的STM32恒温控制系统设计.docx

基于PID的STM32恒温控制系统设计

成绩评定

序号

成绩评审项目

指标

评分

1

学习态度

遵守纪律,学习认真;作风严谨,踏实肯干;善于与他人合作。

20

2

设计作品

所设计作品能够运行,功能完整,设计指标符合要求,作品能体现学生对所学单片机知识的综合运用,有一定的创新.

40

3

设计报告

系统设计方案科学、合理;数据采集、计算、处理方法正确.

10

系统硬件、软件设计正确,分析合理,且与描述相一致,程序可靠运行,结论正确。

20

设计报告文本质量符合要求,格式规范,文理通顺。

10

成绩

基于PID的STM32恒温控制系统设计

摘要

研究基于STM32单片机和温湿度传感器的恒温智能控制系统。

温度具有时变性、非线性和多变量耦合的特点。

在温度控制过程中,温度的检测往往滞后于温度的调控,从而会引起温度控制系统的温度出现超调、温度振荡的现象。

在设计中提出了基于增量式PID算法控制温度的模型,系统采用低功耗的STM32作为主控芯片、DHT11数字式温度传感器和半导体温度调节器。

实验结果表明,该系统能够有效地维持系统地恒温状态。

通过将数字PID算法和STM32单片机结合使用,整个控制系统的溫度控制精度也提高了,不仅仅满足了对温度控制的要求,而且还可以应用到对其他变量的控制过程中。

所以,在该温度控制系统的设计中,运用单片机STM32进行数字PID运算能充分发挥软件系统的灵活性,具有控制方便、简单和灵活性大等优点。

 

关键词:

STM32,PID算法,恒温控制,DHT11

1绪论

温度控制系统具有滞后性,时变性和非线性的特点。

无法建立精准的数学模型,因此使用常规的线性控制理论无法达到满意的控制效果。

在嵌入式温度控制系统中的关键是温度的测量、温度的控制和温度的保持,温度是工业控制对象中主要的被控参数之一。

因此,嵌入式要对温度的测量则是对温度进行有效及准确的测量,并且能够在工业生产中得广泛的应用,尤其在机械制造、电力工程化工生产、冶金工业等重要工业领域中,担负着重要的测量任务。

在日常工作和生活中,也被广泛应用于空调器、电加热器等各种室温测量及工业设备的温度测量。

但温度是一个模拟量,需要采用适当的技术和元件,将模拟的温度量转化为数字量,才生使用计算机进行相应的处理。

2设计方案

为了对于交流负载做到温度精确,升温采用控制双向可控硅导通角度进行升温控制.降温采用PWM电压控制,因为当前降温采用制冷片,风扇等降温手段,采用直流电压供电方式,选用PWM控制使降温更加精确。

温度采集选用温度传感器DHT11,好处为可做到高精度,整体框图如图1所示。

图1系统框图

3硬件设计

3。

1DHT11温度传感器

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性.传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

DHT11电路图如图2所示。

图2HT11电路图

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的时间稳定。

3.2LCD屏幕显示

TFT-LCD又叫做薄膜晶体管液晶显示器,其管脚图如图3所示,其管脚在STM32F103中有相应的管脚对应。

常用的液晶屏接口很多种,8位、9位、16位、18位都有。

而常用的通信模式呢,主要有6800模式和8080模式两种,今天呢,我们来讲的是8080模式。

如果大家接触过LCD1602或者LCD12864等,那么就会发现8080模式的时序呢,其实跟LCD1602或者LCD12864的读写时序是差不多的.8080接口有5条基本的控制线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有8根、9根、16根、18根四种类型.

图3LCD引脚图

3。

3STM32单片机

在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。

内存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM。

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。

内核:

ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz。

单周期乘法和硬件除法。

存储器:

片上集成32-512KB的Flash存储器。

6-64KB的SRAM存储器.

时钟、复位和电源管理:

2。

0-3.6V的电源供电和I/O接口的驱动电压.上电复位(POR)、掉电复位(PDR)和可编程的电压探测器(PVD)。

4—16MHz的晶振。

内嵌出厂前调校的8MHzRC振荡电路。

内部40kHz的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测量范围:

0-3.6V。

双采样和保持能力。

片上集成一个温度传感器.

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接口(18Mbit/s),两个和IIS复用。

CAN接口(2。

0B).USB2。

0全速接口。

SDIO接口。

ECOPACK封装:

STM32F103xx系列微控制器采用ECOPACK封装形式.

4软件设计

4。

1软件流程图

写出软件流程图,并附加文字说明.

本次软件的编写是在keil5上进行,界面如图X,并在编写后生成。

Hex文件,然后用烧写软件FlyMcu(界面如图X)将。

Hex文件烧写在开发版上,流程如图X。

图Xkeil5软件界面

图X烧写流程图

图X烧写软件

本程序软件功能是使用DHT11温湿度检测模块检测温湿度,将检测到的温湿度送到STM32单片机,和单片机的摄入设定值进行比较,当检测温度高于设定值时,风扇开启,同时可以用按键去查看LCD屏幕上的温湿度值及风扇转速,程序结构如图X。

图X程序功能框架图

4。

2软件程序

主程序如下:

#include”main。

h”

#include”lcd.h”

#include"key.h"

#include"delay.h”

#include”zi.h”

externconstunsignedchargImage_111[153600];

intmain(void)

staticu8key;

u8yd;

Delay_Init();//嘀嗒时钟延时初始化

Led_Init();//LED灯初始化

Beep_Init();//蜂鸣器初始化

Key_Init();//按键初始化

Uart_Init(115200);//串口初始化

//定时器3PWM模式1初始化-—周期1ms,占空比50%

TIM3_PWMConfig(1000,72,500);

LCD_Init();//LCD初始化

//定时器4初始化-—定时时间为1秒

TIM4_Config(10000,72);

//LCD显示

Draw_Text_8_16_Str(50,50,WHITE,BLACK,"姓名学号");

Draw_Text_8_16_Str(50,70,WHITE,BLACK,"李燕辉1501190009”);

Draw_Text_8_16_Str(50,90,WHITE,BLACK,”孟舒展1501190047");

Draw_Text_8_16_Str(50,110,WHITE,BLACK,"王义涛1501190046”);

while

(1)

key=Get_Key_Val();

if(key)

yd=key;

}

switch(yd)

{

case1:

Paint_Bmp(0,0,240,320,gImage_111);break;

case2:

PID_Ctrl(DHT11_ShowTAndH());break;

case3:

drawpidline(0x1111);Draw_Text_8_16_Str(50,50,RED,BLACK,”温湿度机转速");break;//drawpidline(0x1111);

case4:

LCD_Clear(WHITE);break;

default:

}

5实物调试与结果

在调试时我们也是遇到了很多问题,在刚开始没有缓存按键导致数据无法传递,在显示温度时发现温度稳定在某一数值保持不变,经程序检查发现将按键的值缓存到寄存器中进行连续发送,此问题解决.在显示图片和文字时发现显示效果不理想,图片模糊、字体乱码,排除问题时发现是字体取模方式以及图片格式不对,将文字横向取模调整成纵向取模和图片格式改成.jpg后再次显示,效果良好。

最终调试结果如图X,图X,图X,图X,图X,

图X上电初始图

图X清屏图

温湿度显示及转速波形

温度低于设定值时风扇停止转动

 

总结

本次实训持续两周左右,在这期间我们对更高一级的单片机STM32的认知从无到有,学习了这种单片机的编程思路,不同于我们以前学的51单片机,这种单片机功能更强大,编程也更繁琐,应用也更广泛,每使用一个模块,都要对其进行时钟和寄存器的配置,这样的设计更符合低功耗的要求,更适合社会的发展趋势,这次实训也让我们学到很多关于项目的东西,在此次实训期间,我们学会了如何把所学的知识应用在实践中,让实践与理论相结合,真正做到学以致用。

这次实训对于我们以后的工作、学习真是受益匪浅。

离我们步入社会也没多少时间了,不管面临的是继续深造,还是就业的压力,`我想我们都应该充分利用好这一段时间,充实、完善自我.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1