基于STM32的室内温度控制系统

更新时间:2024-07-06 12:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

陕西理工学院毕业设计

题 目 基于STM32的室内温度控制系统_______ 学生姓名 李枝玲 学号 1213014137_____

所在学院 陕西理工学院____________

专业班级 电子信息工程________________

指导教师 梁芳____________________ 完成地点 物理与电信工程实验室__________

2016 年 5 月 29 日

陕西理工学院毕业设计

基于STM32的室内温度控制系统

李枝玲

(陕西理工学院 物理与电信工程学院 电子信息工程专业 电子1205班,陕西汉中723000)

指导教师:梁芳

[摘要] 本设计是以STM32单片机为核心的温度控制系统。采用DS18B20温度传感器实现对温度的采集,并用

TFT液晶屏对温度进行显示。通过对元器件的选择,设计系统的硬件电路,从而设计相关应用程序,制作实物,实现温度采集、显示、控制等功能。结果表明,所设计的温度控制系统基本能够完成所需功能,并且具有测量精准高、实时性好、使用方便等特点。

[关键词] 温度控制; DS18B20;STM32单片机

Indoor temperature control system based on STM32

Zhiling Li

(Electronic information engineering, School of physics and telecommunication engineering,

Shaanxi University of Technology, Hanzhoung 723000, Shaanxi, 1205)

Tutor: Fang Liang

Abstract This design is based on STM32 microcontroller as the core of the temperature control system.Using DS18B20 temperature sensor to achieve the temperature of the collection, the use of TFT LCD screen to display the temperature. the hardware circuit of the system is designed through the selection of components; So as to design the related application, make the object, realize the function of temperature acquisition, display, control and other functions.The results show that the designed temperature control system can basically complete the required functions, and has the characteristics of high precision, good real-time performance, easy to use, and so on.

Keywords temperature control;DS18B20;STM32 single chip microcompute

I

陕西理工学院毕业设计

目录

绪论 ...................................................................................................................... 1 1 系统总体设计 ................................................................................................ 2

1.1系统功能要求 ......................................................................................... 2 1.2系统方案论证 ......................................................................................... 2 1.3系统设计框图 ......................................................................................... 2 1.4 具体控制选择 ........................................................................................ 2 1.4.1 控制器选择 .................................................................................. 2 1.4.2 温度传感器 .................................................................................. 3

2 硬件设计 ......................................................................................................... 4

2.1硬件构成 ................................................................................................. 4 2.2 控制模块 ................................................................................................ 4 2.2.1 STM32简介 ................................................................................... 4 2.2.2 STM32的主要优点 ....................................................................... 5 2.2.3 STM32开发板 ............................................................................... 6 2.3 最小系统设计 ........................................................................................ 7 2.4 温度采集模块 ........................................................................................ 8 2.4.1 DS18B20的介绍 ........................................................................... 8 2.4.2 DS18B20工作原理介绍 ............................................................... 8 2.4.3 DS18B20使用中的注意事项 ....................................................... 9 2.4.4 DS18B20与STM32单片机的连接电路 ....................................... 9

II

陕西理工学院毕业设计

2.5 显示模块 .............................................................................................. 10 2.5.1 TFTLCD液晶显示简介 ............................................................... 10 2.5.2 ALIENTEK 2.8液晶简介 ........................................................... 10 2.6 按键模块 .............................................................................................. 11 2.7 电源模块 .............................................................................................. 12 2.8 风机模块 .............................................................................................. 12

3 系统软件设计 .............................................................................................. 13

3.1 主程序 .................................................................................................. 13 3.2 温度采集子程序 .................................................................................. 14 3.4 按键子程序 .......................................................................................... 16

4 系统调试 ....................................................................................................... 17

4.1 硬件调试 .............................................................................................. 17 4.2 软件调试 .............................................................................................. 17 4.3 联合调试 .............................................................................................. 17 4.4 故障分析 .............................................................................................. 17

5 总结与展望 ................................................................................................... 19

5.1 总结 ....................................................................................................... 19 5.2 展望 ....................................................................................................... 19

致谢 .................................................................................................................... 20 参考文献 ........................................................................................................... 21 附录A 外文及翻译 ....................................................................................... 22

III

陕西理工学院毕业设计

原文 .............................................................................................................. 22 译文 .............................................................................................................. 29

附录B 系统电路图 ......................................................................................... 35 附录C 实物图 .................................................................................................. 36 附录D 程序清单 ............................................................................................. 37

IV

陕西理工学院毕业设计

绪论

在人类的生活环境中,温度扮演着极其重要的角色。特别是在冶金、医药、食品制造和化学制造业等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高。有些药品的生产和存储要在很低的温度下进行;石油分馏的过程中在不同的温度下才能分离出汽油、柴油、煤油、硫化物;食品的制造和存储也要在特定的温度下才能保证质量。在农业大棚蔬菜和室内圈养牲畜对于环境温度的要求也很高,大棚蔬菜的温度基本上要保证在20~30℃。鸡舍的育雏期温度要控制在36℃左右。随着社会生产力和科学技术的发展,工农业生产和生活中对于温度的要求会越来越高,因此能够检测温度变化的温度检测设备出现在人们的视线中。它能使人们能及时看到温度变化的第一手资料,提示温度变化情况,协助人们及时调整,让温度控制更好的服务于整个社会和人们的生活。

近年来随着电子信息技术的飞速发展,人类的生活发生了很大的变化,尤其是随着大规模集成电路的出现,微型计算机应运而生,让人类社会进入了一个崭新的时代。但是因为微型计算机成本较高,在很多工业控制中并不是最好的选择。所以单片机因为价格低廉、可靠性高,性能稳定以及独特的定时、计数功能而被广泛的应用在工业控制,工业生产,家用电器制造等方面,单片机的应用在不断的走向深处,在实时检测与自动控制的单片机应用系统中,单片机一般是用来做核心部件

[9]

的,由具体的硬件结构与控制对象的特点,和软件相结合来加以完善。

温度是表示物体冷热程度的物理量,工农业生产过程中温度是一个非常重要的参数。温度测量在产品生产,工业设计,能源节约中发挥到了关键性的作用。随着科学技术的进步和生产的需要,温度传感器不断更新和丰富起来。温度作为一个模拟量,如果采用合适的技术和元件,把模拟的温度量转化为数字量虽然说不难,但电路比较复杂,成本也太高。温度测量中测量温度是重点,本设

[11]

计中单片机温度测量同样如此。

温度控制系统常用来保持温度恒定或者使温度按照某种规定的程序变化。由于温度自身的一些特点,如惯性大、滞后现象严重、难以建立精确的数学模型等,传统的控制方式由于其控制精度不高、不能及时的跟踪对象特性变化等原因造成控制系统性能不佳。本设计基于这一点,选用具有高性能而又经济的STM32单片机作为控制器,所用算法为位置型PID控制算法,完成了对系统的设计[8]

。本课题的设计方案具有可行性和一定的推广性,若能够应用于实际生产生活中,将会对提高企业自动化水平、降低生产成本、减轻工人劳动强度、提高生活质量等方面起到积极的促进作用。

第 1 页 共67页

陕西理工学院毕业设计

1 系统总体设计

1.1系统功能要求

该设计主要由单片机最小系统模块,温湿度采集模块、显示模块和键盘模块,报警模块等构成,以STM32单片机作为核心处理器。

主要完成的功能有以下几点:对室内温度进行实时检测、可按照指令改变控制参数、将检测的 温度显示出来。 1.2系统方案论证

电路总体可以分为温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块等。以STM32单片机最小系统作为核心控制电路,传感器采集温湿度作为STM32 的输入,电机驱动模块、TFTLCD2.8寸液晶屏,以及按键模块作为STM32 的输出。采集温度方面由DS18B20温度传感器来完成,它是一个数字温度传感器、内置模数转换,可直接与单片机相连接。而TFTLCD2.8寸液晶显示屏是插针式,也可以直接与单片机相连接。通过DS18B20传感器采集当前的温湿度值、经单片机将其处理后的数据送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度与设定的温度上下限。利用键盘设置温度阈值,如果当前采集的实时温度不在设定的温度阈值范围之内,则由STM32单片机发出指令来控制电机驱动模块,使电机正常工作来实现室内温度控制。 1.3系统设计框图

功按照系统能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图1.1所示

晶振电路 LCD显示

复位电路 STMF103RCT6 电机驱动 控制器

按键电路

LED指示 DS18B20

图1.1 功能模块框图 1.4 具体控制选择 1.4.1 控制器选择

方案一:选用STM32F103ZET6单片机

该单片机有144个引脚,为32微处理器M3内核,最大时钟频率可达到72MZhz,处理速度快,效率高。其内部有8个定时器,内个能输出4路PWM波,且有六个能能配置4个通道的捕获。同时内部还有多路AD、DA等,配置有SPI、I2C接口等,内部资源极为丰富,用该处理器为设计带来很

[5]

大方便。

方案二:选用STM32F103RCT6单片机

第 2 页 共67页

陕西理工学院毕业设计

该单片机有64个引脚,跟上述的STM32ZET6功能极为相似,同样也有多路PWM、输入捕获、AD、DA,配有SPI、I2C等接口,内部资源较为丰富。但是相比STM32ZET6,该单片机体积小,引脚少。

[5]

内部只有四个定时器(定时器1到定时器4),不过都具有计数、产生PWM波及输入捕获功能。

方案一中STM32F103ZET6管脚太多且体积较大,虽然内部资源丰富,但是好多没用到。而STM32F103RCT6内部不仅集成了设计所需要的功能而且体积小、引脚少,同时相比STM32F103ZET6价格更便宜。所以选用STM32F103RCT6作为主控器。 1.4.2 温度传感器

方案一:数字温度传感器如DS18B20 该传感器主要特性如下:数据线供电方式是在寄生电源方式下的供电,电压适应的范围比较宽,电压范围为:3.0~5.5V;DS18B20在和单片机连接时仅仅需一条总线就可以实现DS18B20和单片机双向的通信,它的单线接口方式十分特殊,但也十分方便;多个DS18B20可以并联的在唯一的三线上,能够实现组网的多点测温功能;全部传感器元件和转换电路就像一只三极管集成在集成电路内,DS18B20在使用的时候不需要任何的外围元件;测温范围-55℃~+125℃,在-10~+85℃时精度在±0.5℃范围内;有9~12位的可编程的分辨率,相对应的可分辨温度依次为0.5℃、0.25℃、0.125℃和0.0625℃,因此可以实现高精度测温;9位分辨率时最大可在 93.75毫秒内把温度转换为数字,12位分辨率时最多能在750毫秒内把模拟温度值转换为数字量,速度更快;直接把测量出的数字温度信号的结果输出,可传送CRC校验码,同时用\单总线\串行方式传递给CPU,抗干扰和纠错能力

[10]

都较强;负压特性:把电源极性接反的时候,芯片不会因为发热而烧毁,但是也不能正常工作。 方案二:热电阻温度传感器

热电阻的测量精度高,性能稳定,使用方便,测量范围比较宽,在高精度、低温测量中占有重要的地位。热电阻传感器主要用于中低温度(-200℃~+650℃或850℃)范围的温度测量。常用的工业标准化热电阻有铂热电阻和铜热电阻。铂电阻传感器是利用金属铂(Pt)的电阻值随温度变化而变化的

