Como Ligar as Coisas

LCD 1602 ou LCD 2004 com I2C – Como ligar?

Escrito por: ­ 13 de set de 2017 ­ 1.692 views

Neste artigo veremos:

O que você vai precisar

1 LCD 1602 ou 2004 com I2C (se o seu for sem I2C clique aqui) – (Caso o LCD seja o 2004, mude a programação abaixo (lcd.begin(16, 2); por lcd.begin(20, 4);)
Biblioteca NewliquidCrystal que poderá ser encontrada aqui
Fios (jumpers)


 

 

2 lcds nos mesmos pinos do Arduino SDA e SCL

2 lcds nos mesmos pinos do Arduino SDA e SCL

A Conexão

A conexão com os módulos I2C ocorre de maneira muito simples.
Vcc – 5v do Arduino
Gnd – Gns do Arduino
SDA (Dados) – na maioria dos Arduinos (A4), no Mega (20), no Leonardo (D2)
SCL (Clock) – na maioria dos Arduinos (A5), no Mega (21), no Leonardo (D3)

Cada módulo tem um endereço específico, dessa forma é possível ligar vários dispositivos na mesma porta.
Veja como trocar o endereço, na tabela abaixo (cada chip, possui até 8 combinações)

 

O padrão é o endereço 0x3F para o chip PCF8574AT e 0x27 para o PCF8574T, pois não há nenhum jumper.
Caso você queira usar mais de um LCD ao mesmo tempo, na mesma porta, terá que soldar as conexões, fechando dessa forma o Jumper, para que um novo endereço seja criado, considerando a tabela acima.
Estamos utilizando 2, logo como eles estão utilizando o mesmo chip (mesmo endereço), tivemos que soldar um deles.
O endereço ficou 0x3E, porque soldamos somente o A0.

Sem Jumper - endereço 0x3F

Sem Jumper – endereço 0x3F

 

Com Jumper em A0 - Endereço 0x3E

Com Jumper em A0 – Endereço 0x3E

A programação

Scanner

Para saber qual é o seu endereço (ler qualquer dispositivo conectado I2c)

// from https://playground.arduino.cc/Main/I2cScanner?action=sourceblock&num=1
#include <Wire.h>

void setup()
{
  Wire.begin();
  Serial.begin(9600);
  while (!Serial); 
  Serial.println("\nI2C Scanner");
}

void loop()
{
  byte error, address;
  int nDevices;
  Serial.println("Scaneando...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
  {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
      Serial.print("Dispositivo I2C encontrado no endereço 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error==4) 
    {
      Serial.print("Erro desconhecido no endereço 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("Não encontramos nenhum dispositivo I2C\n");
  else
    Serial.println("pronto\n");
  delay(5000); 
}

Programa

Para usar 2 visores ao mesmo tempo

// Este exemplo foi criado por Edson Sidnei Sobreira 
// Domínio Público

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

// Inicializa o display no endereco 0x27
LiquidCrystal_I2C lcd_1(0x3F,2,1,0,4,5,6,7,3, POSITIVE);
LiquidCrystal_I2C lcd_2(0x3E,2,1,0,4,5,6,7,3, POSITIVE); 
byte sym[8] = {0x0,0xe,0x10,0x10,0x11,0xe,0x18};
byte sym1[8] = {0xe,0x0,0xe,0x1,0xf,0x11,0xf};
byte sym2[8] = {0xe,0x11,0xe,0x1b,0x4,0xa,0x11};
byte sym3[8] = {0xe,0x11,0xe,0xa,0x15,0xa,0x11};

void setup()
{
 lcd_1.begin (16,2);
 lcd_2.begin (20,4);
 lcd_2.createChar(0, sym);
 lcd_2.createChar(1, sym1);
 lcd_2.createChar(2, sym2);
 lcd_2.createChar(3, sym3);
}
 
void loop()
{
  lcd_1.setBacklight(HIGH);
  lcd_1.setCursor(0,0);
  lcd_1.print("   HackEduca");
  lcd_1.setCursor(0,1);
  lcd_1.print("hackeduca.com.br");
  delay(1000);

  lcd_2.setBacklight(HIGH);
  lcd_2.setCursor(0,0);
  lcd_2.print((char)2);
  lcd_2.print("     HackEduca");
  lcd_2.setCursor(0,1);
  lcd_2.print("www.hackeduca.com.br");
  lcd_2.setCursor(0,2);
  lcd_2.print(" Educa");
  lcd_2.print((char)0);
  lcd_2.print((char)1);
  lcd_2.print("o");  
  lcd_2.setCursor(0,3);
  lcd_2.print("         Tecnologia"); 
  delay(1000);
  lcd_2.setCursor(0,0);
  lcd_2.print((char)3);
}

Mixly

print
Previous Post Next Post

Você também pode gostar / You Might Also Like

No Comments

Leave a Reply

Show Buttons
Siga-nos no Facebook
Siga-nos no Twitter
Siga-nos no Google Plus
Siga-nos no Pintrest
Siga-nos no Youtube
Siga-nos no Scratch
Hide Buttons
Top
HackEduca