Sensor de temperatura

Pessoal, boa noite! Qual a melhor opção para sensor de temperatura para uso em ambiente externo. Tenho um LM35, mas pelos testes que eu fiz as vezes ele muda a leitura do nada, para cima ou para baixo, muita diferença e demora para estabilizar...
Vi o DS18B20, Thermistor, etc. qual a melhor opção?!

Abs...

O que pretendes medir? Com que exactidão?

Já verificaste os tempos de estabilizacão e sensibilidade de outros sensores? Dizeres que queres medir temperatura não é suficiente para te aconselhar um sensor.

Eu também percebi que as leituras feitas pelo LM35 variam muito, como você está alimentando o projeto?
Pois pode ser que a "tensão" da alimentação varie um pouco então a tensão lida do LM35 esteja variando muito.
Eu estou tentando montar uma rotina para tirar as leituras fora da curva (as vezes a amostragem varia até +-10º);

mmoscz:
Eu também percebi que as leituras feitas pelo LM35 variam muito, como você está alimentando o projeto?
Pois pode ser que a "tensão" da alimentação varie um pouco então a tensão lida do LM35 esteja variando muito.
Eu estou tentando montar uma rotina para tirar as leituras fora da curva (as vezes a amostragem varia até +-10º);

Vês isso com a alimentacão por USB ou com uma fonte normal?

Sim, pela alimentação através da USB. Estando conectado na USB do computador ou alimentado pela USB com um adaptador AC.

.

Pessoal, boa noite. A idéia é medir temperatura dentro e fora de casa.
A alimentação também é feita pela USB, e as leituras chegam a dar uma diferença como a citada pelo mmoscz.

Eu tenho um LM35 e ele funciona sem problemas, varia pouco e as variações são sempre de menos de 1 graus..

Mas pelo que vc ta falando, um filtro passa-baixa pode ajudar...


Pode tentar com:
R = 150K
C = 1uF

O meu LM35 tambem funciona na perfeição provavelmente o seu esta a variar porque esta a usar uma fonte externa que não é muito fiavel, eu montei o meu assim:

e funciona muito bem

Qual o código do Arduino que voce tá usando pra adquirir os dados?

Segue trecho de código que estou usando...

  for(i = 0;i<=7;i++){ // gets 8 samples of temperature
    samples[i] = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
    tempc = tempc + samples[i];
    delay(100);
  }

Faz assim:

int temp = 0;
for (i = 0; i <= 7; i++)
{
     temp = temp + analogRead(pin);
}
temp = (500/1024)*temp / 8;

Pra que tu usa esse delay?

mctimbu, boa tarde! Esse exemplo peguei na internet, vou testar o seu exemplo e ver se dá diferenças! Obrigado!