[3]

物理特性而制成的温度传感器。以铂电阻作为测温元件进行温度测量的关键是要能准确地测量出铂电阻传感器的电阻值。铂电阻具有适用范围广、测量范围大、稳定性高、重复性好、价格低廉、使用方便等优点,成为目前工业和实验室中温度测量应用最广泛普遍的传感元件之一,工业中应用较多的热电阻传感器如Pt100。

通过比较,虽然方案二测量温度范围比较大,但是由于它的测温原理是电阻值随着温度的改变而不断变化,因此需要设计出非常优良的温度采集电路,其中应包括测温部分,线性化部分,放大部分,A/D转换部分,这就会使外围电路复杂性大大增加。方案一数字式的温度传感器,用一根数据总线就可以和单片机进行通信,使其外围的电路大大简化,测量的精度更加准确。因此在本设计中选择方案一作为温度采集传感器。

第 3 页 共67页

陕西理工学院毕业设计

2 硬件设计

2.1硬件构成

硬件主要包括:温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块。 2.2 控制模块

该模块的主要任务是完成单片机所发出的升温或降温操作。单片机STM32F103RCT6做CPU,DS18B20采集温度直接输出数字信号,单片机进行处理与执行。当温度高于设定的温度上限值时,单片机向温度控制执行电路发送降温命令,同时发光二极管绿灯亮,提醒使用者温度过高正在进行降温,启动风机等操作。当温度低于设定的温度的下限时,单片机向温度控制执行电路发送升温命令,同时发光二极管红灯亮,提醒使用者温度过低正在进行升温操作。控制模块如图2.1所示。

图2.1 控制模块

2.2.1 STM32简介

STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM32F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率为72MHz时,从闪存执行代码来看,

[6]

STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。

以STM32103RCT6单片机为处理器,该单片机为32位处理器。内核为Cortex-M3,其并行总线结构,嵌套中断向量控制单元,调试系统和它标准的存储映射。嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以为每个中断源赋予单独的优先级。采用NVIC可以达到非常快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于

第 4 页 共67页

陕西理工学院毕业设计

Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动

[7]

进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态。

Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。

在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32

[5]

位指令集的性能和16位指令集的代码密度之间取得了平衡。 专业嵌入式、单片机技术实训。而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。

STM32微控制器的推出标志着ST公司在两条产品主线(低价位主线和高性能主线)上迈出了重大一步。STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。一般,STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CRC单元,支持8位字节和16位半字数据的CRC计算。在对SD或MMC等存储介质进行数据存取时相当有用。而且,STM32还包含了7个DMA通道。没恶搞通道都可以用来在设备与内存之间进行8位,16位,32位数据的传输。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。 2.2.2 STM32的主要优点

? 使用ARM最新、先进的构架Cortex-M3内核 ? 出色的实时性能 ? 出色的功率控制 ? 出众和创新的外设 ? 最大程度的集成整合 ? 易于开发,可使产品 ? 快速进入市场

STM32硬件的特色接口: ? I/O:输入/输出口

? 低功耗模式、定时器/计数器、输入捕获 ? PWM:脉宽调变

第 5 页 共67页

陕西理工学院毕业设计

? ? ? ? A/D:模/数转换

DMA:直接存储器存取

USART、SPI:单个程序启动 BOOT:

2.2.3 STM32开发板 ? ? ? ? ? ? ? ? ? ? ? ? ? ?

STM32开发板如图2.2所示

STM32F103RCT6,TQFP64,FLASH:256K,SRAM:40K 1个JTAG/SWD调试的下载口 1个电源指示灯(蓝色)

2个状态指示灯(DS0:红色,DS1:绿色) 1个红外接收头

1个IIC接口的EEPROM芯片,24C02,容量256字节 一个SPIFLASH芯片,W25X16,容量2M字节 1个DS18B20温度传感器预留接口

一个标准的2.4 / 2.8英寸液晶屏接口,支持触摸屏 1个OLED模块的接口

1个USB SLAVE接口,用于USB通信 1个插SD卡的接口

1个PS/2接口,外接鼠标、键盘等 1组5V电源供应/接入口

图2.2 STM32开发板

[4]

第 6 页 共67页

陕西理工学院毕业设计

? ? ? ? ? ? ? 1组3.3V电源供应/接入口 1个启动模式的配置选择接口

2个2.4G的无线通信接口(24L01和JF24C) 1个复位按键,用来对MCU和LCD进行复位 3个功能按键,其中WK_UP兼具唤醒功能 1个电源开关,控制整个板的电源

除晶振占有的IO口外,其余所以得IO全部引出,其中GPIOA和GPIOB按顺序引出

2.3 最小系统设计

单片机要正常工作必须电源电路提供电源,通过震荡电路产生时钟周期,同时为了防止系统异常还需加上复位电路,可手动让系统重新工作。 (1)震荡电路

震荡电路用的是8M晶振,因为STM32内部可以通过锁相环可以进行倍频,变为最高72MHZ的频

[1]

率,所以外部接8MHZ晶振,经过倍频可达到72MHZ。其电路如图2.3所示。其电路主要有晶振、电容和电阻组成。其中OSDIN 和OSDOUT为STM32外部时钟电路引脚。通过震荡电路产生时钟从该管脚输入作为处理器时钟源。

图2.3 振荡电路

(2)复位电路

图2.4 复位电路

第 7 页 共67页

陕西理工学院毕业设计

