打印
[资料分享]

基于EWB的测温电路设计

[复制链接]
411|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Flower1|  楼主 | 2019-6-21 17:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于EWB的测温电路设计

摘 要:本文将EWB软件应用于实际项目中,设计了一款测温电路,所设计的测温电路没有采用专用的温度传感器和高精度的A/D转换器,而是利用三极管温度特性和RC积分特性,通过EWB的温度扫描分析和瞬态分析得到三极管温度和RC充电时间的对应关系,将温度的测量变成了时间的测量,从而得到温度数据,因此,本电路具有低成本、高精度、简单可靠的特点,适用于测量速度不高的场合。同时采用单片机完成温度数据的采集、处理、显示等任务,并给出了测量程序代码。


0 简介

EWB(电子工作台)是模拟数字电路仿真软件,具有界面直观、操作方便、分析方法多等优点。非常适合于电子工程师和学生使用。EWB软件有绿色版,不必安装,解压后即可使用,点击wewb32.exe运行软件。在主界面中,以图形方式显示了所用的各种操作功能,包括:元件库、仪器仪表、分析方法等,关于EWB的具体内容,请参考书籍《实用通信与电子线路的计算机仿真》。分析方法的应用往往给试验带来极大的方便,甚至比真实的实验更方便,本文将运用的EWB的瞬态分析和温度扫描分析来设计一款价廉实用的测温电路。


1 电路原理与设计

本文所述的测温电路针对水温的测量(可用于类似的场合),测量范围是0~100℃。通常温度测量的方法是用温度传感器将温度信号经过A/D转换器送到单片机中,从而取得温度数据。如果要求测量显示的精度高(达到10位以上),则成本大大增加。图1是本文的测温电路原理图,电路中没有采用专用的温度传感器,也不用A/D转换的方式,而是采用三极管Q1作为测温元件,利用其pn结的温度电压特性,测得温度的变化。将温度电压信号和R2、C1积分信号送到比较器输入端,在R2、C1开始充电后,直到其电压超过温度电压时,比较器翻转,用单片机测量翻转前的充电时间,即可测量温度的电压值。下面通过对RC积分和温度测量的仿真,详细叙述测量原理。

图2是三极管pn结测温电路,根据三极管手册参数,pn结两端的电压随温度变化。本例测量水温,温度范围是0~100℃。在实际应用中需要知道对应的电压变化范围和起始、终止点的电压值。用EMB进行温度扫描分析,具有直观、快捷的优点。在EMB中画出图2电路,选择主菜单的分析(analysis)选项,选择其中的温度扫描(temperature sweep)功能,在打开的对话框中设置温度的起始和终止范围,其中start temperature(起始温度)设置为0,end temperature(终点温度)设置为100,sweep type选择linear,output node选择要仿真的节点,其它选择默认,然后点击simulate(仿真),得到仿真结果如图3所示,单击cursors(游标),可以精确测量曲线各点坐标的x、y(温度、电压)值,实测结果是,对应x值的0~100℃范围,y值是0.642~0.442V,电压变化范围是200mV,变化规律是线性的。


图1 测温电路原理图。


图2 三极管测温电路。


图3 EWB温度扫描仿真图。

图4 rc充电电路。

图4是R、C积分电路,在通电的初始时刻,电容两端的电压为0V,以后随着对电容的充电,电容两端的电压将增加,其电压的变化规律是:

由式(1)可知,Uc不是线性的,但是如果R、C的数值很大,则Uc接近于线性,这个过程可以用数学方法求出Uc的曲率来判断线性,最终确定R、C的大小,但是过程比较麻烦而且不直观。如果用EWB仿真,则方便、快捷、直观,针对图4电路,选择主菜单的analysis下的transient(瞬态)仿真,在打开的对话框中修改start time(开始时间)为0,endtime(结束时间)为0.02s,将测量的节点添加到nodes foranalysis对话框中,然后点击simulate,得到图5的结果。

打开游标测得x、y的数据是: 当电压变化范围是0.442~0.642V时,对应的时间范围是4ms。

图5 RC充电仿真

由温度仿真图形和R、C仿真图形可知,两者都是线性的,将温度仿真与R、C仿真结合,确定温度与R、C充电时间的关系,当温度变化从0~100℃时,对应的R、C充电时间变化范围是8~12ms,设温度变量为tem,时间变量为t,则有:

t的单位是ms。

为了更精确地显示测量值,采用定点运算方法,增加2位小数,则式(2)修改为:

t的单位是μs,tem为带2位小数的温度值。

如果用单片机测量出时间的变化过程,就可以求出对应的温度值。

图6是完整的测温电路。单片机采用89c2051,4位数码管显示温度数值,显示精度是2位小数。89c2051自带一个比较器,比较器的输入端口是P1.0和P1.1,输出端是P3.6,三极管的温度测量值接到P1.1端口,R、C充电电路与P1.0连接,P1.0既是比较器的输入端,同时还是单片机的输出端口,它具有单片机端口的性质,即:P1.0输出高电平时,相当于内部集电极开路状态。在此,利用该功能实现电容充放电的控制,不测量温度时,P1.0输出低电平,电容两端电压为0V。测量温度时,首先启动T0计数器,然后将P1.0置高电平,R2给C1充电,此时不断地判断P3.6的状态,直到P1.0的电压大于P1.1的电压,比较器输出端P3.6翻转,取出计数数值(如果单片机采用12MHz晶体,每记一个数恰好是1μs),从而得到了时间值,根据式(3)可以得到温度值。 程序代码如下:

measu () //测量温度

{ TH0=0x00;TL0=0x00;

P1.0=1; /⁄端口放开,开始充电.

TR0=1; //T0启动

while(p3.6==0); //等待跳变

TR0=0; //T0停止

t=TH0256+TL0; //取计时数据

tem=30000-2.5t; //计算温度值

P1.0=0; //瞬间放电.为下次准备。

}

图6 测温电路。


2 结论

综上所述,EWB在测温电路中所起的作用,主要体现在单元电路的仿真,包括温度扫描分析和RC瞬态分析。

这些工作如果用真实测试来完成,都是很麻烦的,需要很多苛刻的条件,在业余的条件或一般条件下,几乎是不可能完成的,而运用EWB软件顺利地达到了目的。



使用特权

评论回复

相关帖子

沙发
Flower1|  楼主 | 2019-6-21 17:46 | 只看该作者
基于EWB的测温电路设计

文档.pdf

563.94 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

623

主题

887

帖子

6

粉丝