设计与开发

单片机水温控制系统 「单片机项目实战」温度控制系统

小编 2024-10-06 设计与开发 23 0

「单片机项目实战」温度控制系统

本项目的主要作用是实现温度调控,通过设定一个预定的温度值,实现实时检测外界温度,当外界温度小于预定值时,电机正转,实现降温效果;当外界温度大于预定值时,电机反转,实现升温效果,从而达到一个维持一定温度范围的控制系统。

所以在实现上以一个单片机作为处理器,利用传感器DS18B20采集温度值,然后将采集到的数据传送给单片机,单片机根据程序设定的温度范围检测,通过控制电机来转动通风,实现温度调节的目的。

其实整个电路组成可以分为四个部分,分别是单片机控制主体,DS18B20温度电路,液晶显示电路和L298N电机驱动电路。

单片机控制主体

是整个温度控制系统的核心,处理中心,所有其他的模块电路都需要通过单片机控制或和单片机交换信息等。而这个过程就是通过单片机的引脚,比如它的输入输出引脚作为信号输入输出的通道以及一些特殊功能引脚等。

单片机引脚主要大类:

电源引脚: VCC和GND,供电和接地用的

复位引脚: 一般是RST,用于芯片的复位,复位系统是单片机中不可缺少的部分

输入输出引脚: 也就是I/O,用于信号输入或输出信号

振荡器引脚: OSC(振荡器),其实就是时钟信号电路,用于连接振荡器,晶振,不管现在很多芯片都有内置振荡器,在时钟要求不是很高的情况下,可以不用额外接振荡器到单片机的振荡引脚中。

特殊功能引脚: 具有特殊的功能,比如说协议传输如SPI,I2C,UART等等,还可以是LCD驱动,ADC,USB传输等等。

DS18B20温度电路

DS18B20是一款常用的数字温度传感器,具有体积小,抗干扰能力强,精度高的特点,并且有多种封装形式,比如管道式,磁铁吸附式等等。

对于这部分电路,DS18B20模块主要是三个引脚,也就是电源,GND和信号,数据传输到单片机的数据传输引脚,从而获取到温度传感器中检测到的数据。

液晶显示电路

这部分电路主要用来显示单片机想要输出的内容,比如说显示温度,提示信息等等,这部分可以通过软件编程进行设置。

L298N电机驱动电路

L298N是常用的一款步进电机驱动芯片,具有工作电压高,输出电流大,驱动能力强,发热低,抗干扰能力强的特点,在这里用来作为驱动风扇转页马达的部分。并且L298N是利用脉冲宽度调制(PWM)方式进行转速的控制的。

一般会通过控制脉宽时间(比如高电平)占总周期的时间比例,也就是占空比,比例越大,则转速越高,从而通过控制占空比来控制转速。

在硬件电路设计好之后,就是核心部分的软件实现逻辑了,这个系统需要处理好温度值与PWM调速功能的关系,从而完成整个温度控制系统的功能。

项目使用的编程语言是C语言,软体设计部分由于篇幅问题,后期会分单独一篇文章进行分享。

往期精彩内容:

PCB板由哪些元素组成?(PCB板的五脏六腑)

电阻的作用有哪些?(超全)

常说的LDO电路是啥?(简单版)

笔记本(金属外壳)电脑漏电怎么办?

基于机智云的STC单片机水温智能控制系统的设计与实现

本文设计了一种物联网的水温控制系统,包括机智云物联网平台,DS18B20水温传感器、水温主控制器和通信模块STC单片机、esp8266无线模块等。系统通过采集当前水温的状态和按键的控制状态,采用PID算法得到控制值,输出信息给加热驱动和直流电机模块,实现水温的加热,同时通过并口和通信模块连接,通信模块通过串口和ESP8266连接,ESP8266通过WiFi连接物联网平台,实现温度的远程监测和控制。

1、系统总设计

系统硬件包括STC单片机控制电路、通信电路、液晶显示电路、加热驱动电路、温度均匀搅拌装置和无线WiFi模块组成的系统硬件装置。系统硬件模块连接如图1所示。系统软件主要采用C语言编写,通过C语言和Keil搭建软件编程环境,机智云物联网平台和硬件电路开发板作为调试工具来完成系统设计。

2 关键电路设计

2.1 系统主控模块和通信模块

