Font Size

Olá, tudo bem? No post de hoje iremos utilizar o sensor LM35 com Arduino para o calculo da temperatura. Escolhemos o sensor LM35, pois hoje, ele é um dos sensores de temperatura mais utilizados atualmente.

Muito por conta da sua praticidade e tamanho, uma vez que em várias aplicações, é necessário realizar a leitura de variáveis físicas, ou seja, medir uma temperatura, distância, pressão etc.

Dessa forma, no tutorial de hoje você vai aprender a como realizar a leitura da temperatura utilizando o sensor LM35 com Arduino, vamos nessa? Então já aproveite e adquira o seu sensor na Loja AutoCore Robótica e venha aprender como ler a sua temperatura!

Conhecendo o Sensor de Temperatura LM35

Sabia que o sensor LM35 é um sensor de precisão? Ou seja, ele vai apresentar uma saída de tensão linearmente proporcional à temperatura em que ele se encontrar naquele momento. Tendo como base, a seguinte relação:

A cada 10mV emitido pelo LM35 é equivalente a um Grau Celsius de temperatura.

Mas além disso, saiba que esse sensor não necessita de qualquer calibração externa (por ser um sensor de precisão) para fornecer com exatidão valores de temperatura com uma variação de ¼ºC até mesmo ¾ºC dentro da faixa de temperatura entre –55ºC e 150ºC.

Onde posso utilizar o sensor LM35 com Arduino? 

Então, sabendo agora que este sensor possui uma precisão elevada em seus valores. Fica mais fácil entender onde ele atua, e um dos lugares que ele mais atua é nos sistemas autônomos.

Caso você não conheça esses sistemas autônomos, pense neles como um sistema que faz uma determinada tarefa por conta própria. Assim, este sensor pode ser empregado nos ar condicionados e geladeiras, por exemplo, já que esses equipamentos de maneira autônoma, mantém a temperatura em um valor estabelecido pelo usuário. Show?

Formas de utilização do Sensor LM35

O sensor LM35 tem duas formas de atuação, com alimentação simples ou simétrica, isso vai depender de como será o sinal de saída, mas independentemente disso, a saída continuará seguindo a relação que vimos de 10mV/ºC.

Mas fique ligado, pois para cada tipo de alimentação, a faixa de temperatura, ou seja, o máximo e mínimo medido com precisão será diferente. Observe as imagens abaixo:

sensor-lm35-com-arduino
Configuração Básica LM35

Configuração Básica LM35 – (+2ºC a 150ºC)
Fonte: Datasheet LM35

sensor-lm35-com-arduino
Configuração Completa LM35

Configuração Completa LM35 – (-55ºC a 150ºC)
Fonte: Datasheet LM35

Contudo, independente das ligações acima, este sensor vai drenar apenas 60μA do circuito. Dessa forma, seu auto-aquecimento é de aproximadamente 0.1ºC ao ar livre e possui um consumo muito baixo ou que ajuda sua aplicação em diversas aplicações.

Datasheet do Sensor LM35
Datasheet LM35

Utilizando sensor LM35 com Arduino

A utilização do sensor LM35 pode variar bastante, sendo ele apresentado com vários tipos de encapsulamentos. O mais comum é o modelo TO-92, que mais se parece com um transistor, e oferece ótima relação custo x benefício, por ser o encapsulamento mais barato e sem diferenças em seu funcionamento. Observe a imagem abaixo:

sensor-lm35-com-arduino

Fonte: Arduino e Cia

Medindo temperatura com Sensor LM35 e Arduino

Agora que já compreendemos o funcionamento deste sensor, está na hora de testá-lo utilizando para isso um Arduino. Então vamos nessa!

Componentes necessários:

Sensor LM35 com Arduino – Montando o projeto

Agora vamos conectar os componentes do projeto. Para isso, desligue o cabo USB de seu Arduino e monte seu circuito conforme a figura a seguir.

sensor-lm35-com-arduino

Código comentado do projeto

Com a IDE do Arduino aberta, escreva nele o código comentado logo abaixo. Após escrever o código, salve e depois clique em Carregar (Upload) para que o programa seja transferido para seu Arduino.

/*
    Projeto: Sensor de Temperatura com LM35
    Autor: Danilo Nogueira - AutoCore Robótica
    Data: 17/08/2018
*/
 
const int LM35 = A0;      // Define o pino que vai ler a saída do LM35
float     temperatura;    // Variável que armazenará a temperatura medida
 
//Função que será executada uma vez quando ligar ou resetar o Arduino
void setup() {
Serial.begin(9600); // inicializa a comunicação serial
}
 
//Função que será executada continuamente
void loop()
{
    temperatura = (float(analogRead(LM35))*5/(1023))/0.01;
    /*
        Aqui está a fórmula como explicada no post
        e observe que utilizamos a variavél 'float'
        para converter o número para duas casa decimais ok?
    */
    
    Serial.println("--- AutoCore Robótica ---");
    Serial.print("Temperatura: ");
    Serial.println(temperatura);
    delay(2000);
}

Entendendo a fundo 🔬

Lendo o valor de temperatura

Bom, basicamente o programa foi configurado para ler qual é o valor do sinal no pino A0, que varia de 0 a 1023, está chegando no Arduino, onde:

  • 0 = 0 Volts;
  • 1023 = 5 Volts.

Além disso, sabemos também que 1ºC é igual a 10mV. Sendo assim, temos:

  • Tensão em A0 = (Valor lido em A0)*(5/1023)
  • Temperatura = Tensão em A0/10mV

Logo:
Temperatura = [(Valor lido em A0)*(5/1023)]/10mV. Em linguagem de programação, ficará:

temperatura = (float(analogRead(LM35))*5/(1023))/0.01;

Mas por que utilizar essa fórmula? 

Vamos lá, muita calma. A partir do momento em que o Arduino realiza a leitura analógica, ele realiza uma conversão do valor lido, onde o resultado pode ser um número entre 0 e 1023, ok? Ou seja, o Arduino divide 5Volts, que é o maior valor que ele é capaz de ler, em 1023 partes iguais e lhe informa quantas partes tem o valor que ele está medindo.

sensor-lm35-com-arduino

Pense assim, temos uma rampa que vai de 0 à 5V e dividimos essa rampa em 1024 degraus. Então, quando estamos no degrau 0, estamos no que equivale a 0V, quando subimos o primeiro degrau vamos para o que equivale a 5V/1023 (5 Volts dividido pelos 1023 degraus restantes), que é aproximadamente igual à 0,00487V, e assim por diante.

Então vamos supor que o sensor esteja medindo 20°C ok? Será que a fórmula está correta? Vamos conferir!
Se o sensor está medindo 20°C e como sabemos, para cada 1°C temos 10mV, então o sensor estará mandando 200mV para a porta A0 correto? Sendo assim o valor lido na porta A0 seria:

(0.2 x 1024) / 5

Aqui é só fazer regra de 3 ok? Pensa assim, se 5V – 1024 então 200mV equivale à x.

Após realizar essa conta você vai obter o valor de: 40.96. Agora aplicando na fórmula do código, vamos obter uma temperatura de: 20.0195. Bem próximo não? Então isso mostra que a fórmula está funcionando!

Resultado do Projeto

Conseguiu entender como o LM35 trabalha? É bem simples a lógica não é verdade? Então nós também testamos o código e o resultado ficou assim:

sensor-lm35-com-arduino

Além disso, deixo também à você um pequeno vídeo do nosso canal mostrando o LM35 em funcionamento e comparando as temperaturas encontradas, o vídeo está logo abaixo:

E ai? gostou do post? Caso tenha ficado algo incompleto para você, comenta logo abaixo📝
Dicas? 😯 Dúvidas? 🤔 Idéias de post?💭 Críticas? 😱 Só mandar mensagem! 😉

Forte abraço!

0.00 avg. rating (0% score) - 0 votes