Tutorial: Mostrar a Temperatura Ambiente com o Arduino em um display LCD 16x2

Adquira estes componentes na Loja do Lab de Garagem

Este tutorial mostra uma maneira interessante de fazer a leitura da temperatura ambiente com o Arduino, e exibi-la em um display LCD 16x2 (em graus Celsius), utilizando conceitos básicos de sua programação e o sensor de temperatura LM35DZ.

Para isto, serão necessários os seguintes componentes:

- 1 placa Arduino

- 1 display LCD 16x2

- 1 potenciômetro de 10K

- 1 sensor de temperatura LM35

- Jumpers para conexão

Este sensor captura a temperatura externa e converte-a em um valor de tensão correspondente. No circuito, conectamos a saída Vo do sensor a porta analógica A0 do Arduino, que por sua vez, converte este sinal em um valor (float) de temperatura e assim, exibe no LCD. O potenciômetro de 10K ajusta o contraste do display.

 

A seguir, monte o circuito abaixo com o Arduino e os outros componentes:

 

Então, abra a IDE do Arduino e digite o seguinte código:

 

#include  <LiquidCrystal.h>         // Inclui a biblioteca para utilizar o LCD.

#define          sensor           0        // Define o pino A0 como “sensor”

 

int  Ventrada;           // Variável para ler o sinal do pino do Arduino

float  Temperatura; // Variável que recebe o valor convertido para temperatura.

 

LiquidCrystal  lcd    (12, 11, 5, 4, 3, 2); 

/* Esta função acima declara quais os pinos do Arduino serão utilizados para o controle do LCD */

 

void  setup()

{

  lcd.begin(16, 2);                            // Diz para o Arduino que o display é 16x2.

  lcd.print("Temperatura: ");           // Manda o texto para a tela do display

}

 

void  loop()

{

  Ventrada = analogRead (sensor);  /*  Manda o Arduino ler o pino e armazena

 o valor em “Ventrada”. */

  Temperatura=(500*Ventrada)/1023;  /* Converte o valor de tensão em

temperatura e armazena na variável “Temperatura” */

  lcd.setCursor(0, 1);           // Move o cursor do display para a segunda linha.

  lcd.print(Temperatura);    // Exibe o valor de temperatura no display.

  lcd.print(" C");         // Escreve “C” para dizer que a escala é Celsius.

 

  delay(1000); /* Aguarda 1 segundo para efetuar uma nova leitura de

temperatura. */

}

 

Finalmente, faça o Upload para o seu Arduino.

 

O seu projeto para indicar temperatura está pronto !!! Esperamos que tenha gostado. Qualquer dúvida, poste aqui mesmo.

Obs: o sensor LM35DZ converte temperaturas na faixa de -55ºC até 150ºC.

 

Para quem quiser, esta é a explicação para o cálculo de conversão de tensão para temperatura feita no software:

Neste sensor, para cada 1ºC recebido, sua saída é acrescida em 10mV, isto em uma faixa de 0 a 5V, com 10 bits de resolução para conversão Analógica/Digital (1024 valores diferentes para representar a temperatura). Assim, o valor máximo (1023, pois é de 0 a 1023) corresponderá aos 5V. A metade corresponderá a 511 ou 2,5V, e assim por diante. Para efeitos de cálculo, haveria 5V na saída do sensor para uma temperatura de 500ºC ( o que é diferente na prática). Porém, esta consideração nos permite generalizar isto para a seguinte regra de três:

Temperatura  ----- Ventrada

         500ºC  ----- 1023              (valores máximos)

 

Assim, teremos:

 

Temperatura = (500*Ventrada)/1023, e este valor é exibido no display.

 

Até a próxima !!!

 

Links de Referência:

- arduino.cc/en/Tutorial/LiquidCrystal

- LCD com o Arduino

- "Datasheet" do sensor LM35

 

Exibições: 87554

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de José Carlos dos Santos Jesus em 4 março 2013 às 8:54

Prezados companheiros,

        Eu sou novato em arduido apesar de ser velhos com eletrônica e programação. Eu ao montar este experimento no arduino obtive um resultado curioso. Tudo funcionou perfeitamente com exceção do valor da temperatura ambiente mostrada na tela de LCD.  Sempre mostra uma temperatura acima da realidade. Já verifiquei a fórmula de conversão de tensão para temperatura e na programação do arduino me parece que tudo esta perfeito.  

       Alguém com mais experiência pode me dar uma dica do que esta acontecendo?

Um abraço a todos

José Carlos

Comentário de Sydney Vianna Pinto Júnior em 22 dezembro 2012 às 1:44

Se substituir:

Temperatura=(500*Ventrada)/1023

por: 

Temperatura= (Ventrada* 0.0049);
Temperatura= Temperatura*100;

A temperatura será mostrada com mais precisão.

:)

Comentário de Ricardo H.P. Barroso em 12 outubro 2012 às 0:07

como é feita a conexão com o LCD, na imagem ele parece esta solto ?

Comentário de danilo carnielo em 2 outubro 2012 às 12:44

obrigado pela dia mais tambem conseguimos mostrar hora ee temperatura, ex: mostra hora e temperatura.

tenho um relogio aqui apenas parte eletronica com led e gostaria de colocar Arduino junto pra funcionar.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço