如果丈量的温度不超过150℃,常日我们利用NTC就可以了,单片机通过AD转换就可以得到温度,大略实用。烧水壶、咖啡壶、豆浆机等小家电上基本上都是用NTC来测温。但丈量的温度比较高的话,NTC就不适用了。这时候我们可以用热电偶来测温,一样平常可以丈量-200℃~1300℃,分外情形下可丈量-270℃~2800℃。
热电偶(thermocouple)是温度丈量中常用的测温元件,它直接丈量温度,并把温度旗子暗记转换成热电动势旗子暗记。各种热电偶的形状常因须要而极不相同,但是它们的基本构造却大致相同,常日由热电极、绝缘套保护管和接线盒等紧张部分组成。

热电偶构造图
热电偶测温的方案跟NTC是完备不同的,热电偶测温的事情事理大家可以自行网上找资料参考,这里紧张是谈设计方案。
热电偶实际上是一种能量转换器,它将热能转换为电能,用所产生的热电势丈量温度,我们只要测出两端的电动势差,再加上温度补偿就可以得到真实的温度了。
下面我们用K型热电偶进行方案设计本方案可以让你快速设计出稳定可靠的产品,缺陷便是本钱会比较高一些,还有便是测温范围不会太广,如果本方案知足不了你的哀求,请关注我,很快就会推出下一个热电偶测温方案哦。
方案一:利用专用K型热电偶测温IC测温
Maxim(美信)有一款K型热电偶测温的专用IC MAX6675,它是自带温度补偿的
IC模块
利用环境温度为:-20°C to +85°C
测温范围是:0°C ~1024°C,分辨率可以去到0.25°C
事理图如下:连接事理图
通过SPI接口就可以直接读取到温度了,有一点须要把稳的是,读取温度的频率不要太高了,至少间隔0.5秒读一次温度数据。
读取温度的示例程序如下:typedef struct{ u16 TemperatureIn; //Temperature of Thermocouple u8 ThermocoupleStatus; //=1 Thermocouple open}TempStruct;TempStruct Temperature;void Max6675Int(void){ MAX6675_CS=1; MAX6675_SCK=0; Temperature.ThermocoupleStatus=0; Temperature.TemperatureIn=0;}void GetTemperature(void){ u16 TempData; u8 i,Temp; TempData=0x0000; MAX6675_CS=1; MAX6675_SCK=0; _nop_(); MAX6675_CS=0; _nop_(); if(MAX6675_SO==1)TempData+=1; MAX6675_SCK=1; for(i=0;i<15;i++) { TempData<<=1; MAX6675_SCK=0; _nop_(); if(MAX6675_SO==1)TempData+=1; _nop_(); MAX6675_SCK=1; } MAX6675_SCK=0; MAX6675_CS=1; Temp=(u8)TempData; Temp &=0x04; if(Temp!=0) // Thermocouple open { Temperature.ThermocoupleStatus=1; Temperature.TemperatureIn=0; } else { Temperature.ThermocoupleStatus=0; TempData>>=3; TempData&=0x0fff; Temperature.TemperatureIn=TempData/4; Temp=(u8)(TempData%4); if(Temp>1)Temperature.TemperatureIn+=1; _nop_(); }}下一个热电偶测温方案很快会推出,记得关注哦。大家假如喜好我的文章,请关注一下我的账号,给我更多的动力,我会把更多履历分享出来。也欢迎大家给我评论留言。