在智能化控制方案中,系统采用两个STC单片机搭建方案,一个STC单片机作为主控制器,负责信号的处理、显示、输出控制等。另一个STC单片机作为通信控制器和ESP8266无线WiFi连接,解决通信中通信协议数据量大和控制器RAM小的问题。其中ESP8266无线WiFi器件为核心的数据传输模块,连接机智云物联网平台,数据通过通信链路实现传输,在机智云物联网平台上或终端进行数据监测。其硬件原理图如图2所示。

2.2 系统工作电源及最小系统工作原理图

系统工作电源采用直流稳压电源,利用变压器把220V交流变直流,通过桥式镇流、滤波、稳压器件LM7805和LM1117RS-3.3分别得到5V和3.3V的工作电源。直流加热电源采用集成24V/200W的开关电源供电。5V和3.3V的电源分别为STC单片机最小系统和ESP8266无线WiFi模块供电,其中STC单片机最小系统包括电源电路、复位电路、时钟电路及下载电路。硬件原理图如图3所示。

2.3 信号采集及电机搅拌原理图

温度采集采用DS18B20传感器对水温进行采集,加热系统采用直流加热棒进行加热。在整个加热和水温采集环节,发现采集的温度点不一样,得出温度控制参数不一致,经过不断实验和发现,温度在加热过程中存在不均匀现象,会有不同温区存在。为解决水温不均匀的现象,设计一种搅拌装置,在水温加热过程中周期性对加热区的水进行搅拌,使得DS18B20能够采集到较准确的水温值,在整定PID过程中能够得到更为准确的PID参数,进而提高系统稳定性和可靠性。硬件原理图如图4所示。

2.4 信号输出驱动及液晶显示电路原理图

系统采用24V/200W直流电对加热棒进行加热,加热棒的温度直接影响水的温度,因此控制加热棒温度就能控制水的温度。设计一种PWM(脉宽调制)信号对直流加热棒的驱动电压加热时间进行控制,进而控制加热的热能,PWM信号是实际温度与设定温度的差值通过PID计算得到的一个控制值,能够精确控制温度信号。为使控制器的PWM输出能够控制24V/200W的驱动信号,用SSR单项固态继电器设计了输出驱动电路,经反复实验表明,该驱动电路能够满足系统的要求。其显示部分用带中文字库的字符液晶ST7920控制的12864显示温度数据和温度设定,并实现温度曲线的实时绘制和温度控制时间的显示。其硬件原理图如图5所示。

3 软件流程架构及算法

随着通信技术的发展,STC单片机的功能越来越强大,有代表性的编译软件有Keil、IAR、CodeWarrior等。代码语言有汇编语言、C语言、Java语言等。C语言具有良好的逻辑及功能性,本次设计选择STC单片机作为主控制器,编程语言选用C语言,编译软件选用软件Keil。

3.1 系统软件设计总体流程图

整体系统软件设计是由系统中不同功能模块整合在一起实现系统功能。系统中包括PWM输出程序设计、PID温度控制程序、按键扫描程序、液晶显示驱动程序、WiFi模块通信程序、报警电路、DS18B20温度传感驱动程序及电机驱动搅拌装置。根据软件框架图,设计程序流程图,为程序的功能实现、算法编码、软硬件调试、后期维护提供条件。程序总体流程图如图6所示。

图6 程序总体流程图

3.2 系统核心控制和通信算法理论

PID温度控制是一种成熟技术,具有结构简单、易于理解和实现的特点。在工业控制中90%以上的控制系统回路都具有PID结构。PID调节将设定值W与实际值y进行比较构成偏差,并将其比例、积分、微分通过线性组合构成控制量。采用PID控制效果的好坏很大程度上取决于PID三个控制参数的确定。PID控制主要构成如如7所示。

图7 模拟PID控制

PID控制的动态方程为:

其中,Kp为调节器的比例放大系数;Ki为积分时间常数;Kd为微分时间常数。

水温系统的智能控制采用PID增量式算法,根据实验结果和数据,采用先比例再积分,最后微分的实验凑试法进行PID参数整定。比例系数的整定取消积分和微分的作用,采用纯比例控制,将比例系数从小到大调节,观察系统的响应,直到响应速度快且有一定范围的超调,得出比例系数。

