简介
一个数据记录器是一种装置,记录一段时间的测量。测量该项目介绍了如何构建一个小型的记录器,记录周围环境的温度值,可以是任何物理变量如温度,压力,电压,湿度等。它具有以下特点:-只使用一个8引脚芯片,所以非常紧凑的尺寸电路?
-温度范围:0到+125 ° C
-最多可存储254个测量
- 采样间隔选项:1秒,1分钟,10分钟
-复位功能清除所有以前的测量
- 记录测量到PC的串行
传输-用户输入和LED指示灯的触觉开关。
说明
这个项目的妙处在于,它使用记录只是一个单一的的芯片 。这是PIC12F683,一个8针从Microchip的微控制器。PIC12F683器件具有6个通用的I / O(GP0 GP5和GP3仅输入)引脚和2K x 14的闪存程序存储器
,256字节内部EEPROM 。将与DS1820温度传感器测量温度。DS1820是一个线从达拉斯半导体公司(现为MAXIM公司)的数字温度传感器。该器件的工作温度范围为-55 ° C至+125 ° C的精度为± 0.5 ° C的范围在-10 ° C至+85 ° C。温度传感器输出是9位摄氏温度测量,温度分辨率对应的最低有效位,这是0.5 ° C。但在这个项目中,我们将使用唯一的最重要的8位。因此,温度分辨率为1 ° C。测得的温度将被记录到的PIC12F683内部EEPROM的内存。内部EEPROM的第一个位置,将存储的数据记录仪的采样间隔。采样间隔定义连续两次测量之间的时间差距。该项目将有3个??选项为采样时间:1秒,1分钟和10分钟。这些都是用户可选择。第二个位置的EEPROM存储至今录得的测量。而其余254 EEPROM的位置将存储8位的温度。因此,使用10分钟的采样时间间隔,254字节的EEPROM,将提供42小时的数据记录。记录的测量值可在任何时间发送到PC,通过在9600波特的串行链路。
将数据传输到PC
用户输入
将有三个轻触开关,为用户的输入,即启动,停止,发送/复位。三层交换机将能够接受以下4个用户请求。1,开始:当按下“开始”按钮,数据记录开始。2。停止:“停止”按钮,按下后,数据记录将停止 3。发送:通过串口传输数据到 PC。复位:控股的“发送”按钮2秒或以上,清除内部的EEPROM存储器。
采样时间的选择
可以选择的采样间隔为1秒,1分钟,或10分钟,使用相同的三层交换机。假设如果我们需要1分钟的采样时间,先关闭电源,然后按住“停止”按钮,打开电源,并等待,直到指示灯发出。一旦LED的发光,松开按钮,采样间隔将被设置为1分钟。新设定的采样时间将被更新到EEPROM的位置0,以便在停电的情况下,将恢复以前的采样时间。同样,使用1秒的“开始”和“发送”按钮,10分钟的采样间隔分别。
LED指示灯
每次用户按下输入按钮,LED发光一个时刻表明,输入接受。它还闪烁三次,每次EEPROM写操作发生。它也开始闪烁时,接通电源“ON”。它还发光时EEPROM存储器已满。
电路图
该项目的完整的电路图如下所示。
在六个I / O引脚的PIC12F683分配如下:
1。GP0(引脚7,I / P):此引脚将被用来读取DS1820的传感器的温度值。
2。GP1的(6脚,O / P):这将是用于串行数据传输到PC。
3。GP2的(引脚5,O / P):LED输出引脚。
4。GP3引脚(引脚4,I / P):发送(轻触开关)
5。GP4(引脚3,I / P):停止(轻触开关)
6。GP5(引脚2,I / P):启动(轻触开关)
将使用一个简单的晶体管的电平转换,从PIC12F683的适当的串行数据传输到PC的RS232电平转换为TTL电压。来自PC的RS232端口引脚3(TX),这仍然是空闲的,没有数据传输时从PC到PIC所需的负电压。我上通用的原型板焊接的所有组件。此外,我国成品运行在一系列反极性保护二极管,3节AAA电池。我也有一个在黑板上的电源开关。PIC的使用在4MHz内部振荡器,MCLR被禁用。
组件列表
轻触开关 -的PIC12F683微控制器
- DS1820温度传感器
- BC557 NPN晶体管
-电阻器:10K(4),4.7K(2),470欧姆(1)
-电容:10uF的,50V(1)
- LED(1)
- (3)
软件
固件是用C语言编写,并MikroElektronika mikroC编译器 编译 。我用它的免费版本,因为我们的hex输出将是比2K 。mikroC下载链接http://www.mikroe.com/eng/downloads/get/29/mikroc_pro_pic_2010_v380_setup.zip3用户输入开关的工作中断更改模式。这意味着任何时候用户按下任何按钮,产生一个中断,当单片机读取DS1820的(这是温度值的瞬时),当它通过串口传输数据到电脑的时间除外。那些瞬间中断被禁止。数据传输采用9600波特率的地方 。你可以写自己的软件,PC端接收数据,但我已经使用了用于此目的的超级终端应用程序。我的超级终端设置BPS:9600,数据位:??8,奇偶校验:无,停止位:1,流量控制:硬件
超级终端接收窗口
超级终端接收窗口
照片