历史上的今天
返回首页

历史上的今天

今天是:2025年04月07日(星期一)

正在发生

2018年04月07日 | 基于ATmega16与温度传感器相结合的实时温度采集与分析系统

2018-04-07 来源:eefocus

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

    1 系统组成及基本原理

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

   c.JPG

    本系统的任务是对某种特定环境的温度进行采集并进行保存和再显示,通过单片机去控制固态继电器,从而控制其温度值的大小,再通过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所示。

   d.JPG

    2.4 报警输出电路

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

    3 软件部分设计

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

   e.JPG


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

   a.JPG


    3.1 温度显示曲线图

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

    3.2 保存设计单元

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

    3.3 显示设计单元

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

    b.JPG

    4 结束语

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


推荐阅读

史海拾趣

Gespac Inc公司的发展小趣事

对于快速充电IC(bq2002)电路,网友可能还会有多种问题,以下是一些常见问题及其回答:

一、电路设计相关问题

  1. BQ2002的BAT引脚如何正确接入电池电压?
    • 回答:BQ2002的BAT引脚用于接收电池电压的取样信号。通常,电池电压会经过一个电阻分压网络后接入BAT引脚,以确保BQ2002能够正确检测电池电压。电阻分压网络的输入电阻不应小于200kΩ,以避免对电池电压造成过大影响。
  2. 如何设置BQ2002的充电速率?
    • 回答:BQ2002的充电速率可以通过TM引脚进行设置。当TM引脚接地时,充电速率为1C(即电池容量的1倍)。此外,根据数据手册,TM引脚的不同电平还可能对应不同的充电速率,如C/2或2C,但具体设置需参考具体的数据手册或应用指南。
  3. BQ2002的CC引脚如何控制充电电流?
    • 回答:BQ2002的CC引脚用于控制充电电流的开关,而不是直接调节充电电流的大小。CC引脚有两种状态:高阻态和接地态。当CC引脚为高阻态时,充电电流可以流动;当CC引脚接地时,充电电流被抑制。充电电流的大小通常由外部恒流源(如LM317等)的电阻设置决定,与CC引脚的状态无关。

二、功能实现与调试问题

  1. 为什么BQ2002没有进入快速充电模式?
    • 回答:BQ2002没有进入快速充电模式可能由多种原因造成,如电池电压或温度不符合快速充电条件、TS引脚电压不在正常范围内、或外部电路设计问题等。建议检查电池电压和温度是否满足快速充电条件,同时检查TS引脚电压是否介于0.25VCC和0.4VCC之间(或1.25V和2.0V之间),并确认外部电路设计无误。
  2. BQ2002在充电过程中突然停止充电怎么办?
    • 回答:BQ2002在充电过程中突然停止充电可能是由于电池过热、电池电压过高或外部电路故障等原因造成的。建议检查电池温度是否过高,电池电压是否超出BQ2002的承受范围,并检查外部电路是否有短路或断路等故障。如果问题依旧存在,可能需要更换BQ2002芯片或重新设计外部电路。
  3. 如何调整BQ2002的充电截止电压?
    • 回答:BQ2002的充电截止电压通常是通过外部电路设计来调整的。具体方法可能因电路设计而异,但一般可以通过调整与BAT引脚相连的分压电阻的阻值来改变BQ2002检测到的电池电压值,从而调整充电截止电压。需要注意的是,在调整充电截止电压时,应确保电池不会因过充而损坏。

三、其他常见问题

  1. BQ2002支持哪些类型的电池?
    • 回答:BQ2002通常支持多种类型的可充电电池,如镍氢电池、锂离子电池等。但具体支持的电池类型可能因BQ2002的版本或制造商而有所不同。因此,在使用BQ2002进行电池充电时,应参考具体的数据手册或应用指南以了解支持的电池类型。
  2. BQ2002的功耗如何?
    • 回答:BQ2002的功耗通常较低,但具体功耗值可能因工作条件(如输入电压、输出电流、环境温度等)的不同而有所变化。在设计电路时,应充分考虑BQ2002的功耗对系统整体性能的影响,并采取相应的措施来降低功耗。

以上是针对快速充电IC(bq2002)电路的一些常见问题及其回答。需要注意的是,由于BQ2002的具体应用可能因电路设计、电池类型等因素而有所不同,因此在实际应用中应参考具体的数据手册或应用指南以获取准确的信息。

CONEXANT公司的发展小趣事

在语音通信领域,Conexant以其卓越的声卡技术赢得了市场的广泛认可。特别是在网络语音电话方面,Conexant声卡凭借其出色的性能和稳定性,成为了众多商务本和工作站的首选。惠普、联想等知名品牌的产品线中,都能看到Conexant声卡的身影。这一成功不仅源于Conexant对技术的持续投入和创新,也得益于其对市场需求的敏锐洞察和精准把握。

EPIC公司的发展小趣事

