基于ATmega16单片机的实时温度采集与分析系统[图]

通用测试仪器

203人已加入

描述

摘要:温度是工农业生产中很重要的的参数,它直接影响到产品的质量与性能。提出了一种基于ATmega16单片机与温度传感器相结合的实时温度采集与分析系统。本系统介绍了以ATmega16单片机为核心,以及自动化控制装置GTJJ4-10A固态继电器和数字温度传感器DS18B20,报警与指示电路等,在分析中基于MFC的软件处理。其中包括温度曲线的绘制,以及温度值的保存,显示历史记录等。在经过烧水温度的测试,该系统稳定可靠便于分析。温度误差0.5℃,可以满足工农业生产的要求。

随着计算机技术尤其是单片微型机技术的发展,温度对人们的生活与工作影响很大,所以要实时采集温度并且对其进行分析。为此,实现实时准确的测量监控。采用串口传送数据并且在PC机上进行分析。由于单片机的控制方便、简单和灵活等优点,采用了高性能avr单片机来控制GTJ4-10A固态继电器,最总实现温度的控制。从而最总在PC机上绘制温度曲线并保存数据和分析温度的数据。

1 系统组成及基本原理

本系统由温度采集模块,固态继电器控制模块,单片机模块,PC机软件处理模块。4个模块加起来实现温度的控制,以及温度采集和温度经过软件处理的分析。它们的逻辑关系如图1所示。

图1 逻辑关系图

本系统的任务是对某种特定环境的温度进行采集并进行保存和再显示,通过单片机去控制固态继电器,从而控制其温度值的大小,再通过PC机实时显示当前的温度,并对当前的温度进行分析与保存。便于与以后的温度值进行对比等应用。首先由ATmega16单片机控制GTJ4-10A固态继电器从而控制交流电,再达到控制温度值的大小,这个时候通过DS18B20温度传感器对当前的温度值进行采集。将采集的数据结果通过Tx送给单片机,单片机将达到的温度值一方面通过串行通讯端口送给计算机,另一方面将温度数据进行对比分析,再通过IO控制GTJ4-10A固态继电器。从而实现了温度值控制。另一方面PC机得到的温度值送给MFC软件绘制温度曲线,同时通过保存按钮将温度值以及采集当前温度的时间记录下来。然后再经过显示按钮将温度值和时间显示出来。这就是对温度的实时采集与分析。

2 硬件部分设计

本系统主要采用高性能AVR单片机,GTJ4-10A固态继电器,DS18B20温度传感器,报警输出电路。主要系统电路图略。

2.1 ATmega16单片机简介

ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与运算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。因此可以很好进行数据传送以及对继电器的控制和温度的采集。

2.2 温度采集模块

DS18B20采用Dallas独有的单总线协议,温度转换结果可选择为9-12位,最大转换时间在转换结果为12位时为750 ms,可通过读取DS18B 20的状态值判断其是否转换完毕。其测温范围为-55~+125℃,精度在范围内为±0.5℃。

2.3 固态继电器的控制

继电器模块单元通过单片机的IO口控制,让单片机的计算器计数,当环境温度的需要加热时,我们通过IO让继电器工作,达到某一数值时,再给继电器IO口低电平,从而通过单片机和利用继电器实现弱点控制交流电的作用,这里主要是利用了单片机PWM实现控制,从而就实现温度值大小的控制。具体电路图如图2所示。

图2 单片机控制电路

2.4 报警输出电路

报警输出电路通过单片机的PA6口控制8550三极管,从而控制蜂鸣器。当温度值达到某一值时,蜂鸣器报警。这时通知单片机停止加热,再经过固态继电器控制加热设备,实现温度维持在一恒定的温度值附近。如果温度值低于某一数值时,单片机通知加热设备加热,这个原理是采用采集温度值控制的,从而达到用户的要求。

3 软件部分设计

在系统硬件构架完成后,系统软件所实现的功能主要是针对温度曲线的绘制以及温度值的实时记录和存档并且实现历史记录。程序流程图如图3所示。

图3 软件流程图

通过单片将数据传递给PC机,PC机将接收到的数据在温度曲线显示与分析用户见面显示出来。本软件设计中还有串口选择、波特率的选择、停止显示、清空数据、关闭程序等基本功能。这里主要是温度值的曲线绘制,然后再将温度值保存起来并进行再显示的操作。从而达到实时采集与分析的功能。温度曲线显示与分析用户界面如图4所示。

图4 用户界面

3.1 温度显示曲线图

温度显示曲线图的主要任务是将单片机接收到的数据显示出来,当温度传过时,在软件中分别显示当前的温度值和时刻。通过MFC中的Time函数记录每一个温度值的时刻。并采用绘图函数将温度值和温度的当前时刻绘成曲线,然后再对数据特殊处理绘制成曲线图。在这里比较难处理的是实时的温度采集绘制曲线。

3.2 保存设计单元

单片机接受的数据通过MFC中的WriteData()将温度值和时刻值保存下来,此种做法就是利于将来对数据的分析使用,将温度值和时间值记录存档成txt文件,打开txt文件可以很清楚看到数据的变化情况,这部分功能主要是记录温度值和温度值的当前时刻,利于将来对温度值做比较分析。

3.3 显示设计单元

显示设计单元是将保存的温度值和时间值再绘制成温度曲线图,便于清楚分析数据。通过ReadData函数将保存的数据读出来,然后在经过画图函数绘制温度曲线图,在这里可以清楚地看到历史数据,这样做便于实验数据科学分析,这部分功能主要是显示历史温度值和时刻,实验结果如图5所示。

图5 实验结果

4 结束语

该实时温度采集与分析系统行能稳定可靠,另外,本系统采用高性能的ATmega16单片机最小系统组成。选用高灵敏度的数字式温度传感器为依据。通过单片机控制输出不同的PWM,从而可以绘制出实际的温度曲线,也可以根据不同的环境分析各个时刻的温度值。本软件设计中还有重要的保存和显示历史记录的功能。利于将来进行对比分析数据。同时满足实时环境温度检测和多种用户的要求。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分