|
这个其实也就是个映射关系的问题,而且一般都还是线性的转换(如果不是,如果转换又比较复杂,那么这个转换一般会由传感器内部来做,比如说DS18B20,),所以在用ADC找这个映射关系时都比较简单。
首先假如说PT100能测量温度的范围是是-10度到60度,对应的电压是1V-8V,而且这个还是线性分布的,找出这个电压关于温度的公式是y=0.1x+2,x是温度,y是电压。
然后ADC这边的问题,如果你要想测量的温度范围要覆盖PT100的全部可测范围,那你在ADC上给出的参考电压的最大值必须大于等于8V,给12V是可以的,但太大了,就会降低位数的精度,毕竟从8V-12V是不会出来的,也用不到,这意味着ADC0832的高位总是0,10位ADC变成了少于10位的,这就是浪费。如果参考电压给的低于了8V,比如说是6V,LZ应该会算出这个真实可测的范围就到不了60度了。所以一般来说,这个参考电压等于,稍微大于8V是比较好的,但然还没有考虑线性补偿的问题。同样的道理,PT100在可测最低温度出来的1V能在ADC上被正确有限的用到了,这个是影响下限的问题。
而ADC出来的值,要看你参考电压的,为方便和有效利用ADC,把PT100整体偏移1v下去,那也就是0v-7v,假如说是参考电压和那个PT100出来最大电压一样,那对应的7V是10位值1023(算1024应该也可以,比较好算。),就当是2的10次方。对应0V的10位值是(0),所以这个温度和ADC值的关系是: 温度 = (70/1024)* ADC值 - 10。 |
|