自动化综合实践报告一、设计项目简介1.1项目简介在人们的生产生活中,温度扮演着极其重要的角色。特别是在冶金、医药、食品制造和化学制造业等行业尤其显得重要,在适当的温度下生产的产品质量、产量和合格率会大大的提高。随着社会生产力和科学技术的发展,工农业生产和生活中对于温度的要求会越来越高,因此能够检测温度变化的温度检测设备出现在人们的视线中。恒温控制系统应用于各种工业或者民用领域,如何精确地控制温度成为一个非常重要的研究问题。本系统需要利用STM32来控制各器件的工作情况,使传感器维持在一个固定的温度上。本文所研究的课题是基于嵌入式的恒温控制系统设计,实现了温度的实时监测与控制。温度控制部分,提出了用DHT11、STM32F103ZET6和LCD的硬件电路完成对室温的实时检测及显示,利用DHT11与嵌入式系统连接由软件与硬件电路配合来实现对加热片和散热风扇的实时控制。从DHT11读出或写入DHT11信息仅需要一根数据线,其读写及其温度变换功率来源于数据线,该总线本身也可以向所挂接的DHT11提供电源,不需要额外电源。DC5V散热风扇的实时控制也仅仅需要一根口线,由开发板供电,不需要外加电源。而且本次的设计主要实现温度监测,超温报警,温度控制,超过设定的门限值时自动启动加热和散热装置等功能。而且还要以STM32开发板为主机,使温度传感器通过一根信号线与嵌入式开发板相连接,再加上温度控制部分和人机交互部分来共同实现温度的监测与控制。1.2实现的功能(1)能够连续测量环境的温度值,用LCD屏幕来显示环境的实际温度。(2)能够设定恒温的温度范围,初始范围是29℃。(3)能够实现温度自动控制,如果设定温度在30℃~33℃,则能使温度保持恒定在30℃~33℃。(4)使用嵌入式STM32F103ZET6控制,通过按键来选择LCD屏显示的个人信息界面和温度控制界面,通过程序输入来控制恒温范围的设定值,数值采用LCD屏幕显示,并且能够实时显示降温风扇的输出特性曲线。(5)温度超出范围时能够自动调节降温风扇的转速,达到恒温控制的目标。。二、总体设计2.1系统功能设计该设计主要由STM32单片机系统模块,温湿度采集模块、显示模块和键盘模块,降温模块等构成,以STM32F103ZET6芯片作为核心处理器。主要完成的功能有以下几点:对室内温度进行实时检测采集、可按照指令改变控制参数、检测的温度显示出来,通过PID控制算法保持设定温度的恒定,温度出现偏差时可通过降温风扇实时调节,并将输出特性显示在LCD屏上。2.2系统方案论证电路总体可以分为温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块等。以STM32单片机最小系统作为核心控制电路,传感器采集温湿度作为STM32的输入,电机驱动模块、TFTLCD2.8寸液晶屏,以及按键模块作为STM32的输出。采集温度方面由DHT11温度传感器来完成,它是一个数字温度传感器、内置模数转换,可直接与单片机相连接。而TFTLCD2.8寸液晶显示屏是插针式,也可以直接与单片机相连接。通过DHT11传感器采集当前的温湿度值、经单片机将其处理后的数据送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度与设定的温度上下限。利用键盘设置温度阈值,如果当前采集的实时温度不在设定的温度阈值范围之内,则由STM32单片机发出指令来控制电机驱动模块,使电机正常工作来实现室内温度控制。2.3系统功能框图按照系统能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图1.1所示图1.1功能模块框图三、硬件设计3.1控制芯片选择方案一:选用STM32F103ZET6单片机该单片机有144个引脚,为32微处理器M3内核,最大时钟频率可达到72MZhz,处理速度快,效率高。其内部有8个定时器,内个能输出4路PWM波,且有六个能能配置4个通道的捕获。同时内部还有多路AD、DA等,配置有SPI、I2C接口等,内部资源极为丰富,用该处理器为设计带来很大方便[5]。方案二:选用STM32F103RCT6单片机该单片机有64个引脚,跟上述的STM32ZET6功能极为相似,同样也有多路PWM、输入捕获、AD、DA,配有SPI、I2C等接口,内部资源较为丰富。但是相比STM32ZET6,该单片机体积小,引脚少。内部只有四个定时器(定时器1到定时器4),不过都具有计数、产生PWM波及输入捕获功能[5]。选用方案一3.2DHT11温湿度传感器原理图DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTCSTMF103ZET6控制器晶振电路DHT11电机驱动LCD显示按键电路复位电路测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。其原理应用如图所示3.3LCD液晶显示屏TFT-LCD又叫做薄膜晶体管液晶显示器,其管脚图如上,其管脚在STM32F103中有相应的管脚对应。常用的液晶屏接口很多种,8位、9位、16位、18位都有。而常用的通信模式呢,主要有6800模式和8080模式两种,今天呢,我们来讲的是8080模式。如果大家接触过LCD1602或者LCD12864等,那么就会发现8080模式的时序呢,其实跟LCD1602或者LCD12864的读写时序是差不多的。8080接口有5条基本的控制线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有8根、9根、16根、18根四种类型。3.4PID过程控制部分在检测过程中,由于来自外界的各种干扰不断产生,为了达到现场控制对象保持恒定的目的,就必须不断的进行控制。如果干扰使得控制对象发生变化,现场检测元件会将这种变化采集后,经变送器送至PID控制器的输入端,并与其给定值进行比较得到偏差值,调节器会按此偏差并以预先设定的整定参数规律发出控制信号,去控制调节器的开度增加或减少,从而使现场控制对象值发生改变,并趋于给定值,达到控制目的。将温度传感器输入作为当前输入,与设定值相减得到偏差,然后再对它进行PID运算产生输出结果fout,fout的值决定是否加热,加热时间是多少,进而控制加热器。图4.1PID控制流程图比例控制是在设计过程中最常用到的一种手段,但是很多控制对象都存在着滞后性,这会严重影响比例控制的控制效果。比如我们设定温度为70度,当我们只使用比例控制时,会出现实际温度在70度上下一定范围内振荡的情况。所以我们在比例控制的基础上加入了积分控制,积分控制的存在能帮助我们消除静态误差,达到准确的控制温度的目的。但与此同时它也带来了一些负面的影响,会使整个控制系统的响应速度降低。所以我们又加入了微分项,主要用来解决系统的响应速度的问题,其完整的公式如下:0)]1()([)()(*)(uuteteKdteKiteKpt在PID的调试过程中我们需要主意几个步骤:首先关闭I和D,就是说将他们设定为0。然后加大P,使系统产生振荡;再减小P,找到振荡的临界点;接着加大I,使他达到目标值;注意看超调、振荡和稳定时间是否符合要求;针对他们的情况可以适当的增加一些微分项;为了保证在全工作范围内调试完的结果都有效,我们应当在最大负载的情况下进行调试。[11]四、软件设计4.1整体程序设计整个设计系统功能是由软件程序配合硬件电路来实现,如果硬件电路已经确定,软件的功能也就基本上确定了,因为软件程序的编译是基于STM32单片机编程。软件部分可分为主程序和子程序,主程序是整个控制系统的核心,用于调节和处理各模块之间的关系[2]。子程序是各个模块实现实质性的功能,其主要子程序包括:温度采集、键盘扫描、LCD显示等。首先进行系统初始化配置,即首先向在stm32控制器中配制寄存器和I/O口,建立系统任务、测量任务及控制任务,并在启动任务中初始化传感器基础配置。然后在任务中编写用户程序。用户程序设计如下:将接DHT11读到的数据通过STM32的输入捕获模式得到该数据,送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度。然后首先判断按键是否按下,如果未按下按键则返回按键扫描,否则再进一步判断所测得的数据实时温度是否在室内温度设定的阈值范围内。如果没有在室内温度设定的阈值范围内,则需要启动电机驱动模块来启动电机,通过热冷客气对流来平衡温差,直到室内温度达到室内温度设定的阈值范围的要求,最后结束主程序。主程序流程如图3.1所示。4.2温度采集子程序温度采集子程序就是驱动外部的温度传感器DHT进行工作,通过I/O口通信方式向STM32单片机中写入数据,并且送到TFTLCD液晶显示屏来进行显示。首先进行I/O口初始化,然后是复位DHT11使其恢复初始状态等待DHT11响应。将DS18B20读到的温度数据进行数据转换,并且写入DHT11单片机,最后结束子程序。配置程序流程图如图3.2所示开始I/O口初始化复位DS18B20等待DS18B20响应DS18B20读数据数据写入单片机结束数据转换3.3显示子程序在该系统中使用TFTLCD液晶显示屏来显示DS18B20所采集的当前温度值。显示子程序程序设计如下:首先进行LCD初始化,即向TFTLCD配制寄存器,包括写寄存器函数、LCD写GRAM命令,建立LCD光标位置、扫描方式、显示方向、显示颜色等,并在启动LCD初始化寄存器基础配置,然后通过STM32单片机向LCD写数据,并使LCD寄存器读出数据显示字符串,结束显示子程序。子程序流程图如图3.3所示。开始写寄存器函数写LCD数据读LCD数据LCD写GRAM设置显示颜色结束设置光标位置、扫描方式LCD初始化字符串显示图3.3显示程序框图五、部分核心程序5.1主函数设计5.2DHT11读取温度六、收获及体会在本次的设计中,首先要感谢吴老师的指导,使我所学的理论知识接受了实践的检验,增强了运用所学知识的能力及动手的能力,为以后的学习和工作打下了很好的基础。通过这次的毕业设计,我学到了许多,在一定的程度上增强了我们的单独动手能力,提高了我们思维的宽度还丰富了我们的专业知识。虽然完成设计的过程是十分辛苦的,但是我们同时也深刻的了解到了工作的不易,并且经过了不断的努力后终于完成设计的那种满足感无以言表。我们相信经过这样的一个历程,在以后的日子里我们会在工作中做得更好。我们所设计的基于单片机的PID温度控制系统本着节能环保的要求,顺应国内外工业生产的发展趋势,使用了自动化的设计模式,实现对水温的自动检测与控制。我相信在不久的将来温度控制系统肯定会广泛地应用在我们的日常生活及工农业生产中,这将会对提高企业自动化水平、降低生产成本、减轻工人劳动强度、提高生活质量等方面起到积极的促进作用,让温度控制更好的服务于整个社会和人们的生活。总之基于单片机的温度控制器利用在很多领域。七、参考文献[1]梁新元.嵌入式系统开发.电子工业出版社,2009[2]陈振林.嵌入式硬件设计.中国电力出版社,2007[3]STM32嵌入式微控制器快速上手.电子工业出版社,2012[4]陈启军.嵌入式系统及其应用:基于Cortex-M3内核和STM32F103系列微控制器的系统设计与开发.同济大学出版社,2014[5]曹巧媛.单片机原理及应用(第二版).北京:电子工业出版社,2002.[6]李宁.基于MDK的STM32处理器应用开发[M].北京:北京航空航天大学出版社.2008