Estava aqui observando os meus posts usando display LCD 16×2 e notei uma coisa: todos os circuitos usam os pinos D4, D5, D6 e D7 do display, mas nenhum usa os pinos D0, D1, D2 e D3. Se o display funciona corretamente, pra que servem esses pinos, afinal ?

Esse tipo de display pode funcionar em modo 4 bits (usando 4 pinos), ou no modo 8 bits, usando todos os pinos de dados. Certamente quem usa o Arduino Uno e outras placas Arduino menores precisa economizar portas, especialmente se for ligar, ao mesmo tempo, o display e vários sensores.

“Teoricamente” (prestem atenção às aspas),  se você necessita de uma taxa de atualização mais eficiente do display e não vai utilizar tantos sensores, pode utilizar o modo de 8 bits e observar um ganho de performance no LCD.

Conexão do display LCD 16×2 em modo 8 bits

Para tentar observar isso, liguei um display com o controlador HD44780 na protoboard, utilizando 8 pinos, e rodei o programa exemplo que vem junto com a biblioteca Liquid Crystal, chamado Autoscroll. Para a montagem do circuito,  utilizei a tabela abaixo:

Ligacao LCD HD44780 - Modo 8 bits

Seguindo a tabela acima, temos a seguinte conexão com uma placa Arduino Uno:

Circuito ligacao LCD 16x2 HD44780 - Modo 8 bits

O comando LiquidCrystal tem a seguinte sintaxe se você for usar o display no modo 4 bits:

LiquidCrystal(rs, enable, d4, d5, d6, d7)

Já no modo 8 bits, basta acrescentar os pinos referentes ao D0, D1, D2 e D3 do display:

LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Então no programa eu coloquei os dois comandos, e você mesmo pode comentar uma linha ou outra. Teste os dois modos e veja se para você faz alguma diferença:

// Programa: Teste LCD 16x2 em modo 8 bits
// Autor: Arduino e Cia

// include the library code:  
#include <LiquidCrystal.h>  
   
//Habilite a linha abaixo se for usar o display no modo 4 bits  
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Modo 4 bits  
   
//Habilite a linha abaixo se for usar o display no modo 8 bits  
LiquidCrystal lcd(12, 11, 6, 7, 8, 9, 5, 4, 3, 2); //Modo 8 bits  
   
   
void setup() 
{  
  // set up the LCD's number of columns and rows:   
  lcd.begin(16,2);  
}  
   
void loop() 
{  
  // set the cursor to (0,0):  
  lcd.setCursor(0, 0);  
  // print from 0 to 9:  
  for (int thisChar = 0; thisChar < 10; thisChar++) {  
   lcd.print(thisChar);  
   delay(500);  
  }  
   
  // set the cursor to (16,1):  
  lcd.setCursor(16,1);  
  // set the display to automatically scroll:  
  lcd.autoscroll();  
  // print from 0 to 9:  
  for (int thisChar = 0; thisChar < 10; thisChar++) {  
   lcd.print(thisChar);  
   delay(500);  
  }  
  // turn off automatic scrolling  
  lcd.noAutoscroll();  
    
  // clear screen for the next loop:  
  lcd.clear();  
}  

Faz diferença ? Na minha opinião, pouquíssima. A não ser que o seu programa exija muito do display, o que eu acho um pouco difícil. Em se tratando de um display basicamente para texto, não vale a pena gastar 4 pinos a mais do Arduino para usar o modo de 8 bits.

Vale o aprendizado e para usos futuros, quem sabe em outros displays.

Você fez o teste do display LCD 16×2 em modo 8 bits? Notou diferença? Compartilhe a sua opinião na área de comentários e confira outros posts usando displays aqui mesmo no Arduino e Cia!

4.8/5 - (58 votes)