Stm32是低电平复位并且每次上电是会复位一次,所以系统上电之后默认情况下其RST脚应该为高电平。其电路如图2.4所示。R1位上拉电阻,REST为单片机复位引脚,当按键K1按下RST引脚输出低电平,此时系统复位;当复位按键K1没按下时,由于RST直接接在上拉电阻上,默认为高电平,所以系统正常工作。 2.4 温度采集模块

该模块主要采用温度传感器DS18B20来实现对温度的采集。DS18B20将采集来的模拟温度信号转换为数字信号,传送给单片机进行处理。 2.4.1 DS18B20的介绍

DS18B20引脚图如图2.5所示。

U1321VCCDQGNDDS18B2027.0 图2.5 DS18B20引脚图

DS18B20功能特点: 1.独特的单线接口方式,与单片机的通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。 2.每个DS18B20都有它的序列号,我们是根据序列号来访问相应的器件,具有一个独有的,不可更改的64位的序列号。

3.低压供电,电源范围为3--5V,可本地供电,也能直接通过数据线提供电源(即寄生电源2方式)。

4.在-10°C至+85°C范围内的可以达到精度为±0.5摄氏度,测温的范围为-55℃~+125摄氏度。

5.用户可以根据自己的设计设定报警的上下限温度。

6.它转换12位的温度信号为数字信号的最大时间为750毫秒,可编辑的数据位9--12位。 7.DS18B20的分辨率为9--12位,可由用户通过EEPROM设置。

8.DS18B20可以把检测到的模拟温度值直接转化为数字量,并且通过串行通信方式传送给单片机。

2.4.2 DS18B20工作原理介绍

DS18B20的测温原理:低温度系数的晶振,产生的频率脉冲信号给计数器1,它的振荡频率受温度影响较小。高温度系数的晶振,振荡频率受温度影响较大,会随着温度的变化而改变,产生的频率脉冲信号给计数器2。把温度寄存器和计数器1先设置在-55℃所对应的一个基数值。低温晶振的脉冲,通过计数器1进行减法计数,计数器1的值降到0时,计数器1的预设值会重新装入,此时温度寄存器的值加1.计数器1重新开始计数,就这样循环,停止温度寄存器值的累加时计数器2

[10]

的计数值到0,所测温度就为此时温度寄存器中的数值。DS18B20的测温原理框图如图2.6所示。

DS18B20写操作:

1.把数据线先置为低电平0。 2.延时的时间为15ms。

3.从低位到高位的发送字节数据(一次只能发送一位)。 4.延时45ms。

5.将数据线拉到高电平1。

6.重复上面(1)到(6)的操作,直到整个字节全部发送完为止。 7.最后把数据线拉到高电平1。

第 8 页 共67页

陕西理工学院毕业设计

斜率累加器预警比较低温度系数晶振计数器1预置LSB置位/清除=0低温度系数晶振计数器2温度寄存器=0图2.6 DS18B20的测温原理框图

停止

DS18B20读操作:

1.先把数据线拉高“1”。 2.延时2ms。

3.数据线拉低“0”。 4.延时15ms。

5.将据线拉高“1”。 6.延时15ms。

7.读取数据线的状态得到1个状态位,并且进行数据处理。 8.延时30ms。

9.重复(1)到(7)的操作,读取完一个字节结束。 2.4.3 DS18B20使用中的注意事项

DS18B20 虽具有连接方便、测温系统简单、占用口线少、测温的精度高等优点,然而在实际的应用中也应该注意以下两个方面问题:

1.DS18B20 从测温结束到把测得的温度值转换成为数字量,需要一定的转换时间,这必须保证,否则会出现转换错误现象,从而使温度输出总是显示为85度。

2.在实际的使用中,应该使电源电压保持在5V 左右的大小,若是电源的电压过低了,就会降低所测得的温度精度。

2.4.4 DS18B20与STM32单片机的连接电路

DS18B20有两种供电方式,一种是寄生电源供电方式,这时单片机端口接的是单总线, 寄生电源供电方式中,DS18B20 的 VDD 引脚必须接地。另一种是电源供电的方式,此时DS18B20的1脚接地,3脚接电源,2脚是信号线。DS18B20与单片机的接口电路如图2.7所示。DQ与单片机的PA4端口连接。

第 9 页 共67页

陕西理工学院毕业设计

图2.7 DS18B20与单片机的接口电路图

2.5 显示模块

采用TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度与设定的温度上下限。 2.5.1 TFTLCD液晶显示简介

显示器是机器与人进行信息交流的重要界面,早期用的最多的显示器是显像管(CRT/Cathode Ray Tube),但是随着科学技术的不断发展,各种各样的显示技术诞生,而薄膜晶体管液晶(TFT-LCD)显示器因为具有反应速度比较快、可视角度较大、无辐射的危险,和稳定不闪烁的影像等优势,更是在近年来不断下跌的价格吸引下,逐渐取代了主流的CRT的地位。

TFTLCD型的液晶显示器由萤光管、滤光板、导光板、偏光板、玻璃基板、配向膜、液晶材料、薄模式晶体管等组成。 2.5.2 ALIENTEK 2.8液晶简介

ALIENTEK 2.8液晶显示器实物如图2.8所示:

图2.8 ALIENTEK 2.8液晶显示器

第 10 页 共67页

陕西理工学院毕业设计

ALIENTEK TFTLCD 采用16位的并方式和外部电路连接,之所以不采用8位的方式,是因为彩屏的数据量比较大,尤其是在显示图片的时候,如果采用8位数据线就会比16位方式慢一半,我们当然希望速度越快越好,所以采用16位接口。TFTLCD接口定义如图2.9所示。

图2.9 TFTLCD接口定义图

