Como Utilizar
Mostrar Informação em um lcd 16x2 utilizando um sensor de temperatura DHT11
Vamos montar um circuito para mostrar, temperatura e a humidade de um ambiente utilizando um LCD 16x2 que será nossa interface com o usuário, par1 ler a temperatura do ambiente iremos utilizar o sensor de temperatura DHT11
Para a montagem do circuito você poderá utilizar o módulo DHT11 ou simplesmente o sensor DHT11. A ligação de ambos são idênticos, utiliza apenas um pino para comunicação com o Arduino.
Uma peculiaridade do sensor DHT11 é que o mesmo fornece apenas números inteiros por exemplo irá fornecer 10 graus mesmo que esteja uma temperatura de 10,4 graus por exemplo.
Isto quer dizer que você não irá conseguir mostrar temperaturas “quebradas” somente números inteiros exemplo 15, 20, 25, ... graus.
O display LCD 16×2 utilizado neste projeto, é o baseado no controlador HD44780, possui backlight azul e caracteres brancos, seus pinos de conexão encontram-se na parte superior do display 1 à 16. As conexões utilizadas para o projeto foram:
Pino 4 (RS) ligado ao pino 9 do Arduino
Pino 6 (E) ligado ao pino 8 do Arduino
Pino 11 (D4) ligado ao pino 7 do Arduino
Pino 12 (D5) ligado ao pino 6 do Arduino
Pino 13 (D6) ligado ao pino 5 do Arduino
Pino 14 (D7) ligado ao pino 4 do Arduino
Pino 16 Catodo ligado ao GND
Pino 5 RW ligado ao GND
Pino 15 Anodo ligado ao 5V
Pino 1 Vss ligado ao Gnd
Pino 2 Vdd ligado ao 5V
Para controle do LCD iremos utilizar a biblioteca LiquidCrystal a mesma já vêm instalada na IDE do Arduino), Para realizar as leituras do Sensor DHT11 iremos utilizar a biblioteca DHT, que pode ser baixada aqui.
Para mostrar o símbolo do grau (º), podemos utilizar um dos caracteres especiais disponíveis nesse display, usando o comando
lcd.print((char)223);
Que se trata de um caractere quadrado o mesmo customizar um caractere, com a forma mais arredondada. Para isso, foi necessário criar uma array de forma a desenhar este símbolo, para posteriormente utiliza-lo no programa, para esta tarefa utilizamos o comando
lcd.createChar(symbol_grau, data);
Onde: symbol_grau refere-se ao nome dado ao caractere especial, podendo ser um número de 0 a 7, data refere-se ao array criado para formar o símbolo do grau.
O comando delay ao final não é recomendado que seja menor que 2000 (2 segundos), pois é mínimo valor para que o sensor forneça dados de forma correta.
// Mostrra Humidade e Temperatura do DHT11 em um LCD 16x2
//BY AF ELETRONICA
#include <DHT.h> //Carrega a biblioteca DHT
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
// Aqui define-se a ligação ao pino de dados do sensor
#define DHTPIN 2
//Aqui define-se o tipo de sensor DHT utilizado
#define DHTTYPE DHT11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
//Define os pinos que serão ligados ao LCD
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
// pin4 D7
// pin 5 D6
// pin 6 D5
// pin 7 D4
// pin8 Enable
// pin9 RS
// Catodo ligado ao GND
// RW ligado ao GND
// Anodo ligado ao 5V
//Matriz simbolo grau
byte symbol_grau[8] ={ B00001100,
B00010010,
B00010010,
B00001100,
B00000000,
B00000000,
B00000000,
B00000000,};
void setup()
{
Serial.begin(9600); //Inicializa a serial
lcd.begin(16,2); //Inicializa LCD
lcd.clear(); //Limpa o LCD
//Cria o caractere customizado com o simbolo do grau
lcd.createChar(1, symbol_grau);
}
void loop()
{
float h = dht.readHumidity(); //Le o valor da umidade guarda em h
float t = dht.readTemperature(); //Le o valor da temperatura guarda em t
lcd.setCursor(0,1);
lcd.print("Temp : ");
lcd.print(" ");
lcd.setCursor(7,1);
lcd.print(t,1);
lcd.setCursor(12,1);
//Mostra o simbolo do grau redondo formado pela array
//lcd.write((byte)0);
//Mostra o simbolo do grau quadrado
lcd.print((char)223);
lcd.setCursor(13,1);
lcd.print("C"); // mostra o caracter C após o simbolo Graus
lcd.setCursor(0,0);
lcd.print("Umid : ");
lcd.print(" ");
lcd.setCursor(7,0);
lcd.print(h,0);
lcd.setCursor(12,0);
lcd.print("%");
delay(2000); //Tempo recomendado para leitura do sensor
}
Comentários
Nenhum comentário encontrado.