Font Size

Fala galera, tudo beleza? Hoje viemos apresentar um pequeno e simples projeto, com o objetivo de mostrar como estar integrando teclado matricial, DHT22 e display LCD. Além disso, vamos utilizar tópicos abordados em nossos posts antigos, tais como:

  • Fritzing;
  • Teclado de membrana;
  • LCD 16×2;

Mas por que utilizar esses componentes?

Primeiramente, o intuito do post é mostrar que mesmo com componentes tão simples e acessíveis, dá pra se fazer bastante – desde um simples controle de temperatura e ambiente (nosso caso) à uma pequeno projeto de estação meteorológica.

Além do mais, com estes mesmos componentes abaixo utilizados, podemos integrá-los e criar projetos de sistemas de segurança, controle/automação e robótica :), incrível não?

Por fim, os posts introdutórios aos componentes LCD 16×2 e Teclado de Membrana podem ser encontrados  aqui e aqui, respectivamente :).

Materiais Utilizados no Projeto

Esses itens, e mais uma outros para implementar seu projeto – você acha AQUI na nossa loja :D.

Montagem do Projeto

Integrando-teclado-matricial

Além disso, temos como adicional à montagem acima, adicionar um sensor DHT22 à porta 25, e o teclado de membrana às portas 21,22.

Obs: Foi desenvolvido o código utilizando apenas 2 teclas do teclado de membrana, sendo que se necessário pode utilizar as teclas restantes, declarando-o-as conforme o código abaixo nas linhas 17 e 18 :), podendo mais sensores, fazendo parecido ao que foi feito nas linhas 6 a 13.

Código do Projeto Comentado

#include <DHT.h> 
#include <LiquidCrystal.h>

LiquidCrystal lcd(40,41,42,43,44,45); // Porta RS, E, D4, D5, D6, D7

#define DHTTYPE DHT22 // Criando o objeto DHT, e declarando sua porta (24).
#define DHTPIN 24
DHT dht(DHTPIN, DHTTYPE);

#define DHTTYPO DHT22 // Criando o objeto DHT2, e declarando sua porta (25).
#define DHTPINO 24
DHT dht2(DHTPINO, DHTTYPO); 
#define ler_delay 30000

// Criando a função print LCD, para deixar o código mais enxuto.
void printLCD(){
byte leitura1 = digitalRead(21); // Porta 21 - correspondente a tecla 1.
byte leitura2 = digitalRead(22); // Porta 22 - correspondente a tecla 2.

if(leitura1 == 0) { //Realiza a leitura de todas as portas, se estiverem em estado baixo, imprime via serial monitor, "Tecla "X" pressionada"
lcd.clear(); 
lcd.setCursor(0,0); // Seta o cursor do LCD na Coluna 0 e Linha 0( Visualmente a primeira linha e primeira coluna).
lcd.print("Sensor1");
delay(2000); // Espera 2s para mostrar o valor lido no sensor
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(dht.readTemperature()); // Printa a leitura da temperatura
lcd.print("ºC");
lcd.setCursor(0,1); // Seta o cursor do LCd na Coluna 0 e Linha 1.
lcd.print("Umid: ");
lcd.print(dht.readHumidity()); // Printa a umidade
lcd.print("%");
delay(5000); // Aguarda 5s.
} 
if(leitura2 == 0) {
lcd.clear(); 
lcd.setCursor(0,0); // Seta o cursor do LCD na Coluna 0 e Linha 0( Visualmente a primeira linha e primeira coluna).
lcd.print("Sensor2");
delay(2000); // Espera 2s para mostrar o valor lido no sensor, no segundo sensor.
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(dht2.readTemperature()); // Printa a leitura da temperatura
lcd.print("ºC");
lcd.setCursor(0,1); // Seta o cursor do LCd na Coluna 0 e Linha 1.
lcd.print("Umid: ");
lcd.print(dht2.readHumidity()); // Printa a umidade
lcd.print("%");
delay(5000); // Aguarda 5s.
}
else {

lcd.clear(); 
lcd.setCursor(0,0); // Seta o cursor do LCD na Coluna 0 e Linha 0( Visualmente a primeira linha e primeira coluna).
lcd.print("Aguardando..."); // Aguarda o estado de leitura de algum botão.
}
}

void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);//Declaração das portas 2, 3, como "entrada" pullup, com a finalidade de monitorar o estado da chave.
digitalWrite(38, 1);
pinMode(3, INPUT_PULLUP);
lcd.begin(16,2); // Inicia o objeto LCD e suas 16 colunas e 2 linhas
dht.begin(); // Inicia o objeto DHT(Sensor de temperatura e umidade)
dht2.begin();

}
void loop() {
delay(ler_delay); //Aguarda 30s
printLCD(); // Executa a função que printa os valores de Temp e Umi, no LCD, de acordo com a config.
}

Conclusão do Projeto – Integrando teclado matricial

Então,  fácil não? Espero que tenha aprendido sobre como estar integrando teclado matricial, DHT22 e Display LCD. De uma forma simples, bacana e legal de se trabalhar – e dá pra fazer um montão de coisas com esses componentes seguindo essa linha de projeto.

Portanto, deixe o seu comentário ai embaixo, vai lá no nosso Facebook e diz o que achou, e compartilha com os seus colegas se achou interessante!

0.00 avg. rating (0% score) - 0 votes