Medidor de temperatura com Arduino – Tutorial definitivo

Introdução

Neste tutorial, veremos a aplicação do Display LCD (Liquid Crystal Display, em inglês) usado para representar um medidor de temperatura que será dado pelo LM35. Para deixar o projeto mais visual possível, utilizaremos também 2 LED’s para indiciar se a temperatura está acima ou abaixo da temperatura padrão.

Veja só o protótipo final montado:

Medidor de temperatura com Arduino

Projeto medidor de temperatura

Este projeto te possibilita fazer medições em qualquer ambiente que estiver, do seu próprio corpo e de objetos ao seu redor (aproxime um isqueiro no sensor e veja como a temperatura aumenta drasticamente).

Além disso, com este tutorial você irá entender a lógica por trás da programação do LCD e do LM35 e no final desde artigo, iremos te recomendar um mapa mental das principais funções utilizadas com Arduino e os principais artigos aqui do blog sobre programação em C/C++ para te ajudar durante a construção dos seus projetos.

Ademais, caso você se você ainda não sabe como um LCD funciona, ou, gostaria de se aprofundar mais sobre este componente, recomendamos que leia nosso tutorial completo sobre o componente aqui.

Medidor de temperatura com Arduino - Display LCD

Display LCD 16×2 utilizado no projeto

Já se sua dúvida for com o medidor de temperatura, veja este tutorial:

Medidor de temperatura com Arduino - sensor LM35

Medidor de temperatura LM35 utilizado no projeto

Caso tenha dificuldade com potenciômetros, acesse este guia.

Medidor de temperatura com Arduino - Potenciometro

Potenciômetro utilizado no projeto

 

Sobre os componentes utilizados no medidor de temperatura

Você irá precisar de:

Sabemos que existem diversos outros sensores no mercado. Então, porque utilizamos o sensor LM35 neste tutorial? E qual a diferença deste componente para os outros existentes?

O LM35 é um CI de baixo custo e de baixa tensão que requer uma fonte de alimentação de +4 VDC a +20 VDC. Isso é ideal porque podemos alimentar o sensor com a saída de +5 V do Arduino. Sua acurácia para 25°C é ± 0.4 (vide datasheet) enquanto que, à -10 °C o sensor pode variar em ± 0.5 na medição.

Já a pinagem do componente, o LM35 possui apenas 3 pinos, 2 para a fonte de alimentação e um para a saída analógica. O pino de saída fornece uma saída de tensão analógica que é linearmente proporcional à temperatura em graus Celsius.

Segue abaixo ilustração dos pinos:

 

Sensor de temperatura LM35

Esquema dos pinos do sensor LM35

A saída varia de 0 V – 1,75 V, quando alimentado por uma única fonte de alimentação. Uma saída de 0 V corresponde a uma temperatura de 0°C, e a saída aumenta 10 Mv para cada aumento de grau na temperatura.

Em síntese, os benefícios e principais características do medidor de temperatura LM35 são:

  • Operação em torno de 2,7 V a 5,5 V;
  • Trabalha entre temperaturas de −55 ° C a + 150 ° C;
  • Calibrado diretamente em ° C;
  • Auto aquecimento baixo;
  • Fator de escala de 10 Mv / ° C;
  • Linearidade de ± 0,5 ° C;
  • Estável com grandes cargas capacitivas;
  • Menos de 50 Μa de corrente quiescente;
  • Corrente de desligamento 0,5 Μa máx.;
  • Qualificado para aplicações automotivas.

 

Montagem do circuito – medidor de temperatura

O circuito do medidor de temperatura que construímos está mostrado abaixo:

Montagem dos componentes do projeto

Montagem dos componentes do projeto.

Lembre-se de que você pode usar qualquer tensão entre 2,7 V e 5,5 V como fonte de alimentação. Para este exemplo, estamos utilizando uma fonte de 5 V, mas observe que você pode utilizar uma fonte de 3,3 V com a mesma facilidade. Não importa qual fonte você use, a leitura de tensão analógica variará de cerca de 0 V (terra) a cerca de 1,75 V.

Já o esquema elétrico está representado abaixo:

Esquema elétrico do projeto

Esquema elétrico do projeto

Se estiver usando um Arduino de 5 V e conectando o sensor diretamente a um pino analógico, você pode usar estas fórmulas para transformar a leitura analógica de 10 bits em uma temperatura:

Tensão no pino em MiliVolts = (leitura do ADC) * (5000/1024)
Esta fórmula converte o número 0-1023 do ADC em 0-5000Mv (= 5V)

Se estiver usando um Arduino de 3,3 V, você terá que escrever esta fórmula:

Tensão no pino em MiliVolts = (leitura do ADC) * (3300/1024)
Esta fórmula converte o número 0-1023 do ADC em 0-3300Mv (= 3,3V)

Então, para converter milivolts em temperatura, use esta fórmula:

Temperatura °C = [(tensão analógica em Mv) – 500] / 10

 

Como medir a temperatura

Usar o LM35 é fácil, basta conectar o pino esquerdo à alimentação (2,7-5,5 V) e o pino direito ao GND. Então, o pino do meio terá uma tensão analógica que é diretamente proporcional (linear) à temperatura. A tensão analógica é independente da fonte de alimentação.

Para converter a tensão em temperatura, neste tutorial usamos a seguinte fórmula:

temperatura = (tensao) * 100.0

onde, tensao = (valorSensor/1024.0)*5.0

Ou seja, para uma tensão de 0.29 volts teríamos um valor de 29° C.

Para converter a temperatura em °C para Fahrenheit, basta fazer:

Temp em °F = (temperatura*9)/5 + 32;

No entanto, não precisa se preocupar com os cálculos pois eles estão todos prontos no código para você usar em seu projeto.

 

Código utilizado no projeto

Abaixo está o código utilizado no projeto:

 

A programação passo a passo do medidor de temperatura

Defina as portas do LCD a serem usadas

Use esta imagem como parâmetro para fazer as ligações em seu componente:

Esquema de pinos do display LCD

Esquema de pinos do display LCD

 

Variáveis do projeto

Essas são as variáveis universais declaradas antes do setup (). Para a temperatura que está representando o ambiente (no caso utilizamos 24 °C), faça a primeira medição e adeque o valor de acordo com a temperatura do ambiente em que estiver e alterando, posteriormente, a variável tempPadrao.

Já para desenhar o caractere de grau “°”, declare uma variável byte e defina-a como um array “a” de 8 elementos.

Além disso, não se esqueça de determinar a porta que o seu LM35 estiver conectado e defina-o como leitura const int. Ademais declare a variável temperatura como float.

 

Setup de inicialização

Inicie a comunicação serial em 9600 e declare os pinos utilizados aqui como OUTPUT em um laço de repetição for para economizar linha de código e otimizar sua programação.

 

Leitura do LCD

Inicialize o LCD de forma a exibir a temperatura e a tensão coletada do sensor. Da mesma forma, escreva os símbolos de medição que representam o grau e a tensão (V).

 

Loop do programa

É aqui que o código irá: coletar as informações do sensor em valorSensor, transformar o valor lido em uma tensão, fazer a conversão de tensão em temperatura °C e transformar essa temperatura em °F.

 

Monitor Serial

Essas linhas de comando são escritas para você poder acompanhar as leituras exibidas na tela do seu computador e validar as leituras exibidas no LCD e LED’s.

Os valores deverão aparecer da seguinte forma em seu monitor serial:

Medidor de temperatura – Monitor Serial

Não se esqueça de inserir um delay () entre a exibição dos valores no monitor serial e a exibição deles no LCD.

 

Exibição da temperatura e da tensão no seu LCD

Já essas linhas de código são cruciais para exibir, no display, a temperatura até então calculada e a tensão gerada pelo sensor. Para fazer isso use lcd.setCursor(coluna, linha) onde o primeiro atributo se refere a coluna e o segundo a linha do LCD.

 

Acendendo os LED’s

Agora entra em jogo a temperatura padrão que você definiu no começo no código. Para nós aqui da eletrogate, a temperatura está em 27 °C mas para você, essa temperatura pode variar para mais ou para menos. Portanto, certifique-se de que a temperatura ambiente esteja condizente e use condicional if () para acender/apagar seus LED’s.

 

Medidor de temperatura com Arduino - LED's

Um LED aceso pois temperatura está abaixo da temperatura padrão de 24 °C

 

Conclusão

Hoje aprendemos a construir um sistema de medição da temperatura ambiente e da temperatura corporal com um display LCD e um LM35. Nesse sentido, para ajudar você na sua caminhada de programação, recomendamos utilizar o mapa mental abaixo que contém as principais funções utilizadas nos códigos do Arduino IDE:

Mapa mental principais funções no Arduino IDE

Baixe o mapa mental em alta definição das principais funções com Arduino aqui.

E, indicamos você estudar nossos artigos sobre programação na IDE do Arduino:

Caso deseje se aprofundar na plataforma Arduino, leia nosso artigo completo:

Se ainda assim possuir alguma dúvida de programação ou de projeto, utilize os comentários abaixo e deixe-nos saber para te ajudar.

Por fim, se tiver gostado do tutorial ou se ele te ajudou de alguma forma não deixe de o curtir e o compartilhar com seus amigos!

Para ficar melhor informado (a) sobre futuras promoções e futuros tutoriais, recomendamos nos acompanhar no Instagram @eletrogate.

Parabéns se você leu até aqui e até o próximo projeto.

 

 

Avaliação: 5.0/5. De 6 votos.
Espere por favor...
Flavio Babos
Flavio Babos
Graduando em Engenharia Mecatrônica na UFU, descobriu o Arduino em 2014 e, desde então, não parou de fazer projetos com a plataforma. Flávio busca trazer conteúdos de uma maneira diferente aqui na eletrogate e em seu blog pessoal. Sempre se interessou por eletrônica e robótica e adora assuntos de negócios e gestão de empresas. Último artigo do seu blog: Guia Definitivo do Arduino
Acesse nossa loja