该模块的80并口有以下一些信号线: CS:TFTLCD的片选信号。 WR:向TFTLCD中写入数据。 RD:从TFTLCD中读出数据。 D[15:0]:16位的双向数据线。 RST:硬复位TFTLCD。

RS:命令/数据标志(0:读写命令,1:读写数据)。 TFTLCD与MiniSTM32开发板的IO对应关系如下: LCD_LED 对应 PC10。 LCD_CS 对应 PC9。 LCD _RS 对应 PC8。 LCD _WR 对应 PC7。 LCD _RD 对应 PC6。

LCD _D[17:1]对应 PB[15:0]。 2.6 按键模块

该模块主要实现对上下限温度的设置以及对电路的复位。单片机应用系统中除了复位按键有它专门的复位电路,和专一的复位功能以外,其它的按键都是用开关的状态来设置控制功能或者输入数据。

本系统设置了四个按键,来配合显示界面,可以对相关参数进行设定,不同运行方式之间进行切换,测量校准,开入开出测试等操作。按键SW1~SW4分别是复位、确认、温度加、温度减。其中温度设置键盘部分的电路图如图2.10所示:

第 11 页 共67页

陕西理工学院毕业设计

图2.10 温度设置部分电路图

2.7 电源模块

单片机STM32F103RCT6以及其它的外围芯片都是3.3V供电,所以需要将5V电压转成3.3V,使用常用的AMS1117-3.3V电源芯片。电路如图2.11所示。

图2.11 电源电路

2.8 风机模块

当检测到的实时温度高于设定的温度值时,单片机要进行降温操作。采用L298N与单片机相连接,从而控制风机的转动,以达到控制温度的目的。电路如图2.12所示。

图2.12 风机电路

第 12 页 共67页

陕西理工学院毕业设计

3 系统软件设计

整个设计系统功能是由软件程序配合硬件电路来实现,如果硬件电路已经确定,软件的功能也就基本上确定了,因为软件程序的编译是基于STM32单片机编程。软件部分可分为主程序和子程序,

[2]

主程序是整个控制系统的核心,用于调节和处理各模块之间的关系。子程序是各个模块实现实质性的功能,其主要子程序包括:温度采集、键盘扫描、LCD显示等。 3.1 主程序

开始系统初始化DS18B20读温度数据LCD温度显示按键扫描检测按键是否按下NYY温度是否在设定阈值范围N启动电机N温度是否在设定阈值范围Y结束

图3.1 主程序流程图

首先进行系统初始化配置,即首先向在stm32控制器中配制寄存器和I/O口,建立系统任务、测量任务及控制任务,并在启动任务中初始化传感器基础配置。然后在任务中编写用户程序。用户

第 13 页 共67页

陕西理工学院毕业设计

程序设计如下:将接DS18B20读到的数据通过STM32的输入捕获模式得到该数据,送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度。然后首先判断按键是否按下,如果未按下按键则返回按键扫描,否则再进一步判断所测得的数据实时温度是否在室内温度设定的阈值范围内。如果没有在室内温度设定的阈值范围内,则需要启动电机驱动模块来启动电机,通过热冷客气对流来平衡温差,直到室内温度达到室内温度设定的阈值范围的要求,最后结束主程序。主程序流程如图3.1所示。

3.2 温度采集子程序

温度采集子程序就是驱动外部的温度传感器DS18B20进行工作,通过I/O口通信方式向STM32单片机 中写入数据,并且送到TFTLCD液晶显示屏来进行显示。首先进行I/O口初始化,然后是复位DS18B20使其恢复初始状态等待DS18B20响应。将DS18B20读到的温度数据进行数据转换,并且写入DS18B20单片机,最后结束子程序。配置程序流程图如图3.2所示

开始I/O口初始化复位DS18B20等待DS18B20响应DS18B20读数据数据转换数据写入单片机结束

图3.2 温度采集框图

DS18B20初始化步骤如下:

1、高电平“1”状态必须先给数据线。

2、延时(该延迟时间的长短要求不严格,但尽可能短一点)。 3、把数据线拉低到电平“0”状态。

4、再延时750微秒(该时间的范围为480--960ms)。 5、把数据线拉高到电平“1”。

第 14 页 共67页

陕西理工学院毕业设计

6、延时等待

7、CPU如果读到了数据线上“0”状态的低电平,还要继续做延时,延时时间由发出高电平开始算起(第(5)步的时间开始算),最少需480ms。

8、再次把数据线拉高到高电平“1”后就结束。 3.3 显示子程序

开始LCD初始化写寄存器函数写LCD数据读LCD 数据LCD写GRAM设置光标位置、扫描方式设置显示颜色字符串显示结束 图3.3 显示程序框图

在该系统中使用TFTLCD液晶显示屏来显示DS18B20所采集的当前温度值。显示子程序程序设计如下:首先进行LCD初始化,即向TFTLCD配制寄存器,包括写寄存器函数、LCD写GRAM命令,建立LCD光标位置、扫描方式、显示方向、显示颜色等,并在启动LCD初始化寄存器基础配置,然后通过STM32单片机向LCD写数据,并使LCD寄存器读出数据显示字符串,结束显示子程序。子程序

第 15 页 共67页

陕西理工学院毕业设计

流程图如图3.3所示。 3.4 按键子程序

在本设计中利用键盘设置温度阈值阈值。按键子程序程序设计如下:首先进行按键I/O口初始化即配置STM32单片机I/O口,其次调用按键扫描函数,如果有相应的按键按下,则执行相应的动作,最后结束按键子程序。

按键一般都存在抖动问题,为了去抖动采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。按键检测子程序流程图如图3.4所示。

开始按键I/O口初始化配置输入I/O口按键扫描函数按键消抖结束 图3.4 按键流程图

第 16 页 共67页

陕西理工学院毕业设计

4 系统调试

由于温度控制系统有几个部分组成,需要由现象来进行调试,采用排除法和替换法综合找到问题,通过分析现象的原因来解决问题,所以系统调试是由局部到整体,由硬件到软件再到软硬件联合调试的过程。首先是搭建电路,并编写各模块软件程序,调通各单独模块。保证各单独模块均正常工作时,再将各模块放一个系统中让其都能正常工作。通过在调试的途中发现问题、解决问题,而达到系统稳定、高效工作的目的。 4.1 硬件调试

其调试步骤如下:

(1) 首先借助proteus、multisim将电源等基础电路仿真出来,确定达到各指标后,再在电路板上展开焊接工作。

(2) 当上述步骤完成后,再对比电路图检查连接是否正确,同时利用万用表检测各焊点之间导通情况,尤其要注意电源正负极连接是否正确。当确保连接都正常时再接通电源,检测各模块供电电压是否正常,同时用手轻轻触摸各模块,检查是否有芯片发热等异常情况。如出现异常应该及时断电,设法找到故障原因并排除故障。

(3) 当上述步骤完成后,接通电源,让电路各模块运转起来,然后各模块逐个检查看是否正常工作,最后再整体测试,看整个电路是否正常。

通过以上几个步骤完成对硬件的检查确保硬件电路正确无误为后续软件调试打下良好基础。 4.2 软件调试

软件调试就是将各模块的的程序跟硬件结合起来,通过调试让各模块成功实现其功能。具体如下:

(1)开发工具:MDK KEIL、串口助手、、FlyMcu下载软件、CH340串口。 (2)设计中软件调试过程如下:

a.在keil开发环境中编写各模块底层驱动。

b利用FlyMcu下载软件、CH340串口将程序烧写到处理器中。 c借助串口助手观察数据、分析数据。

d如遇到问题,通过修改程序,不断重复2、3过程直到所有模块正常为止。 4.3 联合调试

联合调试目的:将所有模块都集合到一起,通过调试让其都能正常工作,最终达到设计所要实现的功能为止。

其过程如下:

(1)将温度采集模块、单片机STM32最小系统模块、按键模块以及显示模块均组合到一起,通过调试让其都能正常运转。如若发现有问题则需要分模块调试。

(2)加入电机驱动模块,分别调节(1)各模块和电机驱动模块。 (4)向电机驱动模块加电机和风机片。 (5)在室内环境下进行系统测试,测试其平衡性与稳定性,并对所出现的问题对参数进行调整。 4.4 故障分析

设计最开始传感器DS18B20每次初始化时LCD液晶都没有显示数据,通过调试发现是因为DS18B20DE的引脚插反。经过纠正后能正常显示,但是显示的字符有问题,不能显示摄氏度单位符号“℃”,经过修改主函数程序才能够成功显示,是因为调用字符串显示函数时少了一个空格符号。室内对系统的稳定性测试时,由于系统没有进行实物焊接,而是用杜邦线连接外围器件,正常该方向不会有问题,但是由于粗心可能导致杜邦线松动,从而导致DS18B20读出数据有问题,或者电机

第 17 页 共67页

陕西理工学院毕业设计

没有转动。不过这一切只是推测,具体需要对传感器数据和同事现象分析。DS18B20读出的数据如表4.1所示。

表4.1 DS18B20读出的数据与实际温度比较

实际温度

测量温度

0

7.2 14.3 21.1 28.5 35.3 42.4

0 7 14 21 28 35 42

通过数据表格我们可以发现系统测得温度与实际温度存在一度的误差,原因是因为DS18B20对一度温度变化不太敏感我们只对温度整数部分进行了显示而未显示小数部分造成的。由于我们对室内温度进行调节温度要求不高不要求精确测量。理论上温度能够误差能够控制在-0.05度到0.05度范围内。

第 18 页 共67页

陕西理工学院毕业设计

5 总结与展望

5.1 总结

本设计介绍了基于STM32单片机的温度控制系统的设计内容,对整个硬件电路设计和软件程序设计做了分析。主要完成的工作有:硬件电路图的设计、软件的编程以及硬件的制作。

系统以STM32为核心进行系统设计,采用DS18B20芯片完成对温度采集,并将采集的温度转换为数字量传送给单片机进行分析和处理,采用L298N与单片机相连接,从而控制风机的转动,以达到降温的目的。采用TFTLCD液晶显示屏对检测到的温度和设定的温度进行显示。

在设计制作的过程中遇到了不少问题,但是在不断的检测与调整下得到了解决。但由于我个人缺乏对STM32单片机开发的经验以及制作时间有限,使本次设计仍存在缺陷,比如当温度低于设定的温度值时要进行升温操作,但是在这次设计中没有实现。 5.2 展望

其实写完了本篇论文,也仅仅是对温度控制系统做出了一个简单的设计方案,温度控制器应用在很多领域,在一些人不能直接进入的场所,利用单片机控制的温度控制器,可以设置并控制其中的温度,温度控制器利用在温室中,这样就可以方便的控制温室中的温度。我相信在不久的将来温度控制系统肯定会广泛地应用在我们的日常生活及工农业生产中,这将会对提高企业自动化水平、降低生产成本、减轻工人劳动强度、提高生活质量等方面起到积极的促进作用,让温度控制更好的服务于整个社会和人们的生活。总之基于单片机的温度控制器利用在很多领域。本课题只是单片机温度控制系统的一种设计方法。

第 19 页 共67页

陕西理工学院毕业设计

致谢

