Sensor de temperatura para Arduíno LM35 com medições erradas


#1

Olá pessoal.

Recentemente adquiri um Kit Iniciante V6 pela Robocore. Este kit vem com um sensor de temperatura LM35.
Li, em alguns blogs e etc, que o valor máximo deste tipo de sensor pode chegar em 1024. Acontece que o meu monitor serial registra sempre 1023 no console.

Teoricamente, em algumas fórmulas que li, a temperatura em Celsius deveria ser, então, cerca de 200 graus.
Primeiro, é possível que eu esteja errando em algo nos cálculos, certo?
Segundo, é possível que o sensor esteja com problemas ou que tenha algo influenciando o mesmo? Ele foi montado em cima de uma bancada relativamente arejada.


#2

Nunca usei o LM35, apesar de ter alguns aqui, mas será que o sensor não está danificado?
Como está seu circuito e seu código?
Mande aqui para facilitar a galera a ajudar.
[]s e boa sorte!


#3

O seu kit é o v6, pelo que vi, o que eles estão vendendo agora é o v7 que tem o LM35 que é igual ao da imagem abaixo:

O comportamento que você descreve em seu sensor de temperatura não é o comportamento do LM35 e sim de um termistor 1KΩ, como este da imagem abaixo e que era vendido nos kits anteriores da Robocore como um sensor de temperatura, um erro bem banal:
http://www.soldafria.com.br/images/termistor_NTC_3mm.jpg

O termistor é um resistor térmico, ele varia a resistência conforme a temperatura, como o seu deve ser de 1KΩ, a resistência varia de 0Ω a 1023Ω, ou seja, 1024 valores, programadores contam o sistema decimal a partir do 0 e não a partir 1, como aprendemos na escola.

Para que você faça a coerção de valores, você pode utilizar a função map do Arduino e coargir os valores retornados a ficarem no intervalo que desejar.

No entanto, você pode aproximar a relação entre temperatura e resistência com várias equações, como a equação de Steinhart-Hart, mas não precisa de tanto, pois já existem bibliotecas de Arduino que fazem isso para você, mesmo assim, ao usar um Termistor, a margem de erro é muito grande, sem dizer que eles não foram projetados para medir temperatura, para isso, é melhor usar um LM35 da Texas mesmo, ele vai retornar a temperatura em Celsius entre -50º e 150º correta com uma margem de erro de 0.5º.


#4

Agradeço a incrível informação @sksdutra !

Iniciante de primeiríssima viagem, estava fazendo um experimento de medição que a própria Robocore cria. Junto com o kit vem um PDF com alguns sketchs. O componente é esse termistor mesmo, e salvo engano é de 1KΩ também.

Como não estou em casa e só vou chegar à noite, posso olhar essas bibliotecas e o manual para entender se tem mais alguma informação que eu deixei passar algo.
De qualquer forma, assim que chegar tento implementar a função map e mapear os valores com a função.

O código já havia sido revisado. É bem simples e tem somente um read da porta analógica e um write no console, por isso não postei. Desculpe @mlemos :sorry:

Amigos, vou verificar com toda atenção possível! Obrigado pelas dicas. []s


#5

Olá amigos, novamente!

Estou retirando meu Arduíno da gaveta e resolvi começar logo com esse problema que tive. Peguei um código em um site e adaptei ao meu arduíno, fazendo a leitura Analógica conforme o projeto especifica. O circuito está montado em cima de um resistor de 10 KΩ, um sensor NTC e o código. Não existe nada mais.

Além disso, utilizando essa conversão do código (que pelo que li, acredito que seja a de Steinhart) o monitor de serial me retorna uma temperatura negativa, e sempre o valor serial máximo. Há também uma imagem do circuito sugerido pela robocore.

Código Arduino: https://www.dropbox.com/s/t48cmmz344gubqb/ReadingNTC.txt?dl=0
Circuito Robocore https://www.dropbox.com/s/me1vsd7vvs9w8ox/Arduino%20Circuit.png?dl=0
Monitor Serial https://www.dropbox.com/s/8yv7dc9fo9popza/Monitor%20Serial.png?dl=0