
PIC温度记录器
本项目使用Microchip PIC微控制器、串行EEPROM和热敏电阻来创建一个温度记录器。温度以用户可编程的间隔进行测量和存储;这可以从1秒到256秒。时间间隔通过将其和开始时间编程到EEPROM中来设置。大部分时间PIC将处于睡眠状态,EEPROM IC不活动。这给出了非常低的电流消耗,大约50微安或每天约1毫安时。使用的EEPROM为32千字节,可以存储多达32,000次测量。例如,这可以是每30秒一次测量,持续11天。热敏电阻和模拟电路的组合给出了大约-40°C到+100°C的范围,尽管线性范围在大约-10°C到+40°C之间。

在这张图片中,可以看到温度记录器插入了外部热敏电阻。末端的连接器包含电源、I2C时钟和数据以及模拟输入。完整单元的整体尺寸为长40毫米、宽26毫米、高16毫米。带电池盒的箱子在这张图片中,温度记录器连接到一个带有4节AAA电池的电池组。这很好地显示了尺寸,并表明我需要一组更小的电池。PCB(版本1)PCB版本1电路的第一版本构建在条状板上,使用DIL封装的IC和传统的通孔无源元件。PIC微控制器位于PCB中心左侧,EEPROM IC垂直安装以节省空间,位于中心右侧。外部连接器是左下角的1.3毫米电源插座和右侧的5针SIL插座。其他组件包括左上角的ICSP插座(带电阻和二极管)、PIC左侧的晶体振荡器和两个电容器、EEPROM旁边的两个I2C上拉电阻以及右上角的热敏电阻分压电阻。PCB(版本2)PCB版本2电路的第二版本构建在自制的单面PCB上,使用SO8封装的IC和表面贴装无源元件。IC的间距仅为0.05英寸(1.27毫米),去耦电容为0805封装(0.08英寸 x 0.05英寸 = 2毫米 x 1.27毫米),而电阻为1206封装(3毫米 x 1.5毫米)。晶体及其电容器与之前相同,连接器也是如此。走线全部以0.02英寸宽度(0.5毫米)布线,尽管在最终生产中它们略宽。软件PIC软件PIC软件用汇编语言编写,基于早期使用I2C接口的项目。EEPROM、PIC和外部连接器共享相同的I2C总线,除非安装热敏电阻,否则PIC不会使用它。在这种情况下,EEPROM地址持续递增,以便可以看到数据中的中断。当不进行温度测量时,PIC进入睡眠状态。它每秒被唤醒一次(使用外部晶体振荡器和内部计数器)检查是否到了进行测量的时间。采样间隔存储在外部位EEPROM的固定位置,并在上电时读取。热敏电阻和一个电阻形成分压器,由PIC上的一个ADC通道测量。这被测量四次,四次结果相加。由于电路中存在的噪声,四次读数的平均值可能比单独一次测量更接近真实值,因此这给出了稍好的测量。ADC测量直接存储,而不是先转换为温度。为了节省空间并保持准确性,与前一次测量的变化在可能时用1字节存储,否则使用2字节。如果值从上一次变化在-112到+112之间,则存储变化量。如果值变化超过此范围,则存储两个字节,第一个字节带有标志位来指示这一点。PIC是12F683器件,使用内部振荡器以4 MHz运行。I2C接口使用位冲击(编程控制I/O线)以近100 kHz运行,而不是PIC SSP接口。本项目的完整信息可供下载。这包括I2C接口的库函数以及电路图、布局图和各种C程序。本项目包含在可下载的PIC代码库中。PC软件要重置设备,有一个程序可擦除整个EEPROM(至0xff)并写入一个32字节的头部,包含时间和采样间隔。PIC将使用采样间隔来决定何时进行测量,开始时间由提取数据的程序使用。要从PIC读取数据,有软件可转储整个EEPROM内容并提取开始时间、步长和原始数据。数据被转换为日期、时间、测量值和温度,用于EEPROM中的每个数据点。电路图电路图电路图非常简单,仅包括ADC接口(一个电阻)、I2C接口(两个电阻)、EEPROM IC、ICSP(插座、一个二极管和一个电阻)、振荡器(晶体和两个电容器)。电路布局版本1条状板上的电路布局这个简单的PCB布局图显示了组件在条状板上的放置。视图是从PCB顶部,与照片中相同。电路布局版本2定制PCB上的电路布局这个PCB布局图显示了定制PCB上的组件和走线。该PCB的视图是从带走线的一面,尽管一些组件安装在另一面。组件本项目的所有零件都不难找到,尽管表面贴装组件比标准组件更不常见。示例结果下面的图像显示了使用此设备可以获得的示例结果。捕获的温度数据温度记录器在2007年初冬季被放置在家用恒温器旁边约10天。图上显示了测量温度和恒温器设置(一个“智能”恒温器,旨在在指定时间达到目标温度)。测量数据明显匹配加热活动时的恒温器设置,在白天和夜晚不活动时温度迅速下降。







这里还没有内容,您有什么问题吗?