- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于 ATMEGA88的红外测温仪
作品采用 ATMEL公司的 ATMGEA88 作为 MCU,部有 8K FLASH,1kram 。工作在部 8M RC
振荡下,耗电仅为 2MA 左右。采用 RISC指令集的 AVR 核心,运算速度大大超过传统的 51 单片机。部带有 3 个定时器, 8 路 10 位 AD(模数转换器) ,串口,硬件 SPI,方便使用。大批量采购价格目前由于炒货的原因涨价到 12RMB。(具体问题可以搜索下, 网上吹捧得很多)推荐你看一下中文的 PDF,到处都有下载的。采用这块芯片主要来说就有一点,比 51 先进,功耗低,带 AD,而且外部不需要加晶振。
使用一块 LCD5110 手机屏作为显示设备, 可以显示输出电压以及当前状态。 液晶屏参数
为 72*48 ,点阵式,使用一个驱动库作为支持,方便开发,工作在 3.3V 电压下。耗电极低,小于 1MA ,背光耗电为 20MA 。
使用一片 LDO(低压差线性稳压源)作为系统电源, LM1117-3.3V ,输出电压为 3.3V,最大电流 500MA
以下为单片机的复位电路和烧录程序用的接口
使用 OTP-538U红外传感器,该传感器是一种红外线感应型的温度探测器。主要工作原理是
利用红外线的波长在硅片上产生相应的电压, 根据检测到的电压不同来检测不同的温度。 由于只要是发热的光源就会辐射红外线, 所以可以对温度进行非接触式的检测。 传感器由一个
热敏电阻和传感器部分组成。 传感器部分根据外部的温度产生相应的电压, 而热敏电阻根据
外部温度不同, 电阻值产生变化, 由此来补充因为外界环境对传感器的影响, 因此可以做到比较高的精度。价格为 RMB40 每颗,以下是接口电路
下表是温度与电压输出的比例
下表是热敏电阻的变化比率
由于这两个值变化很难算。 。。。应用电路上都是 4 个电阻做的,而且没有电压偏移和温度的关系。。所以我直接舍弃了温度补偿。 。。。
这个图的电阻值我完全计算不出来。
。。泪流满面。。。
采用 TI 公司的仪表放大器 INA114,采用仪表放大器最大的好处是增加了输入阻抗,而且放
大倍数比较好调整, 高 CMRR,而且噪声极低, 最关键的是, 输入失调电压小。 价格为 RMB32。。
以下是仪放的基本参数
LOW OFFSET VOLTAGE: 50 V max
LOW DRIFT: 0.25 V/ C max
LOW INPUT BIAS CURRENT: 2nA max
HIGH COMMON-MODE REJECTION:115dB min
INPUT OVER-VOLTAGE PROTECTION: 40V
WIDE SUPPLY RANGE: 2.25 to 18V
LOW QUIESCENT CURRENT: 3mA max
当 R5=100 时,放大倍数为 500 倍。 G=50K/R5。运放为双电源运放,所以提供了双电源。
放大后的电压大概为 75MV( 26 度),145MV( 37 度)。由于没有准确校准, 所以必定有偏差。
采用美信公司的反相电荷泵芯片 MAX889T 作为负向电源的输出。最大输出电流为 200MA ,
可以满足运放的需求, 留有足够的余量。 电荷泵工作在 2M 开关频率下, 只需要 1UF 的电容
就可以工作。不需要外加电感,最大工作电压为 5.5V ,漏电流为 20MA 。 RMB20 一个。。。
软件流程图
系统初始化
屏幕初始化
采集运放放
大后的输入
电压
计算当前温
度
更新温度显
示
程序带注释
#include <mega88.h>
#include "lcd5110.h"
#include <delay.h>
float wendu;// 定义 float 型的函数保存温度,方便计算小数
#define FIRST_ADC_INPUT 5
#define LAST_ADC_INPUT 5
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1]; #define ADC_VREF_TYPE 0xC0
//AD 初始化,时钟 62.5K,部 1.1V 基准,采用自动扫描模式,扫描通道 AD 通道 5
ADC interrupt service routine
with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
Read the AD conversion result adc_data[input_index]=ADCW;
Select next ADC input
文档评论(0)