1、目录基于STM32的温度控制实验2裴顺利,电子系2Based on STM32 temperature control experiment2Peishunli,Department of electronics21 系统的整体设计2图131.1 人机交互模块的设计31.2 温度检测模块的设计32 系统各模块的设计3主控制模块的设计32.2 温度测量模块的设计42.3 人机交互的模块设计52.4 加热模块的设计63 温度控制器的设计64 实验的结果和分析75 结 论8参考文献8基于STM32的温度控制实验裴顺利,电子系摘 要: 请设计一个基于STM32的单片机的具有高精度温度控制的实验,温度范
2、围为10140,实验模块包含控制,测温,加热器和人机交互等,并使用DB18B20温度传感器测量温度的大小,选用搭载ARM Cortex-M内核的STM32F429的单片机作为控制的核心局部,人机交互局部采用TFT显示屏显示温度,使用PWM的脉冲宽度调制波驱动加热器。该实验能够实现温度的测量,数据存储,控制和分析功能 。为实现三个控制参数的在线修正,使用自适应性强的模糊PID算法。不用建立被控对象的精确模型就能保证加热器功率的实时控制,实现较稳和较快的性能。实验结果说明了该方法的有效性和实用性。关键字:温度实时显示,控制;模糊PID算法;脉冲宽度调制Based on STM32 temperat
3、ure control experimentPeishunli,Department of electronicsAbstract:Please design a based on the STM32 MCU has a high precision temperature control experiment, the temperature range of 10 140 , the experiment module contains control, temperature, heater and human-computer interaction, etc., and the si
4、ze of the DB18B20 temperature sensor is used to measure the temperature, the use of carrying the ARM architecture (M STM32F429 single chip microcomputer as control core part of the kernel, the human-computer interaction part adopts TFT display shows the temperature, using PWM pulse width modulation
5、wave to drive the heater. The experiment can realize temperature measurement, data storage, control and analysis function. In order to realize the online correction of three control parameters, a self-adaptive fuzzy PID algorithm is used. The accurate model of the controlled object can guarantee the
6、 real-time control of the power of the heater and achieve the stable and fast performance. Experimental results show the effectiveness and practicability of this method.Keywords: temperature real-time display; control; Fuzzy PID algorithm; Pulse width modulation1 系统的整体设计在本次实验中电路总体上可以分为几个模块:人机交互的模块,温
7、度采集的模块,STM32的系统模块,驱动加热的模块。实验中我们以STM32作为主控制器控制电路,传感器采集温度作为STM32的输入,驱动模块,显示屏,以及按键作为STM32的输出。温度采集方面由DS18B20温度传感器,可与单片机直接连接。经过单片机的处理将温度的数据传给显示屏进行显示,利用按键进行设置温度阙值。如果温度超过设定的界限,那么通过STM32单片机发出的指令来控制驱动的模块,调节温度值。实验中系统的整体图如以下图1所示:图11.1 人机交互模块的设计温度控制系统经常是用来保证温度的变化稳点或按照某种规律进行变化。但是通常温度具有惯性大,滞后性严重的特点,所以很难建立很好的数学模型。
8、所以在本次实验中我们采用了性能高又经济的搭载ARM Cortex-M内核的STM32F429的单片机作为它的微控制处理器。人机交互模块主要是有普通的按键和一块彩色液晶屏幕所组成。该实验中采用的是模糊的PID算法,完成对系统的设计。1.2 温度检测模块的设计传统的测温元件有热电偶,热敏电阻还有一些输出模拟信号的温度传感器。但这些元件都需要较多的外部元件的支持。电路复杂,制作本钱高。因此在本次实验中我们采用了美国DALLAS半岛公司推出的一款改进型的智能温度传感器DS18B20。此温度传感器读数方便,测温范围广,测温准确,输出温度采用数字显示更加智能化。温度检测模块是以DS18B20温度传感器作为
9、核心,将测量的温度信号传递给STM32单片机芯片进行温度的实时检测,并通过数码管显示。2 系统各模块的设计主控制模块的设计在本次实验中我们选取STM32芯片作为微控制处理器。在STM32型号的单片机中,STM32F429单片机是一种基于ARM Cortex-M内核的具有很多优良的性能的单片机,其中高速度,低功耗的性能和对彩色显示屏有更加有效的处理机制。STM32型号单片机都会配备常见的一些外设,通用的定时器,多通道的ADC,SPI总线接口,I2C的总线接口,CAN总线接口,USB控制器,实时时钟RTC等。STM32还包括多个DMA通道,可以进行设备与内存之间的数据传输。SPI接口具有一个CRC
10、计算单元,可支持8位字节和16位半字数据的计算且支持96b唯一的标识码。供电电压只要在范围内便可支持正常的工作。如果在运行程序时以72兆次/s的速度读取命令,驱动电流只需要27mA。此外STM32单片机还具有四种低耗电量的模式,可以快速启动。2.2 温度测量模块的设计DS18B20温度传感器集成了A/D转换的功能,所以连接单片机时不需要再进行A/D转换电路的连接。其是一种单总线智能型的温度传感器,具有三个接口:地线(GND),数据线(DQ),电源线(VCC)。测温范围在-55125,电压范围在,固有的测温分辨率为,最高精度可以到达,最大的转换时间为200ms。一条总线上可以实现多点测温。DS1
11、8B20型号的温度传感器的温度测量原理如以下图2:DS18B20只需要使用一个I/O口,既可以传输时钟,又能够传输数据,并且数据的传输是双向的。并且在温度发生变化时,它对灵敏度较小的晶体振荡器的震荡频率比较稳定,几乎没什么影响,它给计数器1提供震动周期稳定的驱动时钟信号。当晶体振荡器的灵敏度较大时,那么温度发生变化时震荡频率波动很大,它被用来作为一个温度接收器,接收计数器2的驱动信号。高速暂存器RAM是由9个字节的存储器所构成的。显示位是01字节;复制TH和TL是用23字节,并且数字可以更新;配置存放器是第4个字节,也可更新。5,6,7字节是用作保存的。温度传感器的电路如图3:在单片机控制器的
12、B10端口是连接中间数据的端口,并以串行的方式将12b的温度信号输入给单片机。这是数字进行转换后的数据,温度数据存储在高速RAM的第0和第1字节,也就是存在两个8b的RAM当中,一共有16位。一般我们使用DS18B20中默认的配置为12位,一个高位符号位和11位温度值。数据传入单片机后,一次会读取其中的两个字节,也就是16位。前5位为符号位,如果测量的温度值在0以上,那么这5位为0那么为正值,再将低11位的二进制转化为十进制数后乘以便可得到实际的温度值;如果这个温度值在0以下,那么这5位为1那么为负值,只需要将测得的数值取反加1再乘以便可得到实际的温度值。DS18B20芯片的温度数据如表1:2
13、.3 人机交互的模块设计在人机交互的模块中,我们选用的是TFT型号的显示屏来实时的显示各个温度的数值,并通过按键的形式实现对温度的设置等相关功能。TFT显示屏本身亮度好,比照度高,层次感强,颜色鲜艳,使用时可以由其内部的运算器实现对数据的获取和传送,而不需要再添加其它的工具就能实现。TFT液晶显示屏为每一个像素都设有一个半导体开关,因而每个节点都是相对独立的,并且可以连续控制,不仅提高了显示屏的反响速度,而且精确控制了色阶。在使用时,我们一般设定一个点为X,Y,一般先通过18位的数据接口实现对x和y坐标的发送,并且通过LCD执行相应的元件,最后发送数据的颜色代码给LCD。最后就会在相应的位置显
14、示颜色。2.4 加热模块的设计在该模块中我们使用的是STM32单片机内部的PWM脉冲驱动实现对温度变化的控制。STM32的PWM输出引脚是使用IO口的复用功能,T2T4这4个通用定时器都可以输出4路PWM-CH1CH4。PWM输出的直流电压与占空比有关,当占空比为100%时,直流电压为12V,当占空比为50%时,直流电压为6V。在本次实验中由于电阻丝的发热难以控制,因此我们选用了陶瓷加热片作为被控对象放在OUT1和OUT2之间,加热片的额定电压为8V,最大电压为40V,额定的功率为4W,电阻为25。在实验中我们选用全桥直流驱动器对PWM的脉冲信号进行整流,当ENABLE=1,1N1接收到PWM
15、的信号,再将信号反向传给1N2,这样就可以调整加热频率。PWM的驱动模块原理如图4:3 温度控制器的设计对于温度控制器这样一个具有较大的滞后性,非线性的时变系统,单纯的采用传统的PID控制不会得到较好的控制效果,因此在本次实验中我们将模糊控制原理与传统的PID控制方式相结合的自适应的PID控制算法来对实验进行控制。这样的方式不仅具有不依赖系统精确数学模型的特点,同时又具有PID控制器的动态跟踪品质好和稳态精度高的特点。PID算法比较简单,功能也比较完善,效果也很好,一般形式为u(n)=Kpe(n)+KIe(n)+KDe(n) 式中n采样序号u(n)第n次采样时刻的控制器输出;e(n)第n次采样时刻输入的偏差;e(n)第n次采样时刻输入的偏差与第n-1次采样时刻输入的偏差之差;KP比例增益KI积分系数(KIKpT/TI)KD微分系数(KDKPTD/T)T采样周期TI、TD分别为积分时间常数和微分时间数。实验中我们主要以三个控制参数Kp,K1,Kd来控制信号的输出量。比例系数决定着静态误差的大小,Kp越大误差就越小。作为输入变量的模糊逻辑的误差变化和使用误差能够确保被控对象的良好功能。在实现中自使用模糊的控制过程如图5:4 实验的结果和分析在实验的