本次设计是在梁老师的悉心指导下完成的。从选择课题到开题报告,从方案选择到具体的设计和调试,从写作提纲到一遍一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我对梁老师表示衷心的感谢。同时,老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,平易近人的人格魅力对本人影响深远。在写论文的过程中,遇到了很多的问题,在老师的耐心指导下,问题都得以解决。所以在此,再次对老师道一声:老师,谢谢您!

同时也要感谢在这次设计中对我提供帮助的同学们,谢谢你们对我不要其烦的讲解与指导,让我可以顺利的完成此次的设计。

第 20 页 共67页

陕西理工学院毕业设计

temperature of the target. The blue curve represents the temperature which TN901 collected. The green curve represents the temperature which DS1624 collected. Through this figure, we can clearly find that the infrared measuring temperature sensor TN901 response more quickly. It’s really the advantage of the sensor.

Software Program Design

The design of the system software mainly completed the project that read the temperature collected by the sensor and manipulate the lower machine. The Fig. 5 shows all the consequences of the program. At first, we use LabVIEW set the IP address and if the network is OK, the PC and the STM32 will establish communication. PC can send the command to start the temperature collecting or stop it. So we can control the STM32 at any time no matter where you stay. At the same time, it also saves the loss of the equipment.

第 26 页 共67页

陕西理工学院毕业设计

The Fig. 6 shows the PC program. In the process of experiment, open the heat source to simulate the temperature of the environment change, the circle 1 means open the simulate heat source, and to set the temperature 28 degrees. Then wait for a few minutes, stop the heat source, the temperature then go down to the ambient temperature, the circle 2 shows the point. From the two different curve, we should find that the non-contact temperature measurement technology has clear advantage of fast response. It is convenient to put this device on difficult environment. And it will solve a series of problems.

第 27 页 共67页

陕西理工学院毕业设计

Conclusions

This article introduces an infrared temperature measurement system based on STM32.This system realizes the function of the following points. First, it can get the accurate measurement of the target temperature and the environmental temperature. Second, display the temperature on the LCD screen. Third, remotely check the temperature and operate a machine to start or stop temperature measuring.

In the process of test, we use a heat source to simulate the different ambient. In this way, we know the non-contact measuring technology has more good advantages than contact measuring technology. At the same time, we use LabVIEW to realize the remote temperature observation. This can widely prolong the service life of the equipment. References

[1] Haoqiang Tang. C program design(second edition) . Beijing: Tsinghua university press. (2003)

[2] Zhibo Chen, Chun-ling Wang. Objective programming language for C++ . Beijing: people’s posts and telecommunication publishing house. (2002)

[3] Yongfu Chen. Infrared radiation devices and typical applications. Beijing: electronic industry press, 2004.

[4] Shichang Jiang. An overview of the infrared measurement technology. Journal of measurement test, 1999(3):18 to 19.

[5] Wenyan Tang. Sensors. Beijing: mechanical industry publishing house. (2006)

[6] Xihui Chen, Yinhong Zhang. LabVIEW programming from entry to the proficient in 8.20. Beijing: Tsinghua university press. (2007)

[7] Huoliang Liu, Sin Yang. STM32 library development practical guide. Beijing: mechanical industry publishing house. (2013)

[8] Xiangjun Hu. Circuit analysis. Beijing: higher education press. ( 2007)

[9] W.Richard Stevens (American). TCP/IP rounding, Volume 1: protocol. Interpreted by Jianhua Fan et. Beijing: mechanical industry publishing house. (2000)

第 28 页 共67页

陕西理工学院毕业设计

译文

使用STM32的红外温度测量系统

韩文博1

12

,a

宋建林2b

长春理工大学,中国 长春理工大学,中国

b

hanwenbo@cust.edu.cn, 15143014944@163.com

关键词:红外测温;STM32;LabVIEW。

摘要 红外测温技术被广泛应用于非接触测温领域。该系统采用红外测量TN系列测量目标温度的温度传感器和数据显示在液晶屏上用STM32。同时,结合LabVIEW编程实现远程控制的目的。与非接触式测温技术不同,该系统具有响应速度快、测量速度快等优点。同时也为日常生活和工业生产提供了便利。 引言

用接触法测量温度是一种传统的方法。然而,它只能测量一个对象,达到热平衡状态,温度传感器。直接的结果是一个较长的响应时间,容易受环境温度和测量精度的测量。与传统的测量方法相比,红外测温技术在测量精度方面具有更大的优势。同时也方便了温度的快速检测。因此,红外测温技术成为最重要的检测方法之一。本文将介绍一种采用红外测温技术的设备。该设备采用tn901作为传感器来测量温度。它采用STM32作为主用tn901和DS1624当奴隶。同时,系统可以通过网络实际温度转移到原理的计算机。计算机的原理采用LabVIEW作为软件控制与STM32的通信。该设备可以测量温度,任何时间,任何地方。它为远程观测目标温度和操作系统带来了极大的方便。

a

原理

红外辐射是电磁波辐射的本质中最广泛存在的一种,它是基于在常规环境中的任何物体都会产生自己的分子和原子运动而不规则的。同时,物体会不断辐射能量。分子和原子的运动更为激烈,辐射能量越大。相反,辐射能量会更少。因此,我们可以测量的红外能量,以便检测到的对象的温度。红外辐射测温的客观依据。

根据史蒂芬-的方法,物体的温度越高,能量就越大。当温度T,所有波长的辐射强度的对象是:

4

M b =εσT (1)

在方程中的σ是史蒂芬玻尔兹曼常数;T是物体的绝对温度;ε是物体表面的法向发射率,如果对象是一个绝对的黑色,这是一ε,否则小于但大于零。 红外传感器接收由目标辐射的能量,然后将能量转换为电信号。该信号将被放大的放大器和改变的对象的温度被测量。

