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 sensor de temperatura LM35
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
Comentar
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?
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.
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?
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.
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
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.
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
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)