A. 生活中常用的测温枪,其工作原理是什么给出的数据准确吗
相信有孩子的家庭基本上都会有温枪,就是能够测温度的仪器,孩子避免不了偶尔会发烧,这种温枪就可以很好的测量温度,因为如果用水银的话,需要夹在腋下5到10分钟,而且那种东西一旦破裂就会非常危险,有可能会水银中毒,所以我基本上都是用这种温枪给孩子测体温,可能有时候会有一些偏差,但是大致不会差太多,关键是方便,那么大家知道这种耳温枪是什么原理吗?
还有一点需要特别注意,就是我们用温枪测量温度之前,千万不要做剧烈运动,因为剧烈运动之后再去测温度肯定是不准的,如果运动完之后最少休息半个小时之后再去量,只要方法用对,基本上数据不会偏差太大,而且效率特别高,一般情况下扫描几秒钟就会出结果,家里如果有小孩的话一定要备一个这种温枪,因为这种东西真的很方便。
B. 谁知道电子体温计电路原理,谢谢!
电子体温计构造
感温头、量温棒、显示屏、开关按键以及电池盖。
电子体温件构造
[1] 电子体温计测温原理
电子体温计是利用温度传感器输出电信号,再将电流信号转换成液晶数字显示温度,同样能保持被测温度的最高值。
电子体温计最核心的元件就是感知温度的NTC温度传感器。传感器的分辨率可达±0.01℃,精确度可达±0.02℃,反应速度<2.8秒,电阻年漂移率≤0.1%(相当于小于0.025℃)。
软质棒式电子体温计
[2]测温范围
32°C到43°C或89.6°F到109.4°F。
电子体温计类型:
1) 硬质棒式:家庭普遍适用,采用腋窝测量和口腔测量方式的一种温度计。
2)软质棒式:软头电子体温计前端可任意弯曲,多方位,无死角,适合各部位的测量 ,一般可采用口腔、腋下、肛门三种量法。
3)奶嘴式:婴儿奶嘴式电子体温计是针对婴幼儿的生理特点而精心设计制造的。部件设计全部采用圆滑弧线,曲率依据宝宝口型,硅胶奶嘴内含温度传感器。
奶嘴式电子体温计
[3]电子体温计温度测量部位
1.将开机后的体温计探头置于腔舌根下,可测得口腔温度。
2.将开机后的电子体温计探头置于腋窝中心处,可测得腋窝中心温度。
3.在不能测试口腔和腋窝的情况下,将开机后的电子体温计探头插入直肠,进入深度不可超过电子体温计总长的1/2。
优缺点
优点为准确度高,误差一般不超过+-0.1℃,读数和携带均方便。缺点是测量稳定性相对于玻璃体温计稍差。
电子体温计操作指南
按一下ON/OFF键打开体温计。开机后数字显示检测,并会鸣叫一声。LCD如果显示188.8表示功能正常,大约过2~3秒后显示上次记录的温度,表示上次关机时所读取的温度值,约过2~3秒后显示(L0)和闪动的“°C(°F°)”表示此时开始可以测量温度。将探头至于待测温度处,紧压被测处皮肤,探头不可以外露空气中。约60秒后“°C(°F°)”停止闪动,体温计会发出“嘀—嘀—”的提醒声音十次,此次读数窗口显示的为此次检测到的身体温度,不关机则十分钟后自动关机。
电子体温计正确的测量方式
测量体温时会因为受到测温时间、外界空气、及不同身体部位的影响,而使温度有所偏差。为了得到准确的测温数据,请始终保持一定的测温部位。腋下时,电子体温计应紧贴感温部位;舌下时,电子体温计应紧插于舌根部位。
C. 电子测温仪 工作原理
红外测温仪的工作原理:自然界中除了人眼看得见的光(通常称为可见光),还有紫外版线、 红外线等非可见光权。自然界中温度高于绝对零度(-273℃)的任何物体,随时都向外辐射出电磁波(红外线),因此红外线是自然界中存在最广泛的电磁波,并且热红外线不会被大气烟云所吸收。随着科技的日新月异,利用红外线这一特性,采用应用电子技术和计算机软件与红外线技术的结合,用来检测和测量热辐射。物体表面对外辐射热量的大小,热敏感传感器获取不同热量差,通过电子技术和软件技术的处理,呈现出明暗或色差各不相同的图像,也就是我们通常说的红外线热成像;将辐射源表面热量通过热辐射算法运算转换后,实现了热像与温度之间的换算。
D. 制作电子体温计的电路图和所需器材,元件以及制作过程 邮箱:[email protected]
网络文库里一大堆,你就输入电子体温计去查好了。都很详细的
E. 我想设计电子体温计 我把电路图做出来了 可是程序问题很大 ,求大神求程序
给你个参考,来自单片机学习板光盘;
5 18B20-温度传感.zip
(1.38M)
100%
说我附件非法,只能给个C文件??也非法??!!该传什么才合法??
F. 现在已设计好基于DS18B20体温计的电路图,请高人指导,如何进行程序编写及软件仿真,来达到0.1的精度。
#include<reg51.h>
#include<intrins.h>
#define Uchar unsigned char
sbit DQ=P2^0; //DS18B20数据端
sbit RLED=P2^1;//红色,代表正温度
sbit GLED=P2^2;//绿色,代表负温度
sbit Q1=P2^4; //数码管位选端1
sbit Q2=P2^5; //数码管位选端2
sbit Q3=P2^6; //数码管位选端3
sbit Q4=P2^7; //数码管位选端4
bit minus_flag; //负温度标记
Uchar Temperature,High,Low;
Uchar code Table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF}; //0-9,-
void Delay(Uchar time)
{
while(time--);
}
//***************************************
//函数名称:Ds18b20_Init
//创建日期:2012.2.20
//函数功能:对DS18B20进行初始化
//输入参数:void
//输出参数:void
//返 回 值:void
//**************************************
void Ds18b20_Init(void)
{
Uchar x; //可以不使用x
DQ = 1; //总线初始化状态
Delay(20);//延时一段时间
DQ = 0; //单片机将总线拉低
Delay(250); //延时约500us
DQ = 1; //上升沿
Delay(30); //延时约60us
x = DQ; //x=0则初始化成功,x=1则初始化失败
while(x);
}
//***************************************
//函数名称:Write_Ds18b20
//创建日期:2012.2.20
//函数功能:向DS18B20写入数据
//输入参数:dat
//输出参数:void
//返 回 值:void
//说 明:
//修*改*历*史*
//**************************************
void Write_Ds18b20(Uchar dat)
{
Uchar k;
for(k=0; k<8; k++) //循环8次写一个字节
{
DQ = 1; //总线初始化
_nop_();
DQ = 0;
Delay(5);
DQ = dat&0x01;
Delay(30);
DQ = 1;
dat>>=1; //数据右移一位
}
}
//***************************************
//函数名称:Read_Ds18b20
//创建日期:2012.2.20
//函数功能:从DS18B20读出数据
//输入参数:void
//输出参数:temp
//返 回 值:temp
//说 明:
//修*改*历*史*
//**************************************
Uchar Read_Ds18b20(void)
{
Uchar temp,q;
for(q=0; q<8; q++)
{
DQ = 1; //总线初始化
_nop_();
DQ = 0; //拉低总线
Delay(2);
DQ = 1;//释放总线
Delay(5);
if(DQ)
{
temp|=0x80;//temp高位置1
}
temp>>=1;
Delay(30);
}
return (temp);
}
//***************************************
//函数名称:Temp_Exchange
//创建日期:2012.2.20
//函数功能:温度转换
//输入参数:void
//输出参数:void
//返 回 值:void
//说 明:
//修*改*历*史*
//**************************************
void Temp_Exchange(Uchar H_data,Uchar L_data)
{
if(H_data>>3) //计算负温度
{
minus_flag = 1;
GLED = 0;//绿色LED点亮
Temperature=((~((H_data*256)|L_data))+1)*0.0625*10; //精确到0.1
}
else //计算正温度
{
minus_flag = 0;
RLED = 0;//红色LED点亮
Temperature = ((H_data*256)|L_data)*0.0625*10;//精确到0.1
}
}
//***************************************
//函数名称:LED_Display
//创建日期:2012.2.20
//函数功能:数码管显示
//输入参数:void
//输出参数:void
//返 回 值:void
//说 明:
//修*改*历*史*
//**************************************
void LED_Display(void)
{
P0 = Table[10]; //符号位
if(minus_flag)//显示-
{
Q1 = 0;
Delay(10);
Q1 = 1;
}
else //不显示-
{
Q1 = 1;
Delay(10);
}
P0 = Table[Temperature/100]; //十位
Q2 = 0;
Delay(10);
Q2 = 1;
P0 = Table[Temperature%100/10]-0x80;//个位(带小数点)
Q3 = 0;
Delay(10);
Q3 = 1;
P0 = Table[Temperature%10]; //小数位
Q4 = 0;
Delay(10);
Q4 = 1;
}
//***************************************
//函数名称:main
//创建日期:2012.2.20
//函数功能:程序执行入口
//输入参数:void
//输出参数:void
//返 回 值:void
//说 明:
//修*改*历*史*
//**************************************
void main(void)
{
while(1)
{
Ds18b20_Init(); //对DS18B20进行初始化
Write_Ds18b20(0xCC);//跳过ROM序列号
Write_Ds18b20(0x44);//温度转换
Ds18b20_Init(); //对DS18B20进行初始化
Write_Ds18b20(0xCC); //跳过ROM序列号
Write_Ds18b20(0xBE); //读取暂存数据
Low=Read_Ds18b20(); //读取温度低位
High=Read_Ds18b20(); //读取温度高位
Temp_Exchange(High,Low); //温度转换
LED_Display(); //温度显示
}
}