15 - Aplicação: Display LCD de caracter

Os displays LCD representam uma forma prática e de baixo custo para exibir informações. Há diversos tipos de displays como os de caracter, gráficos, TFT, OLED, entre outros. Neste tópico será abordado o de caracter, que são os mais simples e baratos.

Os displays de caracter são diferenciados pelo número de linhas, colunas, cor, dimensões e se têm ou não backlight. Os displays com o recurso de backlight ou luz de fundo são particularmente úteis em ambientes escuros.

Nas figuras abaixo temos alguns exemplos de displays:




display 8x2 (8 colunas e 2 linhas) display 16x1 (16 colunas e 1 linha)


Independentemente de seu formato, os displays de caracter são programados de uma forma padronizada. Isto é possível graças à aderência dos fabricantes ao controlador HD44780, o qual é responsável pelo troca de informações do display com o mundo exterior.

Os displays apresentam os seguintes pinos:
  • VSS :  0V (terra)
  • VDD ou VCC : 3.3V ou 5V (valores típicos)
  • Vo ou Ve : tensão de contraste
  • RS : pino de seleção de envio de comando ou dados
  • R/W : pino de leitura ou escrita de dados
  • E : abilita o display para leitura/escrita
  • D0~D7 : 8 pinos de dados
  • Backlight Anodo : 3.3V ou 5V (valores típicos)
  • Backlight Catodo : 0V (terra)
Na figura abaixo é visualizada a pinagem de um display 16x2 com backlight:


O ambiente arduino disponibiliza a biblioteca LiquidCrystal que facilita a programação de módulos de displays LCD. Esta biblioteca já acompanha o ambiente, sendo disponibilizados exemplos de sua utilização em File-->Examples-->LiquidCrystal.

Para testar um display 16x2 que opera em 5V, similar ao da figura acima, conecte-o à sua placa arduino conforme o diagrama abaixo:

Para realizar um teste preliminar de funcionamento do display, varie o potenciômetro de 10k ohms até que se observe uma barra horizontal conforme a figura abaixo:



Em seguida, carregue o programa abaixo para visualizar a mensagem "teste de LCD" no display e uma contagem de tempo em segundos:

#include <LiquidCrystal.h>

// inicia a biblioteca

// LiquidCrystal lcd(RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // lcd com 16 colunas e 2 linhas
  lcd.begin(16, 2);
  // envia mensagem para o LCD.
  lcd.print("teste de LCD");
}

void loop() {
  // coloca o cursor na coluna 0 e linha 1

  lcd.setCursor(0, 1);
  // envia o tempo em segundos para o LCD
  lcd.print(millis()/1000);
}


O backlight é formado por leds ligados em série. Por estes leds recai uma tensão e corrente típica que são informados pelo datasheet do display. Na figura abaixo é exibido como esta informação é fornecida e como o backlight é energizado:

datasheetcircuito energização

Neste caso, para uma tensão típica de 4.1V e corrente de 120mA, seria necessário utilizar um resistor limitador de corrente () dado por:



Vale observar que podem ser utilizados outros valores de tensão, além de 5V, para alimentar o backlight. Para tanto,  basta ajustar de forma que a corrente não supere os 120mA especificados pelo datasheet.

2 comentários:

  1. Posso usar um potenciômetro de 100 K ?

    ResponderExcluir
  2. Pode usar, contudo, tem que tomar cuidado para não alterar a sua resistência para um valor muito baixo que geraria uma corrente no display mais elevada que a recomendável no datasheet.

    ResponderExcluir