作业帮 > 综合 > 作业

想用arduino接NTC负线性电阻测量温度(-40~40℃),怎么实现?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 00:31:35
想用arduino接NTC负线性电阻测量温度(-40~40℃),怎么实现?
现在用的是DS18B20和LM35,为了降成本打算换成NTC电阻
(所用NTC 10kΩ B值3950 一个脚接aruino uno 5v接口 一个脚接pin2口 )
读出来的数一直是4.99,如果显示pin2口电压值的话就一直是1023,这是怎么回事?
是不是NTC电阻选错了,还是接错引脚了?
以下是我的代码:
void setup()
{
Serial.begin(9600);
pinMode(2,INPUT);
}
void loop()
{
long k=0;
double x;
k=analogRead(2); //读取pin2电压
x=(5*k)/1024; //5V片内基准电压
Serial.println(k);
delay(800);
}
想用arduino接NTC负线性电阻测量温度(-40~40℃),怎么实现?
是引脚接错了.
模拟量引脚不是pin2,(那是数字引脚2号脚)
用模拟引脚时,不用指定pinMode,用k=analogRead(A0)
1.你可以参考一下Arduino IDE中附带的例程:AnalogReadSerial
2.需要做的是要标定一下-40到40度,NTC返回的值,变成你要显示的范围,这个可以用到map函数
再问: 感谢回答
模拟量输入是A0~A5(板子上印着ANALOG IN)。我错在pinMode(2,INPUT)上了,把这行去掉就可以了。
同时我还加了个上拉电阻(阻值为NTC阻值的中间值),这样与NTC形成分压,NTC一段接分压电阻,一段接地,效果就出来了。
再答: 结果出来了就好。
话说用DS18B20也是不错的,还有库,只不过它是一线数字模块,NTC是模拟了。
再问: 嗯,DS18B20已经做出来了,因为成本的问题,再加上就是起个温度保险的作用不需要那么高的精度,所以选择NTC电阻了。