Olá pessoal, nest post vou mostrar como desenvolver o projeto arduino com display LDC, que mede a temperatura através de um sensor LM35 e mede a luminosidade através de um sensor LDR (do inglês Light Dependent Resistor). Além disso você poderá controlar o brilho e contraste do display LDC através de dois potenciômetros. 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 fácil de encontrar e com um preço acessível, e te mostrará também como realizar a leitura dos sensores de temperatura e luminosidade.
Para desenvolver este projeto você vai precisar de:
Vamos começar conectando os componentes na protoboard, o display ldc, os potenciômetros, 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 conexões entre eles, que serão tratadas com detalhes mais adiante.
Além do esquema precisamos saber de mais alguns detalhes técnicos sobre essas ligações. Vamos começar pelo datasheet do display LCD JHD 162A, que mostra a finalidade de cada um dos pinos do display lcd. Caso o seu display não seja um JHD 162A você poderá procurar na internet pelo datasheet do mesmo e assim adaptar para esse projeto.
Segue abaixo a descrição de como deverão ser feitas as ligações entre o display LDC, o arduino, e os potenciômetros que controlam o brilho e o contrate do LCD.
A imagem abaixo mostra um pouco mais das ligações entre o display e os potenciômetro.
Agora trataremos do sensor de temperatura LM35. Segue abaixo uma imagem que detalha a função de cada pino do sensor.
A conexão será feita da seguinte forma.
O sensor de luz será ligado da seguinte forma.
Após feitas todas as conexões entre arduino, protoboard e componentes, chegou a hora de programar o seu arduino para que ele assuma as funções propostas neste projeto. Então conecte o seu arduino ao computador através do cabo USB, execute a IDE de programação do arduino e introduza o código fonte abaixo.
Código 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 analógico que o sensor de luz está conectado. const int sensorTemp = 1; //Pino analógico que o sensor de temperatura está conectado. //Variáveis int valorSensorLuz = 0; //usada para ler o valor do sensor de luz. int valorSensorTemp = 0; //usada para ler o valor do sensor de temperatura. int menorValorTemp = INT_MAX; //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 variações de leitura do componente //LM35 são feitas 8 leitura é o menor valor lido prevalece. menorValorTemp = INT_MAX; //Inicializando com o maior valor int possível 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 código fonte e faça o upload para o arduino. Aguarde alguns instantes, necessários para a transferência do programa, e o seu projeto começará 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, através dos potenciômetros, para ficar bem nítido a exibição dos valores de temperatura e luz.
E para concluir mais este projeto em arduino, segue abaixo o vídeo mostrando ele em funcionamento. Veja!