Manual

do

Maker

.

com

Display LCD 16x2 com Arduino e PCF8574

Display LCD 16x2 com Arduino e PCF8574

Para controlar um display LCD com Arduino ou PIC você não precisa de nada além do próprio display e um Arduino. Já escrevi artigos relacionados, mas tem uma questão; você precisa disponibilizar tanto I/O para o display que seu projeto provavelmente não terá GPIO suficiente para outros propósitos. Se for o seu caso, a solução é simples; utilize um PCF8574AT para "drivar" seu display.

Se quiser ver alguma coisa sem o PCF8574 pra ter uma ideia apenas, siga os links:

TFT LCD 16x2 com Arduino LCD 16x2 com PIC

Vantagem em utilizar um PCF8574AT

A grande vantagem é que enquanto você utiliza montes de GPIO no Arduino sem um controlador, com esse driver você utiliza apenas 2 pinos do Arduino porque você fará uso do I²C! O único detalhe que você deve se ater é a qual Arduino ele será conectado, porque conforme for, os pinos do I²C diferente. O exemplo aqui será com um Attiny85, mas caso queira utilizar Arduinos ou outra coisa, dê uma lida nos tutoriais relacionados ao PCF8574 e I²C:

Expandindo IO no Attiny85 (prestes a sair um novo artigo para o Digispark, com ricos detalhes)

PCF8574 com Raspberry I²C com ESP8266 e MicroPython I²C com Raspberry

Esse artigos são bastante informativos e recomendados.

Características

Esse módulo para display tem algumas diferenças em relação ao PCF8574 dos posts supracitados. Os endereços são os mesmos, iniciado em 0x20, que deve ser o endereço padrão quando você o recebe. A diferença principal está no trimpot sobre o módulo, utilizado para ajustar o brilho do display.  Outra diferença está na impossibilidade de expansão do módulo por encaixe sequencial, como você pode reparar. Trabalha normalmente a 5V, portanto não há com o que se preocupar.

Materias para esse projeto

Se você não tem o display 16x2 ou se quer pegá-lo por um bom preço, aproveite para comprá-lo junto ao módulo I²C e assim economizar com o custo de envio, já que serão enviados juntos:

Só isso!

Wiring

Agora pasme com a facilidade de integração; basta alinhar o módulo I²C sobre os pinos do display. Pronto!

wiring01-display.webp

Alimentação e GND você pode ligar normalmente a partir do Arduino (5V e GND). Especificamente no UNO, o pino SDA vai ao A4 e o pino SCL vai ao A5. Apenas isso. No Digispark (utilizado nesse artigo) você deve colocar SCL ao P2 e SDA ao P0.

Biblioteca

Recomendo enfaticamente que utilize o módulo "Adafruit LiquidCrystal" que é um fork da LiquidCrystal, mas com sorte a Attiny85. Está entendendo? O Attiny85 também tem a capacidade de utilizar esse display! Para instalá-la, abra o Library Manager da IDE do Arduino e procure simplesmente por "liquid", já deve aparecer na segunda linha.

Código

Comece pelos exemplos, isso já lhe dará toda a noção do que você pode fazer com esse display. Um exemplo modificado:

//#define DEBUG
#include <TinyWireM.h>                  
#include <LiquidCrystal_I2C.h>           

#define GPIO_ADDR     0x3F   


LiquidCrystal_I2C lcd(GPIO_ADDR,16,2); 


void setup(){
  TinyWireM.begin();                  
  lcd.init();                         
  lcd.backlight();                    

  // Define colunas e linhas 
  lcd.begin(16, 2);

  //coloca o cursor na coluna 1 primeira linha
  lcd.setCursor(1, 0);
  lcd.print("Manual do Maker");

  //Coloca o cursor na coluna 0 e segunda linha:
  lcd.setCursor(0, 1);
  lcd.print("AutoCoreRobotica");
}


void loop(){

}

Mais fácil que isso? Só olhando pra esse display em máquinas de servir bebidas quentes!

 

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.