这是一种非常规的测温方法,常用于低成本产品
http://www.stic-semi.com.cn/gcal5.htm
RC 测温原理: 测温分为 I/O 口充放电型测温及 RFC 型测温(下面讲到主要设及 I/O 口型测 温)I/O 口充放电型测温原理:测量温度主要是利用 I/O 口充放电针对不同电阻充 放电的时间不同,且不同的充放电时间正比于电阻值,从而根据时间比与电阻比 相等得出测温度电阻阻值,而不同电阻阻值对应的不同的温度(程序可根据阻值 查岀相对应的温度)。 RFC 方式测温原理(应用电路图见图一): A.I/O 结构如下:
| | | | 温度传感器电阻值范围: 10K ~ 50K @25℃ 湿度传感器: 60K @25℃, 50%RH 注意: 1. 当 O/RF 设置成 1, PORTB 中断使能位被关掉. 2. 当没有使用R-F 转换时,连接 CX 到电源或者地。 3. 当没有使用R-F 转换时,十六位计数器可用于一般计数器用. 4. R-F 转换的最大频率应小于 2MHz. | | 图5. 湿度较低时(55%)的测试波形图(黄色是CX口波形,蓝色是RX1口波形) | | 图6. 湿度较高时(90%)的测试波形图(黄色是CX口波形,蓝色是RX1口波形) | | | 当设置O/RF位为1时,PORTB口将被用于R-F转换.它象一个RC振荡电路,用这 十六位计数值可得出很稳定的传感器的值。 | RC 充放电方式测温原理(应用电路图见下图): 1. 工作流程:(本程序利用 I/O 口放电时间测量岀温度值) | | 2.参考电路图 | | 注:Rf 为参考电阻,热敏电阻 Rt0(103)测量 TEMP0,R2 为校准电阻,在本电 路中起到的作用为修补误差。
3。计算方法: Tref = k × (Rf + R1 + Rio) × C (1) Trt = k × (Rt + R1 + Rio) × C (2) 由方程式(1)、(2)可得到: Tref / Trt = (Rf + R1 + Rio) / (Rt + R1 + Rio) 由此可以算出 Rt 的值,再经查表即可得到温度值。 4. 调整方法: · Rf : 用于调整 Rt 之电阻误差,以在低温段调节效果较佳 · R1: 用于调整 Rio 之电阻误差,以在高温段调节效果较佳
5. RC 充放电测温之局限性: 由于 Rio 随者 VDD 变动电阻值也相应变化,因此当 VDD 下降时温度测量 误差将会增大,而且在高温情况下误差较明显 |
| 单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制,但那些温度检测与控制电路通常较复杂,成本也高,本文提供了一种低成本的利用单片机多余I/O口实现的温度检测电路,该电路非常简单,且易于实现,并且适用于几乎所有类型的单片机。其电路如下图所示:
图中: P1.0、P1.1和P1.2是单片机的3个I/O脚; RK为100k的精密电阻; RT为100K-精度为1%的热敏电阻; R1为100Ω的普通电阻; C1为0.1μ的瓷介电容。 其工作原理为: 1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。 2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。 3.将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。 再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T2。 从电容的电压公式:可以得到:T1/RK=T2/RT,即 RT=T2×RK/T1 。通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。
从上面所述可以看出,该测温电路的误差来源于这几个方面:单片机的定时器精度,RK电阻的精度,热敏电阻RT的精度,而与单片机的输出电压值、门嵌电压值、电容精度无关。因此,适当选取热敏电阻和精密电阻的精度,单片机的工作频率够高,就可以得到较好的测温精度。
当单片机选用4M工作频率,RK、RT均为1%精度的电阻时,温度误差可以做到小于1℃。 如果P1.2具有外部上升沿中断的功能,程序可以更简单,效果更好。单片机工作的程序流程图如下:
| |
|