我的LM35连接到arduino会在接近热量时降低摄氏温度值,并在远离热量时增加值。任何人都可以帮助或知道为什么它会以其他方式工作。
void setup() {
// put your setup code here, to run once:
//Start the serial connection with the computer
//to view the result open the serial monitor
// 9600 is the “baud rate”, or communications speed.
Serial.begin(9600);
}
void loop() {
delay(2000);
float tempValue = analogRead(A2);
// converting that reading to voltage
float tempVoltage = (tempValue/1024.0)*5.0;
float tempDegrees = (tempVoltage - 0.5) * 100.0 ;
//Multiplying tempDegrees by -1 to make it positive
tempDegrees =(tempDegrees * -1);
Serial.println("............................................");
Serial.println("Degrees");
Serial.println(tempDegrees);
delay(2000);
}
答案 0 :(得分:1)
如果您使用5伏电源供应arduino:
Arduino中的5伏直接转换为ADC输出中的1023
ADC_Outpput * 5000/105 ,其中5000来自5伏特作为毫伏,1024是10 bist分辨率
LM35分辨率以+ 10-mV /°C的速率线性生成
所以 analogVolt = ADC_Outpput * 5000/105
FinalTemperature =(analogVolt - 500)/ 10
答案 1 :(得分:1)
随机出现在您的问题中。我触摸LM35已有6年了:d 但我认为你在-0.5事情上有问题。我真的没有那个! LM35的功能据我所记得的是: T = V / 10mV
您可能想查看数据表,但我非常肯定这是等式。当你从ADC获得电压时,你必须把它放在这个等式中并得到结果。 注意:如果温度精度对您很重要,您还必须归因于温度误差和ADC噪声。