LiquidCrystal.h

LiquidCrystal.h e seus métodos:

Essa página é um resumo dos métodos da biblioteca LiquidCrystal.h. Antes de entrarmos no assunto, saiba, caro leitor, que sua presença em meu site é motivo de orgulho e satistação. Sinta-se à vontade para ler, comentar e propor melhorias no texto. Um grande abraço e boa leitura!

O header dessa biblioteca pode ser consultado -> clicando aqui <- e a fonte pode ser consultada -> clicando aqui <-.

Todos exemplos nessa página consideram que o objeto lcd foi instanciado a partir da classe LiquidCrystal.

Se você curtir esse artigo, não esqueça de dar uns cliques nos anúncios para ver o que os anunciantes tem para te oferecer. Vou ficar muito contente.

Instanciando o objeto lcd para comandar um display.

O instanciamento da classe deve ocorrer de acordo com a configuração de hardware adotada para o display.

Caso queira verificar os quatro exemplos possíveis de configuração de hardware para ligar o LCD, basta consultar meu artigo: “Ligando o LCD no Arduino – 4 e 8 bits“.

Instanciando o display modo 8bits, modo Read e Write:

LiquidCrystal lcd( pino_rs, pino_rw, pino_enable, d0, d1, d2, d3, d4, d5, d6, d7);

Instanciando o display modo 8bits, modo Write:

LiquidCrystal lcd( pino_rs,          pino_enable, d0, d1, d2, d3, d4, d5, d6, d7);

Instanciando o display modo 4bits, modo Read e Write:

LiquidCrystal lcd( pino_rs, pino_rw, pino_enable, d0, d1, d2, d3);

Instanciando o display modo 4bits, modo Write:

LiquidCrystal lcd( pino_rs,          pino_enable, d0, d1, d2, d3);

**********************************************************

Inicializando o display:

Este método é chamado automaticamente quando o display é instanciado. Serve para definir a pinagem e o modo de operação do objeto instanciado. Só vale a pena invocar manualmente esse método se você souber exatamente o que está fazendo.

lcd.init(fourbitmode, pino_rs, pino_rw, pino_enable, d0, d1, d2, d3, d4, d5, d6, d7);

fourbitmode = 1: modo 4 bits
fourbitmode = 0: modo 8 bits
pino_rw = 255: modo de escrita
pino_rw = nr do pino do Arduino: modo de leitura e escrita.
Demais parâmetros: número dos pinos do Arduino.
**********************************************************

Configurando o display:

Este método define a configuração do display como quantas colunas e linhas tem o display, assim como o tamanho de sua matriz de pontos (5X8 ou 5X10).

lcd.begin(colunas,linhas,tamanho_display);

colunas = nr de colunas que tem no display.
linhas = nr de linhas que tem no display.

Tamanho_display:
0x00 se for display com matriz de 5X8 pontos.
0x04 se for display com matriz de 5×10 pontos.
**********************************************************

Comandos idiotas:

São comandos simples que não precisam de argumentos.

Direto ao ponto: Talvez seja melhor testar os comandos da tabela abaixo montando um pequeno programa.

ComandoFunção
lcd.clear();
Limpa a tela. É o mesmo que “lcd.setCursor(0,0)”.
lcd.noDisplay();
Desliga o display.
lcd.display();
Liga o display.
lcd.noCursor();
Desliga o cursor.
lcd.cursor();
Liga o cursor.
lcd.noBlink();
Para de piscar o cursor.
lcd.blink();
Pisca o cursor.
lcd.scrollDisplayLeft();
Scroll para esquerda.
lcd.scrollDisplayRight();
Scroll para direita.
lcd.leftToRight();
Texto desloca da esquerda para direita.
lcd.rightToLeft();
Texto deslocando da direita para esquerda.
lcd.noAutoscroll();
Desliga autoscroll.
lcd.autoscroll();
Liga autoscroll.

**********************************************************

Posicionando o cursor no display:

A melhor forma de entender como funciona o posicionamento do cursor no display é estudando o manual do fabricante, na fonte. Nesse link -> aqui <- você tem tudo o necessário para dominar o assunto. Leia os itens 2.5 e 2.6 em particular.

