Franzininho WiFi: Explorando o display LCD com uma biblioteca própria

Neste artigo será apresentado o funcionamento de um dos periféricos mais populares, o Display LCD da Hitachi, modelo HD44780. Esse dispositivo devolve ao usuário um feedback visual  das rotinas programadas. Um exemplo de aplicação é o relógio digital, nele há telas para mudar hora, data e selecionar alarmes, tudo isso é possível por meio do display, o qual permite navegar entre cada funcionalidade.

Vamos explorar alguns recursos e configurações deste  dispositivo (escrita de dados e modo de operação), a fim de compreender como a bibliotecas externas (por exemplo, LiquidCrystal.h) operam na plataforma Arduino. Outro objetivo ao escolher este tipo de display foi pelo baixo nível de complexidade tanto em software quanto em hardware, visto que para utilizá-lo é necessário apenas algumas GPIOs disponíveis na placa Franzininho WiFi.

Ao final do artigo estaremos preparados para operar e desenvolver projetos utilizando o display com uma biblioteca própria, além de dominar técnicas e recursos da linguagem C. 

Recursos Necessários

Os materiais necessários para realizar esse exemplo são:

  • Placa Franzininho WiFi;
  • Protoboard;
  • Display LCD 16×2 (Hitachi HD44780 LCD);
  • Cabos Jumpers (Macho – Macho);
  • Trimpot 10k ohm
  • Computador com Arduino IDE instalado e configurado.

Esquemático

Na montagem do projeto é necessário organização ao reproduzir o circuito em protoboard, sempre  observando com cuidado  as conexões e a sequência de pinos entre o Franzininho WiFi e o Display LCD (Figura 1).  No pino definido com R/W deve-se ter um cuidado especial, pois quando colocado no GND o circuito habilita o display no modo escrita dados, porém deixaremos para falar mais sobre na próxima sessão. 

Abaixo segue a montagem proposta para nosso exemplo com o LCD 16×2.

LCD
Figura 1 – Esquemático Franzininho WiFi conectado ao Display LCD

LCD
Figura 2- Pinos de saída do Display LCD

Desenvolvimento de aplicação com LCD

O Controlador Hitachi HD44780 LCD é um display alfanumérico de Cristal Líquido, comumente comercializado como display LCD, o qual possui variações de tamanho no mercado (16×2, 20×2 ou 20×4) e com diferentes propostas de aplicações. O modelo utilizado neste artigo é o 16 x 2 (dezesseis colunas por duas linhas) com impressão de textos monocromáticos, com luz de fundo (backlight) ajustável podendo ser ou azul ou verde. Outra característica deste dispositivo está na identificação de diferentes padrões de caracteres como: ASCII, mandarim (Chinês) e Kana. Com tantos recursos em um único dispositivo é importante entender seu funcionamento e como comunicar-se por comandos usando os microcontroladores. 

O display LCD pode operar em dois modos: 8 bits ou 4 bits, no modo oito bits utilizam-se os pinos numerados de DB0 a DB7, o qual estão dispostos do menos significativo ao mais significativo, ou seja,  os oito bits correspondentes ao modo de operação são os oito pinos físicos do hardware que funcionam em conjunto com os pinos de controle (EN e RS). Uma desvantagem deste modo é a exigência de 10  GPIOs da placa, em contrapartida, a velocidade de envio de dados demanda  apenas um ciclo, ou seja, a mudança entre nível lógico baixo para nível lógico alto ou transição por borda de subida no pino definido como Enable. Já no modo quatro bits os pinos utilizados são definidos de  DB4 a DB7 formam uma topologia mais enxuta e adaptável às placas de desenvolvimento que não possuem tantos pinos a disposição como, por exemplo, a placa Franzininho DIY. Por outro lado, neste modo  exige-se  dois ciclos para a escrita de dados e comandos.

Após definir e entender a configuração do hardware (modo 4 bits)  podemos partir  para o processo de inicialização do dispositivo e escrita de dados, em outras palavras  definir os trens de bits ordenados para realizar um comando ou impressão de caracteres na tela. Para melhor compreensão observamos as recomendações do fabricante e seguiremos  o fluxograma proposto (Figura 3). Logo em seguida deixaremos de maneira mais explícita o passo a passo de configuração.

LCD
Figura 3 – Fluxograma Proposto pelo Fabricante

  1. Aguarda-se em torno de 45 milissegundos ao ligar o dispositivo
  2. Envia-se três vezes o comando 0x03 (LCD_Inicializar) no intervalo de 4.1 milissegundos, 4.1 milissegundos  e 150 milissegundos  
  3. Envia comando de cursor para home
  4. Aguarda mais 1 milissegundo
  5. Envia três comandos (Limpar Tela, Configurar Modo 4 bits) 
  6. Pronto, display inicializado e configurado

Conhecendo a sequência de passos, os procedimentos necessários para comunicação entre o display e a placa Franzininho WiFi, agora compreenderemos como os dados serão dispostos dentro da nossa aplicação e quais os responsáveis pelo controle de fluxo. Além dos quatros pinos conectados à nossa placa, há mais dois pinos de controle (Enable e RS). Estes têm o objetivo de fazer o chaveamento (Figura 4) entre os comandos, por exemplo, limpar tela, cursor em home, e as impressões de caracteres na tela. Caso deseje explorar mais a fundo outras funcionalidades pode encontrar mais informações acessando as referências.

LCD
Figura 4 – Exemplo de envio de dados entre o microcontrolador e o Display

 Código

O código exemplo desenvolvido possui uma estrutura simples e direta. Para instalar a biblioteca na IDE do Arduino, deve-se acessar Ferramentas (Tools)  > Gerenciar  Bibliotecas. Será aberta uma janela (Figura 5) que irá carregar os índices  e atualizado algumas bibliotecas já presentes.  Ao finalizar, insira no campo de texto o nome  Franzininho e logo será carregado a biblioteca para instalação (Figura 6)  e clique em instalar. 

Figura 5 – Janela do Gerenciador de Biblioteca

LCD
Figura 6 – Instalando a biblioteca

Após a instalação, acesse Arquivos > Exemplos > Franzininho_LiquidCrystal > HelloFranzininhoWiFi. 

Figura 7 – Abrir exemplo HelloFranzininhoWiFi

Segue abaixo o código exemplo comentado anteriormente. Caso ainda não tenha configurado o Arduino IDE no seu computador ou tenha dúvidas sobre as ferramentas, acesse o tutorial de instalação na documentação da Franzininho.

Resultados Finais

Após realizar a inclusão da biblioteca, a próxima etapa é a compilação do código e envio para a placa Franzininho WiFi. Segue a imagem abaixo de como deve ser a saída de dados na IDE do Arduino (Figura 8).

Figura 8 – Compilação e envio do código

O resultado do projeto deve ser semelhante à Figura 9, caso não ocorra revise as conexões e as GPIOs e ajuste o contraste para ser visível a leitura dos caracteres. Sugerimos fortemente que altere o código para interagir com outros periféricos  ou criar interfaces de controles.

LCD
Figura 9 – Resultado do projeto

Agradecimento

Deixo o agradecimento ao Fábio Souza, Diana Santos e a toda comunidade Franzininho pelo suporte e incentivo constante. 

Referências 

Acessado em: https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

Acessado em: https://dqsoft.blogspot.com/2013/03/lcd-alfanumerico-2×16-parte-2.html

Acessado em: https://www.embarcados.com.br/modulo-de-display-lcd/

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Home » Arduino » Franzininho WiFi: Explorando o display LCD com uma biblioteca própria
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu