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: 87571

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 Alex do Carmo Francisco em 10 agosto 2017 às 11:28
Bom dia galera já venho fazendo várias pesquisa sobre sensores mais estou fazendo um projeto e preciso que alguém me ajude a ligar um sensor de água do carro no Arduino o código do sensor é 4053 preciso saber se precisa de alguns componentes pra ir na placa do Arduíno ou se dá pra ligar ele direto.
Se alguém poder me ajudar agradeco.
Comentário de José Ewerton da Silva Sousa em 7 dezembro 2016 às 9:37

Bom dia, por que razão utilizou-se 500 e não 150º para corresponder a 1023? Se eu tiver um sensor que opere na faixa de 0,05mV/ºC qual seria a minha conversão?

Comentário de Adriano Furlaneto Mateus em 27 setembro 2015 às 21:51

Boa noite amigo.

Como faço para tirar os digitos depois do ponto? Pois estou usando um LCD 16x2 e nao tem espaço suficiente para as informaçoes. No atual cenario esta 27.00 C, gostaria que aparecesse 27 C. Poderia me ajudar?

Obrigado.

Comentário de Lucas Trevisan Malheiros em 4 setembro 2014 às 18:07

olá eu fiz tudo como está aí mas na hora de gravar o código na placa apareceu esta mensagem "avrdude: stk500_getsync(): not in sync: resp=0x00" o que de de  errado?

Comentário de Iohran Navarro em 22 agosto 2014 às 23:54

boa noite, acabei de montar este teste, sensor de temperatura + o LCD, só que no lcd só aprece: "temperatura 0.00 C e não sai disso. gostaria de saber se alguém que tenha passado pelo mesmo problema possa me ajudar.

Comentário de Elói Lima da Silva em 17 setembro 2013 às 15:48

Desculpa, sou leigo nesta questão que irei perguntar agora;

 

Como que você chegou a conclusão desta relação? Isso encontra-se disponível em Datasheet do componente ou mesmo do arduino??

 

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

 

 

Comentário de IVAN LUIZ PINTO DE PAULA em 15 agosto 2013 às 16:24

Oi amigos, montei o projeto acima e não funcionou, não entendi. Estou começando agora e estou pensando que possa ser o LCD. 

Agradeço a ajuda.

Comentário de leandro claudino de araujo em 19 maio 2013 às 12:47

ola amigos, estou montando uma mini estufa de morangos, e gostaria de além de controla a temperatura, gostaria que quando chegasse a uma temperatura acima de x fosse ligado um modulo de rele onde ligara um cooler uma bomba de água e luz , variando a ligação desse modulo conforme a temperatura EX:

(temp. < 15°c)  ligar luz  

(temp. > 30°c)  ligar cooler

(humid. < 40%)  ligar ligar bomba de água 

arduino mega 2560

lcd 16x2

mudulo rele com 4 saídas

sensor DHT11

Comentário de Fabiano Anhaia em 13 abril 2013 às 1:39
Caros amigos preciso de ajuda. Eu preciso q o arduino leia temperaturas negativas, pois estou montando uma mini geladeira com celula peltier. Minhas duvidas são as seguintes:
1 a porta analógica do arduino lê tensão negativa?
2 com essa programação acima eu conseguiria ler temperaturas negativas ou precisaria ser feita alguma alteração?
Obs: eu li no datasheet do lm35 q para ler temperatura negativa eu preciso de uma fonte simétrica com tensão negativa.
Obrigado pela ajuda de todos.
Comentário de José Carlos dos Santos Jesus em 6 março 2013 às 23:18

Olá Pedro,

     Obrigado por sua resposta. Eu busquei um aparelho de estufa que indica a temperatura e a umidade relativa e tentei "calibrar" a fórmula de conversão em função deste aparelho e o resultado que mais aproximou foi mudar na fórmula o valor de 500 para 519.  Usei também uma biblioteca para o LM35 e plotei o resultados dos dois métodos lado a lado no LCD.  Descobri que você colocar um capacitor de 100 pF entre  os pinos Gnd e +VS do LM35  reduzir os ruídos e estabiliza mais as leituras da temperatura.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço