Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ninja-forms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114

Notice: A função _load_textdomain_just_in_time foi chamada incorretamente. O carregamento da tradução para o domínio twentyseventeen foi ativado muito cedo. Isso geralmente é um indicador de que algum código no plugin ou tema está sendo executado muito cedo. As traduções devem ser carregadas na ação init ou mais tarde. Leia como Depurar o WordPress para mais informações. (Esta mensagem foi adicionada na versão 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114
Display LCD 16X2 com Módulo I2C - VLADCONTROL

Display LCD 16X2 com Módulo I2C

Display LCD 16×2 é uma pequena tela de 16 colunas e 2 linhas, de custo baixo e muito empregada no desenvolvimento de projetos na automação ou na robótica, podendo ser utilizada em vários microcontroladores como Arduino, Raspberry Pi, PIC, Atmel e outros.
Com variadas aplicações, o Display LCD 16×2 é um complemento muito útil com a integração do projeto aos usuários, mostrando informações relevantes ao desenvolvedor.

Especificações do Display LCD 16X2

    • Controlador: HD44780
    • Tensão de operação: 4,5V a 5,5VDC
    • Corrente de operação: 1mA a 1,5mA
    • Tensão no led do backlight (fundo): 1,5V a 5,5VDC
    • Corrente no led do backlight (fundo): 75mA a 200mA
    • Comunicação: 4bits ou 8bits
    • Dimensão do módulo: 80mm X 36mm X 12mm
    • Área do visor: 64,5x14mm
    • Tamanho do ponto: 0.52mm X 0.54mm
    • Tamanho do caracter: 3mm X 5.02mm

Módulo I2C

O Módulo LCD I²C ou I2C, que é muito utilizado nos Displays LCD 16×2, admite uma comunicação com microcontroladores que tenham suporte ao protocolo I²C e permite uma comunicação com apenas 2 linhas de dados.
O protocolo I²C foi desenvolvido pela Philips (atual NXP) visando conectar diversos dispositivos (periféricos) utilizando apenas as duas linhas de dados (SDA e SCL) Serial Data e Serial Clock. A ideia principal é definir um endereço hexadecimal para cada dispositivo e no momento de comunicação somente o dispositivo solicitado responderá.

Especificações do Módulo I2C

    • Controlador: PCF8574T
    • Tensão de operação: 5VDC
    • Interface: I2C
    • Compatibilidade: display LCD 16×2 e 20×4
    • Trimpot para ajustar o contraste do display LCD
    • Pinos para ligar/desligar o backlight do display LCD

Exemplo de Aplicação com Display LCD 16X02

Leituras de temperatura e umidade relativa obtidas pelo sensor DHT11 serão apresentadas no visor do Display LCD 16×2.
Primeiramente, devemos soldar o Módulo I2C ao Display LCD 16×02 ou, se preferir, fixar em uma protoboard para a conexão ao Arduino. Em seguida, faremos a junção do sensor DHT11 e do Display ao Arduino conforme o esquema.

Arduino Uno

SDA – Porta Analógica A4
SCL – Porta Analógica A5

Arduino Mega

SDA – Porta 20
SCL – Porta 21

Código de Exibição no Display LCD 16X02

Primeiramente, devemos incluir a Biblioteca LiquidCrystal_I2C.h para o Display e também as Bibliotecas Adafruit_Sensor.hDHT.h  para o sensor de temperatura.
Então, feito isso, agora é só carregar o código:

#include "DHT.h"
#define DHTPIN 2     // Pino digital sensor DHT

// Escolha o tipo de sensor!
# define DHTTYPE DHT11     // DHT 11
//# define DHTTYPE DHT22   // DHT 22 (AM2302), AM2321
//# define DHTTYPE DHT21   // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Definir o endereço do LCD para 0x27 para um display de 16 caracteres e 2 linhas
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHTxx teste!"));

  dht.begin();

  lcd.begin();

}

void loop() {
  // Aguarde alguns segundos entre as medições.

  // delay(2000);

  // A leitura da temperatura ou umidade leva cerca de 250 milissegundos!
  // O sensor pode ter um atraso de até 2 segundos para a leitura
  
  float h = dht.readHumidity();
  // Temperature em Celsius (default)
  float t = dht.readTemperature();
  // Temperature em Fahrenheit (Fahrenheit = true)
  float f = dht.readTemperature(true);

  // Verifique se alguma leitura falhou e tenta novamente.
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Falha de leitura do sensor DHT!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Umidade: "));
  Serial.print(h);
  Serial.print(F("%  Temperatura: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Índice de calor: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));

  lcd.setBacklight(HIGH);

  lcd.setCursor(0, 0);
  lcd.print(F("Umidade Rel: "));
  lcd.setCursor(0, 1);
  lcd.print(h);
  lcd.setCursor(5, 1);
  lcd.print(F(" %"));
  delay(2000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print(F("Tempetatura: "));
  lcd.setCursor(0, 1);
  lcd.print(t);
  lcd.setCursor(5, 1);
  lcd.write(32);  // Caracter espaço
  lcd.write(223); // Caracter °
  lcd.print(F("C"));
  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print(F("Tempetatura: "));
  lcd.setCursor(0, 1);
  lcd.print(f);
  lcd.setCursor(5, 1);
  lcd.write(32);
  lcd.write(223);
  lcd.print(F("F"));
  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print(F("Indice de Calor: "));
  lcd.setCursor(0, 1);
  lcd.print(hic);
  lcd.setCursor(5, 1);
  lcd.write(32);
  lcd.write(223);
  lcd.print(F("C"));
  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print(F("Indice de Calor: "));
  lcd.setCursor(0, 1);
  lcd.print(hif);
  lcd.setCursor(5, 1);
  lcd.write(32);
  lcd.write(223);
  lcd.print(F("F"));
  delay(3000);

  lcd.clear();

  lcd.setBacklight(LOW);

  delay(1000);

}

 

Concluímos que utilizando o Módulo I2C e a Biblioteca LiquidCrystal_I2C fica bem simples e fácil trabalhar com o Display LCD 16×02 nos mais variados projetos.

 

 

Onde comprar?

LOJAS

 

Conheça também!