注:请勿转载,如有需求请与刊登的杂志社联系.
上次我们介绍了一款采用单片机制作的测量电脑内部器件温度的电路。这次我们将介绍另一个很有特色的电路,它没有采用单片机,所以制作起来比较简单。它可以同时监控室内和室外的温度,电路连接到了计算机的串口上,通过程序在显示器上实时的显示当前的温度。
这是一个非常简单的电路,只要插在计算机的任一串口上就可以测量温度。电路中没有用到任何类似单片机这样的可编程元件。无需校准就可以到达0.5度的精度。另外这个电路的成本也很低廉。让你的windows的任务栏多一个温度显示,是一个很不错的主意,你难道不想做一个吗?
即使对于初学者来说,电路也是足够简单的。在单传感器版本中,你只需要一个温度传感器芯片、几个稳压二极管管、几个开关二极管、几个电阻、一个电容而已。在制作的过程中,你还可以顺便学习一下I2C总线的原理:怎样用两个电阻和两个稳压管来实现串口的I2C通讯。
//实物照片1.jpg
//实物照片2.jpg
一、技术参数
在windows任务栏显示室内和室外温度
适用与任一串口
测量范围:-20 ... +125摄氏度(-4 ... 257华氏度)
分辨率:0.5度
摄氏度华氏度随意切换
可将测量数据保存为文本文件
采样速率:1, 5, 30 或 60 秒
可连接一到多个传感器(最多可接8个)
电路电源由串口提供,无需外接电源
电路简单,没有特殊或可编程器件
无需校准
二、电路原理图及元件列表
//电路原理图.gif
元件列表
二极管
1N4148 x 2
5.1V 1/2W x 3
电阻
4.7K x 2
1K x 1
电容
22u/16V x 1
集成电路
DS1621 x 1
接插件 若干
三、电路工作原理
这个电路的核心是DALLAS公司的温度传感器芯片DS1621。该芯片采用8脚贴片封装,只要提供+5V的电源,它就可以测量温度并通过两线以串行方式传送温度数据。大多数的串行的芯片都可以并行连接,DS1621也不例外,它有三条地址线输入口,因此可组成8个地址,也就是说最多可将8个DS1621并联起来使用。在本电路中,只并联了两个DS1621,用来测量室内温度的DS1621地址被设置为0,用来测量室外温度的DS1621地址被设置为1。如果你只使用一个DS1621的话,可把地址设置为0。
//芯片引脚图.gif
引脚功能:
1-SDA 两线串行数据输入输出引脚
2-SCL 两线串行数据时钟引脚
3-Tout 温度报警输出
4-地
5-A2 地址输入
6-A1 地址输入
7-A0 地址输入
8-电源
DS1621地址对应表
-----------------
A2 A1 A0 地址
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 0 7
1 1 1 8
注:0 表示接地,1 表示接+5V
关于DS1621:
特性
-无需外围元件即可进行温度测量
-测量范围-55℃~+125℃,分辨率0.5℃
-输出的温度值为一个9bit的数值
-宽电压范围(2.7V~5.5V)
-温度转换速率1秒1次
-可由用户来设置温度临界值,该设置保存在非易失性存储器中
-温度数据通过一个两线串行接口进行读写操作 DS1621无需外部的AD转换,测量到的温度值直接输出为一个9bit的数值,另外它具有一个温度报警输出,用户可设定一组临界的温度值(包括一个上限温度值和一个下限温度值),当测量到的温度超过这个上限温度值时,第3脚(Tout)输出高电平,当测量到的温度低于这个下限温度时,第3脚复位,这可以方便的用于一些温度控制系统。
DS1621传输数据是以两线串行方式进行的,因为它符合I2C的标准,所以可以把它当做I2C方式来使用。I2C总线接口与计算机的串口之间存在的一个最大的问题是电平匹配问题。I2C的电平范围为0~5V,但是RS232的电平范围为-12V~+12V。通常情况下,需要采用一个电平转换芯片,比如MAX232,不过为了简化电路,另一方面也是为了节省成本,采用了另外一个办法:一般来说,尽管计算机的RS232电平为-12V~+12V,但是实际上它们都可以很好的适应0~5V电平,因此不必提升I2C的输出来适应RS232电平,SDA数据线可直接连接到计算机串口的CTS线上。相反,RS232电平输出超出了I2C的电平范围,因此需要使用稳压电路将其电平限制在+5V以内,以防损坏I2C芯片,这样的电路实现起来很简单,如图所示,在SCL时钟输入和SDA数据输入线上,R1,
DZ2, R2, DZ1组成了限制电平的电路(需要注意的是,SDA是双向的,它从DTR接收数据,从CTS发送数据)。
因为电路的耗电量很小,所以没有采用外置电源供电。电路的电源供应是从串口获得的。因为RS232的线上可提供+12V的电压,这个电压经过简单的稳压电路就可转变为+5V为电路供电,为了获得足够的电流,同时从RTS和DTR引进+12V,两个1N4148起到了隔离的作用。如果打算采用三端稳压的话,一定要采用低压差的型号,因为有的串口电平很低。
四、软件使用
//软件界面.gif
这个软件是用Visual Basic 5写成的。在初次运行该程序时,会出现一个提示:设置文件不存在(它会自动建立一个),将使用默认值。当程序启动后,它会自动最小化到任务栏,在任务栏你将看到一个带有温度计的图标的任务。点击这个任务进入设置窗口。
首先要进行串口选择,在这一项中列出了四个COM口,选择你的电路连接的那个COM口,电路才能正常工作,如果你选错了端口,那么将得到错误的测量结果或者不能读取信息。然后要选择传感器数量(一个或两个),你可以根据你做的电路中有几个DS1621进行选择,需要注意的是应该把DS1621地址为0的那个传感器放在室内,地址为1的那个放在室外,否则测量的结果将是反的。关于温度计量单位的选择,这个可以使用默认值即我们所习惯的摄氏度,当然如果你有特殊要求也可设置为华氏度。采样时间间隔表示传感器间隔多长时间重新测量温度,这可根据实际情况进行选择。如果温度数值对你有用的话,你可以选择把测量结果记录为一个文本文件供日后参考,这个文件记录了每次采样的时间和当时的温度值,根据这些数值,你可以绘制出一段时间内的温度变化曲线。
软件及VB原代码请到这里下载:http://ediy.yeah.net。
|