Você está na página 1de 7

Projeto Arduino com display LCD, sensor de

temperatura e sensor de luminosidade.



Ol pessoal, nest post vou mostrar como desenvolver o projeto arduino com display LDC, que mede a
temperatura atravs de um sensor LM35 e mede a luminosidade atravs de um sensor LDR (do
inglsLight Dependent Resistor). Alm disso voc poder controlar o brilho e contraste do display LDC
atravs de dois potencimetros. Este projeto arduino vai te mostrar como trabalhar com displays LDC do
tipo JHD 162A, de 16 colunas e 2 linhas, que um tipo comum e fcil de encontrar e com um preo
acessvel, e te mostrar tambm como realizar a leitura dos sensores de temperatura e luminosidade.
Para desenvolver este projeto voc vai precisar de:
um arduino;
uma protoboard;
um display LDC do tipo JHD 162A de 16 colunas por duas linhas;
um sensor LDR (do ingls Light Dependent Resistor);
um sensor de temperatura LM35;
dois potencimetros de 10K omhs;
um resistor de 10k ohms;
fios jumper.
Vamos comear conectando os componentes na protoboard, o display ldc, os potencimetros, os
sensores de luz e temperatura, resistor e fios jumper.

O esquema do projeto, logo abaixo, e que servir de base durante todo o desenvolvimento do mesmo, te
mostra com detalhes todos os componentes e as conexes entre eles, que sero tratadas com detalhes
mais adiante.
Alm do esquema precisamos saber de mais alguns detalhes tcnicos sobre essas ligaes. Vamos
comear pelo datasheet do display LCD JHD 162A, que mostra a finalidade de cada um dos pinos do
display lcd. Caso o seu display no seja um JHD 162A voc poder procurar na internet pelo datasheet do
mesmo e assim adaptar para esse projeto.
Segue abaixo a descrio de como devero ser feitas as ligaes entre o display LDC, o arduino, e os
potencimetros que controlam o brilho e o contrate do LCD.
pino 1 do LCD ligado ao GND do arduino;
pino 2 do LCD ligado ao 5V do arduino;
pino 3 do LCD ligado ao pino central do primeiro potncimetro (controle de contraste);
pino 4 do LCD ligado ao pino digital 9 do arduino;
pino 5 do LCD ligado ao GND do arduino;
pino 6 do LCD ligado ao pino digital 8 do arduino;
pino 11 do LCD ligado ao pino digital 5 do arduino;
pino 12 do LCD ligado ao pino digital 4 do arduino;
pino 13 do LCD ligado ao pino digital 3 do arduino;
pino 14 do LCD ligado ao pino digital 2 do arduino;
pino 15 do LCD ligado ao pino central do segundo potncimetro (controle do brilho);
pino 16 do LCD ligado ao GND do arduino.
A imagem abaixo mostra um pouco mais das ligaes entre o display e os potencimetro.
Agora trataremos do sensor de temperatura LM35. Segue abaixo uma imagem que detalha a funo de
cada pino do sensor.
A conexo ser feita da seguinte forma.
pino 5V do LM35 no 5V do arduino;
pino central do LM35 no pino analgico A1 do arduino;
pino GND do LM35 no GND do arduino.
O sensor de luz ser ligado da seguinte forma.
uma perna do sensor de luz LDR no 5V do arduino;
a outra perna do sensor de luz LDR no pino analgico A0 e tambm no GND do arduino, a ligao no GND ser
feita atravs do resistor. Para detalhes veja o esquema do projeto.
Aps feitas todas as conexes entre arduino, protoboard e componentes, chegou a hora de programar o
seu arduino para que ele assuma as funes propostas neste projeto. Ento conecte o seu arduino ao
computador atravs do cabo USB, execute a IDE de programao do arduino e introduza o cdigo fonte
abaixo.
Cdigo fonte completo e comentado.
/*
Projeto Arduino com LCD, sensor de luz e de temperatura.
Por Jota
----------------------------------------
--=<| www.ComoFazerAsCoisas.com.br |>=--
----------------------------------------
*/
#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz = 0; //Pino analgico em que o sensor de luz est conectado.
const int sensorTemp = 1; //Pino analgico em que o sensor de temperatura est conectado.
int valorSensorLuz = 0; //varivel usada para ler o valor do sensor de luz.
int valorSensorTemp = 0; //varivel usada para ler o valor do sensor de temperatura.
int menorValorTemp = INT_MAX; //Varivel usada para armazenar o menor valor da temperatura.
//Criando um objeto da classe LiquidCrystal e
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
void setup() {
//Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
//que o tamanho do LCD JHD 162A usado neste projeto.
lcd.begin(16, 2);
}
void loop() {
//Lendo o valor do sensor de luz
valorSensorLuz = analogRead(sensorLuz);

//Para evitar as grandes variaes de leitura do componente
//LM35 so feitas 8 leitura o menor valor lido prevalece.
menorValorTemp = INT_MAX; //Inicializando a varivel com o maior valor int possvel
for (int i = 1; i <= 8; i++) {
//Lendo o valor do sensor de temperatura.
valorSensorTemp = analogRead(sensorTemp);

//Transformando valor lido no sensor de temperatura em graus celsius aproximados.
valorSensorTemp *= 0.54 ;

//Mantendo sempre a menor temperatura lida
if (valorSensorTemp < menorValorTemp) {
menorValorTemp = valorSensorTemp;
}

delay(150);
}

//Exibindo valor da leitura do sensor de temperatura no display LCD.
lcd.clear(); //limpa o display do LCD.
lcd.print("Temp: "); //imprime a string no display do LCD.
lcd.print(menorValorTemp);
lcd.write(B11011111); //Simbolo de graus celsius
lcd.print("C");

//Exibindo valor da leitura do sensor de luz no display LCD.
lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD.
lcd.print("Luz: "); //imprime a string no display do LCD.
lcd.print(valorSensorLuz);

delay(2000); //aguarda 2 segundos
}
Agora compile o cdigo fonte e faa o upload para o arduino. Aguarde alguns instantes, necessrios para
a transferncia do programa, e o seu projeto comear a funcionar, mostrando a temperatura do
ambiente e a intensidade de luz, que vai de 0 at 1023. Regule o brilho e o contraste do display lcd,
atravs dos potencimetros, para ficar bem ntido a exibio dos valores de temperatura e luz.
E para concluir mais este projeto em arduino, segue abaixo o vdeo mostrando ele em funcionamento.
Veja!
Se voc gostou deste post ento tambm vai gostar dos post abaixo!