2006年,Epic Games公布了基于Xbox 360游戏平台的《战争机器》。这款游戏以其出色的画面效果、紧张刺激的战斗场景和深入人心的故事情节,迅速在市场上取得了成功。它的畅销不仅进一步巩固了Epic Games在游戏开发领域的地位,也证明了虚幻引擎在开发高质量游戏方面的强大能力。

C-TON Industries公司的发展小趣事

随着公司规模的扩大,C-TON意识到单凭自己的力量难以在竞争激烈的电子行业中立足。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名的电子产品制造商建立合作伙伴关系,C-TON成功将其芯片技术应用于对方的产品中,进一步扩大了市场份额。这一合作不仅提升了C-TON的知名度,也为其带来了稳定的订单和收入来源。

天二科技(EVER OHMS)公司的发展小趣事

面对不断变化的市场需求和技术挑战,天二科技始终坚持持续创新和客户至上的经营理念。公司与客户保持紧密合作,深入了解客户的需求和反馈,不断推出符合市场需求的新产品和解决方案。同时,天二科技还注重培养员工的创新意识和能力,鼓励员工积极参与技术创新和研发工作。这种持续创新和客户至上的经营理念使得天二科技在电子行业中始终保持领先地位。

Elekon Industries公司的发展小趣事

Elekon始终将品质放在首位。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。此外,Elekon还引进了先进的生产设备和技术,确保产品的质量和性能达到国际先进水平。这些举措使得Elekon的产品在市场上享有很高的声誉和口碑。

问答坊 | AI 解惑

中文域名相关知识

1什么是中文域名? 中文域名是含有中文的新一代域名,同英文域名一样,是互联网上的门牌号码。中文域名在技术上符合2003年3月份IETF发布的多语种域名国际标准(RFC3454、RFC3490、RFC3491、RFC3492)。中文域名属于互联网上的基础服务,注册后可以 ...…

查看全部问答>

自制2812开发板无法写入程序,为何?

自制一块2812的开发板,以前焊接的4块都可以用,目前这一块却无法写进程序,现象为:      1. 烧写时没有报错现象;      2. 但烧写进度条却没有任何提示,也就是停顿在原来位置;      ...…

查看全部问答>

AC-DC医疗电源应用

医疗设备产业是关系到人类生命健康的新兴产业,近十余年来,在世界发达国家一直保持着很高的市场年增长率,因而被誉为朝阳产业。随着医疗水平的提高,越来越多先进的医疗设备广泛运用在了各种医疗场合。电源作为医疗设备的重要组成部分,它相对于其 ...…

查看全部问答>

自己在家用什么东西做串口通信的实验呢?求大虾指教

毕业了,老师让给做个串口通信的东西。在家没办法做实验,请高手指教啊!…

查看全部问答>

EVC的编译错误,主要是error LNK2019,高手请进,轻松拿分

ps2keybd.obj : error LNK2019: unresolved external symbol \"int __cdecl KernelIoControl(unsigned long,void *,unsigned long,void *,unsigned long,unsigned long *)\" (?KernelIoControl@@YAHKPAXK0KPAK@Z) referenced in function \"public: ...…

查看全部问答>

WINCE里面,自己写的流接口驱动,怎么实现可以让应用程序向驱动里面注册一个回调函数?看到WINCE驱动里面有很多注册回调函数的驱动程序!

WINCE里面,自己写的流接口驱动,怎么实现可以让应用程序向驱动里面注册一个回调函数?看到WINCE驱动里面有很多注册回调函数的驱动程序! 所以想实现这个机制,这样很方便的,也不用驱动给AP发消息了!!!…

查看全部问答>

minicom启动后停在Uncompressing Linux......后不动了,为什么

虚拟机已经添加了串口设备,minicom的设置也已经设置好. 串口设置成/dev/ttyS0, BPS设置成:1152008N1. Hardware Flow Control:No. 启动minicom时出现以下这些字符,然后就停在那儿不动了,为什么? Uncompressing Linux.......................... ...…

查看全部问答>

eVC or VC 如何调用tablet PC 手写输入?难

有一款华硕的平板PC, tabletPC 自带了一手写输入, 如何在程序中进行调用? 谢谢。。 手写输入有像其他文件那样的*.IME文件吗?谢谢!…

查看全部问答>

用3.7V的锂电池供电,要得到2.5V,2.8V,3.3V的输出需要用电源芯片吗?

在做个mp3,想用3.7V的锂电池供电,要得到2.5V,2.8V,3.3V的输出需要用电源芯片吗?串联电阻或是二极管降压可以吗?…

查看全部问答>

今天在客户那里看到个ST的一个很好玩的小礼品

几个小方块(其实不是方的)反过来掉过去,可以组合很多形状。上面是STM32的产品简介,是个不错的宣传品。不知道香版那里有没有多余的,送我一个,在调程序累的时候,活活脑筋。…

查看全部问答>