Boa tarde

Estou montando um projeto para meu TCC e estou tendo problema com o LM35,

Não estou conseguindo fazer uma leitura precisa, no projeto vou usar o Garagino nele a leitura varia absurdamente. estou com um termômetro de max e min laboratorial em casa nele estava marcando 22,8 ºC na hora da leitura enquanto a leitura do garagino estava aproximadamente 50ºC conforme print abaixo. Testei com outros lm35 que possuo a leitura é a mesma.

Testei os sensores num UNO e variou menos, mas ainda sim estava longe da temperatura real marcando aproximadamente 27ºC ao invés dos 22º de referencia, conforme print abaixo:

Testei varias versões de código o ultimo que testei foi esse :

//LM35

int outputpin= 0;
//this sets the ground pin to LOW and the input voltage pin to high
void setup()
{
Serial.begin(9600);
}

//main loop
void loop()
{
int rawvoltage= analogRead(outputpin);
float millivolts= (rawvoltage/1024.0) * 5000;
float celsius= millivolts/10;
Serial.print(celsius);
Serial.println(" degrees Celsius, ");

delay(1000);

}

segui esse tutorial

http://www.learningaboutelectronics.com/Articles/LM35-temperature-s...

o mais estranho que eu já havia testado o LM35 antes e ele variava um pouco mas não errava tanto, conforme descrito neste site http://ricardo-sequeira.com/arduino-lm35/. Porem agora que fui retestar o sistema ficou desse jeito.

Exibições: 2060

Responder esta

Respostas a este tópico

estou chegando perto da solução, coloquei no lm35  um capacitor eletrolítico de 10uF 25v, consegui garantir uma leitura mais estável. As leituras no UNO ficou bem próximo do esperado, mas ainda assim estava uns 5º C acima da média. No Garagino ainda está lendo aproximadamente uns 12º C acima do esperado.

o código que estou utilizando é esse dessa vez:

int pinoSensor = 0;
int valorLido = 0;
float temperatura = 0;

void setup() {
Serial.begin(9600);
}

void loop() {
valorLido = analogRead(pinoSensor);
double temperatura = ((valorLido * 0.00488)*100);

Serial.print("Temperatura actual: ");
Serial.println(temperatura);
delay(1000);
}

Olá Tiago.

Você já leu outros tópicos à respeito do LM35 aqui no fórum?

Pergunto pois já exploraram uma série de soluções para problemas praticamente iguais ao seu.

Caso já tenha visto eles,me avise para que possa começar a solucionar o seu problema.

T++. ^^

 

boa tarde Daniel,

 Andei lendo sim, até testei varias possibilidades e inúmeros códigos disponíveis na internet, alguns melhoram a precisão, mas não tenho certeza mas acho que encontrei o motivo, no meu projeto tem 2 potenciômetros, 1 push button e um RTC. Aparentemente eles estão interferindo na leitura, mesmo eu testando apenas o LM35 sem declarar os potenciômetros.

Retirei todos os itens e o sensor está lendo com +-0,5 de precisão, o que seria o esperado. Mas quando eu ligo novamente o potenciômetro o LM35 fica totalmente descalibrado, mesmo se retirar o potenciômetro do circuito, só depois de um tempo ele volta ao normal, é interessante que ele vai subindo a leitura exponencialmente.

Neste post comentaram sobre isso.

http://labdegaragem.com/forum/topics/lm35-e-potenci-metro-n-o-d 

Deram a seguinte solução, acredito que é para que a leitura seja intercalada, mas não entendi como colocar isso:

alanogRead(sensor);

delayMicroseconds(200);

alanogRead(sensor);

Thiago, 

1) o sensor está próximo ao arduino, ou está usando um cabo longo?

2) o Ambiente que está tentando medir é atmosfera  ou ele está em contato com peças metálicas?

3) como vc está fazendo a alimentação dele? 

Ricardo o ambiente que estou tentando medir é atmosfera. Estou desenvolvendo um alimentador para aquário que varia a dose de ração em função da temperatura ambiente, futuramente substituirei o mesmo por um submerso.

Mas a variação da leitura pode ser em função da resistência do circuito da protoboard, mas é pouca coisa. Contudo descobri uma solução, não sei se é a ideal, mas resolveu o problema da interferência do potenciômetro. Coloquei um capacitor eletrolítico de 10uf 16V no potenciômetro, desta forma parece que filtrou a interferência.

Vou seguir este post, pois fiz um com o Arduino Uno e display 5110, não gostei do resultado também variava muito, inseri capacitor, fiz um montão de manobras mais não adiantou. Estou com um projetinho com PIC12F675, junto com 74HC164 para os display, está show de bola. 

Abçs

Chega ai, quem sabe a gente acha a solução.

Dêem uma olhada aqui ó:

http://labdegaragem.com/forum/topics/term-metro-com-display-7-segme...

postei esta semana, este é com Arduino só que estou com problemas de apagão quando simulo através do pc, mais a temperatura está coerente ao menos.

José Antonio

José

Na sua seção vc cita que está tendo uma diferença de 1ºC, eu estava tendo este problema também, mas aparentemente agora normalizou, não entendo o motivo.

Tiago, 

seguinte: 

Como te falei montei um com PIC e apresenta o mesmo 1 grau de diferença, então cheguei a conclusão que o meu termometro (China) pode estar errado ou apresentando esta diferença, Todos os 3 LM35 que possuo fizeram a mesma leitura. Mais vamos chegar lá e ver o porque desta diferença. Vc já percebeu que tem na net um post a respeito de precisão. Onde o valor a ser usado para a comparação é: 

0.004882812 ? Eu já inseri este número e procurei variar para ver o que acontecia. 

Abçs

Complementando minha resposta, testei novamente se o potenciomentro está ok, mas ficou a seguinte leitura

eu girei o potenciômetro, aparentemente o Capacitor estabiliza a leitura do mesmo inviabilizando sua leitura, contudo ao mesmo tempo afeta a leitura do LM35 conforme visto no print. 

Ricardo abaixo a foto do circuito que estou testando:

Tiago,

Os valores estão ruins mesmo.

Como vc colocou o capacitor? Quais pinos? 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço