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

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.

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!

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:

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º.

1 curtida

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

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