A descrição a seguir é para o caso particular do meu display, de 20 caracteres por 4 linhas e como dito anteriormente, consulte nesse link -> aqui <- para ver como funciona o mapeamento do seu display em particular.

Sem detalhar o funcionamento da memória Display Data RAM (DD RAM), podemos dizer que o display de 4 linhas X 20 caracteres é entrelaçado, como se fossem dois displays de 40 caracteres, cortados ao meio e intercalados, um abaixo do outro.

A biblioteca LiquidCrystal faz o mapeamento do display 20X4 no formato (coluna, linha) conforme indicado na figura 1 abaixo:

Figura 1: Mapeamento do display 20X4

O cursor é posicionado pelo comando:

lcd.setCursor(coluna, linha)

Sendo que as colunas são acessadas conforme mostrado na figura 1 e abaixo:

  • Primeira linha vai de: (0,0), (1,0), (2,0) … (19,0)
  • Segunda linha vai de: (0,1), (1,1), (2,1) … (19, 1)
  • Terceira linha: (20, 0), (21, 0), (22, 0) … (39, 0)
  • Quarta linha: (20, 1), (21, 1), (22, 1) … (39, 1)

Exemplificando:

ComandoCursor se posiciona na:
lcd.setCursor(7,0);
Primeira linha, oitava coluna
lcd.setCursor(0,1);
Segunda linha, primeira coluna
lcd.setCursor(38,0);
Terceira linha, penúltima coluna
lcd.setCursor(31,1);
Quarta linha, décima segunda coluna

**********************************************************

Customizando caracteres:

O mapa de um caractere é uma matriz de 5 por oito elementos. Essa matriz, o caractere, é representada por um array de inteiro de 8 bits contendo 8 elementos. Cada elemento do array descreve o desenho de uma linha horizontal do caractere.

Para entender mais sobre o formato de um caractere, basta consultar a fonte dessa informação que pode ser vista no iten 2.8 e tabela 3 desse manual -> aqui <-.

O método createChar permite carregar na CG RAM (Character Generator RAM) até 8 caracteres personalizados.

Esse método precisa de dois argumentos: a posição de memória (que vai de 0 a 7) e o mapa de caractere charmap.

lcd.createChar(posição da memória, mapa de caractere);

charmap[0] é o topo do caractere, charmap [7] é a parte inferior do caracter.

Desenhe seu próprio caractere:

Para desenhar seu próprio caractere, basta clicar nos pixels do display que o script faz a conta.

**********************************************************

Enviando comandos e escrevendo direto no módulo LCD:

É possível enviar uma série de comandos de controle e escrita para o display utilizando o método ‘command’.

lcd.command(valor);
lcd.write(dados);

Os comandos, no geral fazem com que o display execute uma função como apagar o display, piscar o cursor e etc, agindo diretamente no hardware. Esses comandos são acionados pelo método ‘command’. A diferença aqui, é que o programador tem a responsabilidade de montar o próprio comando e controlar sua execução. As funções abordadas nos tópicos anteriores fazem isso em suas respectivas implementações.

O método ‘command’ também permite a operação de escrita na CG RAM e na DD RAM, que é finalizado com o método ‘write’.

O comando Write Data é realizado em duas etapas. Primeiro tem que setar o endereço CG RAM ou o DD RAM usando o método ‘command’ para depois fazer a operação de escrita utilizando o método ‘write’, conforme exemplo abaixo.

//Setando o endereço da DD RAM (Display Data RAM)
lcd.command(0x82);
//Escrevendo na DD RAM
lcd.write(0x41);

No exemplo acima é escrita a letra “A” na terceira posição do display.

De acordo com esse link -> aqui <-, na página 47 – tabela 4 do manual do fabricante, estão detalhados todos os comandos possíveis de se enviar ao display, lembrando que os comandos para leitura do conteúdo da CG RAM, DD RAM, BUSY FLAG, Address Counter não estão implementados nessa versão da biblioteca LiquidCrystal.
**********************************************************

By Renato de Pierri

06/Janeiro/2017

Last updated by at .

Deixe um comentário