TN901,红外传感器,是一个很好的例子。其原理图如图1所示。红外热释电传感器位于一个后视镜的焦点,这是一个过滤器。因此,传感器可以接收的红外能量与浓度。在此之后,放大器被设计来放大信号。然后一个模拟数字转换器将模拟信号转换为数字信号。最后,根据韦恩-史蒂芬-位移法的相关公式,我们可以计算出待测物体的表面温度。

第 29 页 共67页

陕西理工学院毕业设计

图1 TN901原理图

设计方案

红外测温系统由几大模块组成,分别是STM32主控模块、红外温度测量模块、显示模块、PC机远程控制模块和电源模块。系统总体框架如图2所示。 STM32控制TN901温度采集,然后用STM32的TN901交换数据。STM32的LCD液晶显示屏会显示实时温度。只要在网络条件允许,STM32可以实现随时与LabVIEW的通信。STM32使用TCP/IP协议将数据传输到PC机,PC机采用LabVIEW软件来控制温度采集的开始或停止在一个偏远的模式。此功能将给用户方便随时检查目标温度的情况和操作系统的测量系统。

为了响应快的优点,对红外技术的测量精度,我们采用接触测量单元采集温度传感器DS1624。相比之下,红外测量技术将非常好的突出优势。

图2 总体框架

程序设计

该系统主要包括两部分的程序设计,分别是下位机和上位机程序设计的过程。下位机程序设计主要包括捕获温度和显示。上位机程序设计主要包括下位机和下位机状态下的目标温度的远程监控。

硬件设计方案

根据结构化程序设计的要求,采用模块化和结构化编程的方法进行设计。基于该系统的功能,该程序模块包含以下:主程序模块、电源控制模块、温度检测模块、液晶显示模块、中断模块、DMA模块等功能模块。详细的项目计划如图3所示。

第 30 页 共67页

陕西理工学院毕业设计

图3 硬件程序流程图

主程序模块

主程序模块主要完成系统的初始化和TCP/IP状态听。系统的初始化包括采集温度的初始化和液晶的初始化。TCP/IP状态聆听包括开放的TCP / IP网络,查询PC访问或不。如果有一个PC访问,STM32将进入一个DMA中断等待PC传输起始温度采集命令。STM32将采集到的温度TN901到PC上。

温度测量模块

温度测量模块主要包括非接触式红外测温模块和接触测温模块,在测试过程中,我们使用了热源提供了相对稳定的真实环境。红外测温模块TN901收集环境和目标温度和发送通过总线的PC的数据。在屏幕上显示温度。接触温度单位DS1624是用来收集目标的温度并显示在屏幕上。

显示组件

系统采用液晶显示温度。图4显示了目标的实时温度。蓝色曲线代表温度tn901收集。绿色曲线代表温度DS1624收集。通过这个图,我们可以清楚地发现,红外测温传感器tn901响应更迅速。它真的是传感器的优点。

第 31 页 共67页

陕西理工学院毕业设计

图4 液晶屏上的温度

软件程序设计

系统软件的设计主要完成了由传感器采集的温度以及对下位机的操作。图5显示了该程序的所有结果。首先,我们使用LabVIEW设置IP地址,如果网络是好的,PC和STM32将建立通信。个人电脑可以发出命令,启动温度采集或停止它。所以我们可以控制STM32在任何时间 ,任何地点。同时,它也节省了设备的损耗。

第 32 页 共67页

陕西理工学院毕业设计

图5 软件程序流程图

图6显示了个人电脑程序。在实验过程中,打开热源来模拟环境温度变化,圆1意味着打开模拟热源,并设置温度28度。再等几分钟,停止热源,温度再到周围的温度,循环2显示点。从两者的不同的曲线,我们应该发现,非接触式温度测量技术具有明显的优势,快速响应。把这个装置放在困难的环境中是很方便的。它将解决一系列的问题。

图6 上位机程序

第 33 页 共67页

陕西理工学院毕业设计

结论

本文介绍了一种基于stm32的红外测温系统。该系统实现了一下几点功能。首先,它可以准确的测量目标温度和环境温度。然后,在液晶屏上显示温度。最后,远程检查温度和操作机器启动或停止温度测量。

在测试过程中,我们使用热源来模拟不同的环境。用这种方法,我们知道非接触测量技术比接触测量技术更具有优势。同时,我们利用LabVIEW实现远程温度观测。这可以广泛地延长设备的使用寿命。

参考文献

[ 1 ] 唐豪强。程序设计(第二版)。北京:清华大学出版社。(2003) [ 2 ] 智博陈,王春琳。目标程序语言。北京:人民邮电出版社。(2002) [ 3 ] 永福陈。红外辐射装置及其典型应用。北京:电子工业出版社,2004。 [ 4 ] 世昌江。红外测量技术综述。测量试验杂志,1999(3):18至19 [ 5 ] 唐文彦。传感器。北京:机械工业出版社。(2006)

[ 6 ] 锡惠陈,张教授。LabVIEW编程从入门到精通8.20。北京:清华大学出版社。(2007) [ 7 ] 霍梁初识刘、仙阳。STM32库开发实用指南。北京:机械工业出版社。(2013) [ 8 ] 湘军胡。电路分析。北京:高等教育出版社。(2007)

[ 9 ] W.richard史蒂文斯(美国)。TCP / IP舍入,卷1:协议。机械工业出版社。(2000)

第 34 页 共67页

陕西理工学院毕业设计

附录B 系统电路图

第 35 页 共67页

本文来源:https://www.bwwdw.com/article/i51.html

Top