积分部分的整定,如果系统的静态差达不到系统要求,这时需加入积分,整定时积分系数由大到小逐渐递减,观察输出,直至系统静态误差减小或消除,得出积分系数。微分系数的整定,如系统通过比例和积分调节都不能达到要求,需加入微分系数,同样,整定时使微分系数从小到大逐渐增加,观察超调量和稳定性,同时微调比例系数和微分系数,观察系统的输出响应、超调量和稳定性。通过不断实验和整定,电源为200W直流加热系统,加热0.5升的纯净水,在温度变化为20℃时,超调量不超过0.1℃,得出PID的比例系数为19,积分系数为0.036,微分系数为0.8,能够使PWM输出达到系统控制要求。

智能水温控制系统,通信部分主要是STC单片机之间的通信、STC单片机和ESP8266 WiFi的通信,以及ESP8266 WiFi和机智云之间的通信。由于STC单片机模拟了PWM的定时输出,如果利用串口进行通信,会出现不稳定现象,为避免这种现象,STC单片机之间的通信采用并行口,结合P15、P16实现并口通信协议,协议内容如表1所示。STC单片机通信控制从P0端口接收到温度控制器传输的数据后,用串口连接ESP8266 WiFi模块,ESP8266 WiFi模块连接当前环境的路由器热点,与机智云服务器建立TCP连接,进行数据传输。

同时,

手机终端或WEB终端发送控制命令,通过命令数据

→机智云服务器

→ESP8266 WiFi

→STC单片机通信控制

→STC单片机控制系统的通信流程,对温度进行远程监控。

4 实验数据结果

根据软硬件测试,系统自检正常,温度显示正常,通信正常。设定STC单片机控制水温在一定范围内,对整体水温控制系统进行测试,在20~60℃范围内实现多组设定,温度控制实验效果如图8所示。

图8 温度控制实验效果

通过实验结果分析,每个测试的目标温度反映实际和误差,在相同测试环境下,将温度计和温度采集模块所测得温度进行比对,将数值记录得到表2,从而得到标度误差。

5 结束语

设计以STC单片机结合增量式PID、PWM脉宽输出、机智云物联网平台,完成了系统软硬件设计,经过综合调试和测试,验证了该远程控制系统软硬件设计结构合理,性能可靠,操作方便。由于时间和实验条件限制,该系统设计仍有一些缺点和不足,没有采用更高性能的处理器来完成硬件和软件设计,未来有待进一步完善。

相关问答

单片机 、光耦

[回答]1系统总体结构原理粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么...

单片机 温度报警器实验步骤?

4.在单片机开发环境中,编写程序,包括读取温度传感器的值、判断是否触发报警以及控制输出引脚来控制显示器和报警器的工作。5.将程序烧录到单片机上,通常使用...

51 单片机 工作温度?

AT89C51-24PI,中24表示他的工作频率,P为封装形式(DIP),I为工作环境(工业)。单片机工作温度:商业级:0℃-+70℃工业级:-40℃-+85℃汽车级:-40℃...AT89C...

单片机 火灾报警用什么温度传感器?

单片机火灾报警中使用的温度传感器一般是热敏电阻(thermistor)或热电偶(thermocouple)。热敏电阻是一种能够随着温度变化而改变其电阻值的传感器,其具有灵敏...

单片机 温度和热电偶的接法?

热电偶加一个上拉电阻,直接接到单片机的A/D脚就行了,不需要放大了,每种热电偶都有计算公式的。测量电压的基准就用电源电压就可以了,想精度高就用专门的基准...

水温控制系统 中动态误差静态误差还有怎么实现 单片机 与加热设...

[最佳回答]静态误差:水温达到稳态时与设定值的误差.可以用PID控制(增量PID)——加温、制冷参数要分开调.单片机与加热器用光耦隔离驱动固态继电器或可控硅来控...

单片机 和cpu区别?

一、不同的指代1、CPU:作为计算机系统的操作和控制核心,是信息处理和程序操作的最终执行单元。2、单片机:又称mcu,是适当降低中央处理器的频率和规格,将存...

STC 单片机 温湿度监测 系统 所需元件清单?

温控器74HC595D可控硅BT137光藕MOC3063放大器OP07继电器OJESS-124HMAD转换器ADS1110(选用件)温控器 74HC595D可控硅 BT137光...

单片机 如何实现自动 控制 ?

单片机实现自动控制的关键是通过编程控制输入输出端口,根据预设的条件和算法进行逻辑判断和控制操作。通过传感器采集环境信息,单片机根据这些信息进行处理,...

DS18B20温度传感器如何与 单片机 相连接_汽配人问答

[最佳回答]1、DS18B20温度传感器与单片机的一个IO口连接。2、温度传感器(temperaturetransducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器...

猜你喜欢