资源描述
成绩评估
序号
成绩评审项目
指 标
评分
1
学习态度
遵守纪律,学习认真;作风严谨,踏实肯干;善于与她人合伙。
20
2
设计作品
所设计作品可以运营,功能完整,设计指标符合规定,作品能体现学生对所学单片机知识综合运用,有一定创新。
40
3
设计报告
系统设计方案科学、合理;数据采集、计算、解决办法对的。
10
系统硬件、软件设计对的,分析合理,且与描述相一致,程序可靠运营,结论对的。
20
设计报告文本质量符合规定,格式规范,文理通顺。
10
成绩
基于PIDSTM32恒温控制系统设计
摘 要
研究基于STM32单片机和温湿度传感器恒温智能控制系统。温度具备时变性、非线性和多变量耦合特点。在温度控制过程中,温度检测往往滞后于温度调控,从而会引起温度控制系统温度浮现超调、温度振荡现象。在设计中提出了基于增量式PID算法控制温度模型,系统采用低功耗STM32作为主控芯片、DHT11数字式温度传感器和半导体温度调节器。实验成果表白,该系统可以有效地维持系统地恒温状态。通过将数字PID算法和STM32单片机结合使用,整个控制系统溫度控制精度也提高了,不但仅满足了对温度控制规定,并且还可以应用到对其她变量控制过程中。因此,在该温度控制系统设计中,运用单片机STM32进行数字PID运算能充分发挥软件系统灵活性,具备控制以便、简朴和灵活性大等长处。
核心词:STM32,PID算法,恒温控制,DHT11
1绪论
温度控制系统具备滞后性,时变性和非线性特点。无法建立精准数学模型,因而使用常规线性控制理论无法达到满意控制效果。在嵌入式温度控制系统中核心是温度测量、温度控制和温度保持,温度是工业控制对象中重要被控参数之一。因而,嵌入式要对温度测量则是对温度进行有效及精确测量,并且可以在工业生产中得广泛应用,特别在机械制造、电力工程化工生产、冶金工业等重要工业领域中,肩负着重要测量任务。在寻常工作和生活中,也被广泛应用于空调器、电加热器等各种室温测量及工业设备温度测量。但温度是一种模仿量,需要采用恰当技术和元件,将模仿温度量转化为数字量,才生使用计算机进行相应解决。
2 设计方案
为了对于交流负载做到温度精准,升温采用控制双向可控硅导通角度进行升温控制。降温采用PWM电压控制,由于当前降温采用制冷片,电扇等降温手段,采用直流电压供电方式,选用PWM控制使降温更加精准。温度采集选用温度传感器DHT11,好处为可做到高精度,整体框图如图1所示。
图1 系统框图
3硬件设计
3.1 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时间稳定。
3.2LCD屏幕显示
TFT-LCD 又叫做薄膜晶体管液晶显示屏,其管脚图如图3所示,其管脚在STM32F103中有相应管脚相应。惯用液晶屏接口诸各种,8 位、9 位、16位、18 位均有。而惯用通信模式呢,重要有 6800 模式和 8080 模式两种,今天呢,咱们来讲是 8080 模式。如果人们接触过 LCD1602 或者 LCD12864 等,那么就会发现 8080 模式时序呢,其实跟 LCD1602 或者 LCD12864 读写时序是差不多。8080 接口有 5 条基本控制线和多条数据线,数据线数量重要看液晶屏使用是几位模式,有 8 根、9 根、16 根、18 根四种类型。
图3 LCD引脚图
3.3 STM32单片机
在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列72MHz解决频率。内存涉及64KB到256KB闪存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同封装保持引脚排列一致性,结合STM32平台设计理念,开发人员通过选取产品可重新优化功能、存储器、性能和引脚数量,以最小硬件变化来满足个性化应用需求。
内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25DMIPS/MHz。单周期乘法和硬件除法。
存储器:片上集成32-512KBFlash存储器。6-64KBSRAM存储器。
时钟、复位和电源管理:2.0-3.6V电源供电和I/O接口驱动电压。上电复位(POR)、掉电复位(PDR)和可编程电压探测器(PVD)。4-16MHz晶振。内嵌出厂前调校8MHz RC振荡电路。内部40 kHzRC振荡电路。用于CPU时钟PLL。带校准用于RTC32kHz晶振。
低功耗: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,和112I/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接口(2.0B)。USB 2.0全速接口。SDIO接口。
ECOPACK封装:STM32F103xx系列微控制器采用ECOPACK封装形式。
4 软件设计
4.1 软件流程图
写出软件流程图,并附加文字阐明。
本次软件编写是在keil5上进行,界面如图X,并在编写后生成.Hex文献,然后用烧写软件FlyMcu(界面如图X)将.Hex文献烧写在开发版上,流程如图X。
图X keil5软件界面
图X 烧写流程图
图X 烧写软件
本程序软件功能是使用DHT11温湿度检测模块检测温湿度,将检测到温湿度送到STM32单片机,和单片机摄入设定值进行比较,当检测温度高于设定值时,电扇启动,同步可以用按键去查看LCD屏幕上温湿度值及电扇转速,程序构造如图X。
图X 程序功能框架图
4.2 软件程序
主程序如下:
#include "main.h"
#include "lcd.h"
#include "key.h"
#include "delay.h"
#include "zi.h"
extern const unsigned char gImage_111[153600];
int main(void)
{
static u8 key;
u8 yd;
Delay_Init();//嘀嗒时钟延时初始化
Led_Init();//LED灯初始化
Beep_Init();//蜂鸣器初始化
Key_Init();//按键初始化
Uart_Init(115200);//串口初始化
//定期器3 PWM模式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,"李燕辉 ");
Draw_Text_8_16_Str(50,90,WHITE,BLACK,"孟舒展 ");
Draw_Text_8_16_Str(50,110,WHITE,BLACK,"王义涛 ");
while(1)
{
key = Get_Key_Val();
if(key)
{
yd = key;
}
switch (yd)
{
case 1 : Paint_Bmp(0,0,240,320,gImage_111); break;
case 2 : PID_Ctrl(DHT11_ShowTAndH());break;
case 3 : drawpidline(0x1111);Draw_Text_8_16_Str(50,50,RED,BLACK,"温湿度机转速");break; // drawpidline(0x1111);
case 4 : LCD_Clear(WHITE); break;
default : ;
}
}
}
5 实物调试与成果
在调试时咱们也是遇到了诸多问题,在刚开始没有缓存按键导致数据无法传递,在显示温度时发现温度稳定在某一数值保持不变,经程序检查发现将按键值缓存到寄存器中进行持续发送,此问题解决。在显示图片和文字时发现显示效果不抱负,图片模糊、字体乱码,排除问题时发现是字体取模方式以及图片格式不对,将文字横向取模调节成纵向取模和图片格式改成.jpg后再次显示,效果良好。最后调试成果如图X,图X,图X,图X,图X,
图X 上电初始图
图X 清屏图
温湿度显示及转速波形
温度低于设定值时电扇停止转动
总 结
本次实训持续两周左右,在这期间咱们对更高一级单片机STM32认知从无到有,学习了这种单片机编程思路,不同于咱们此前学51单片机,这种单片机功能更强大,编程也更繁琐,应用也更广泛,每使用一种模块,都要对其进行时钟和寄存器配备,这样设计更符合低功耗规定,更适合社会发展趋势,这次实训也让咱们学到诸多关于项目东西,在本次实训期间,咱们学会了如何把所学知识应用在实践中,让实践与理论相结合,真正做到学以致用。这次实训对于咱们后来工作、学习真是受益匪浅。离咱们步入社会也没多少时间了,不论面临是继续深造,还是就业压力,`我想咱们都应当充分运用好这一段时间,充实、完善自我。
展开阅读全文