Tinkercad e PQDB: Display LCD 16x2

Tinkercad e PQDB Display de 7 segmentos

Neste sketch será apresentado o funcionamento do display LCD compatível com HD44780 em modo de 4 bits utilizando as saídas do circuito integrado registrador de deslocamento.

 

Circuito com o LCD.
Figura 1: Circuito com o LCD.

 

Link para a simulação aqui.

 

Para configurar o LCD é necessário antes saber o que significa cada terminal.

 

Terminais do display.
Figura 2: Terminais do display.

 

  • GND e VCC são os pinos de alimentação;
  • VO regula o contraste;
  • RS seleciona entre entrada de comandos ou dados;
  • RW configura para leitura ou escrita (0V para escrita);
  • E habilita a captura de dados (clock);
  • DB0 até DB7 são os pinos de dados;
  • LED + e LED – são a alimentação do backlight.

 

Para comunicação utilizando apenas 4 das 8 portas de dados do display, as portas de DB4 até DB7 serão conectadas às portas Q4 até Q7 do registrador de deslocamento. RS e E conectadas às portas digitais do microcontrolador.

 

Esta tabela será utilizada para configuração do dispositivo e pode ser encontrada no seu datasheet.

 

Controle do LCD - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.
Figura 3: Controle do LCD - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.
Controle do LCD
Figura 4: Controle do LCD - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.

 

Ao inicializar o LCD, ele estará inicialmente operando no modo 8 bits. É necessário primeiro, utilizando a linha Config. da tabela, enviar os 4 bits mais significativos para chaveá-lo para o modo 4 bits, são eles 0b0100, em hexadecimal 0x02.

 

 

Código

 

Como discutido anteriormente, os valores a serem passados para os terminais de dados do display serão os bits mais significativos do registrador de deslocamento, tornando, então, necessárias funções que direcionem os dados para esses bits. São elas:

 

 

Uma vez chaveado para o modo de 4 bits, o display espera dois blocos de 4 bits de dados serem recebidos para executar o comando equivalente. A função lcdCmd(unsigned char data) coloca o terminal RS em nível baixo, caracterizando um comando, e faz com que os 8 bits (unsigned char data) referentes ao comando sejam divididos em duas parcelas de 4 bits e sejam transmitidos separadamente através do circuito integrado registrador de deslocamento, sendo o primeiro pacote os 4 bits mais significativos e o segundo pacote os 4 bits menos significativos. A função lcdData(unsigned char data) funciona da mesma maneira, porém coloca o terminal RS em nível alto, caracterizando um dado, o qual será impresso de acordo com a tabela ASCII.

 

Após definido o modo de comunicação entre o microcontrolador e o LCD, é necessário configurá-lo para dar início ao seu funcionamento. Isso é feito na função a seguir:

 

 

A função lcdInit() realiza as configurações necessárias enviando os comandos de acordo com a tabela mostrada anteriormente. Uma vez que todas as funções para manuseio do display foram definidas, é possível, agora, nas funções principais, fazer o teste das mesmas.

 

Os displays compatíveis com o HD44780 permitem a criação de 8 caracteres personalizados no formato binário e matricial de 8x5, armazenados a partir do endereço 0x40.

 

Para gerar uma imagem, podem ser seguidos os seguintes passos:

  • Criar uma imagem binária com o desenho desejado;
  • Segmentar a imagem em retângulos de 8x5;
  • Transcrever cada linha em binário/hexadecimal;
  • Gerar o código-fonte.

 

No exemplo da simulação foi usado o logo da Universidade Federal de Itajubá.

 

1 - Criar uma imagem binária com o desenho desejado

 

Desenho desejado
Figura 5: Desenho desejado - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.

 

2 - Segmentar a imagem em retângulos de 8x5

 

Imagem segmentada
Figura 6: Imagem segmentada - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.

 

3 - Transcrever cada linha em binário/hexadecimal

 

Imagem transcrita
Figura 7: Imagem transcrita - Prof. Rodrigo Almeida – UNIFEI – Programação embarcada.

 

4 – Gerar o código fonte

 

Obs.: Os caracteres gravados são impressos a partir do número 0, ou seja, o primeiro caractere é impresso utilizando o comando lcdData(0), o segundo lcdData(1), e assim sucessivamente.

 

 

Tinkercad e PQDB Display LCD - Resultado da simulação
Figura 8: Resultado da simulação.

 

 

Conclusão

 

Apesar de uma notável lentidão nas simulações com o aumento da complexidade dos circuitos, a plataforma Tinkercad mostrou-se uma poderosa ferramenta de simulação de circuitos digitais e analógicos, com impressionantes resultados quando analisado o poder de processamento necessário para reproduzir o funcionamento de diversos dispositivos, tais como o microcontrolador Arduino UNO R3, o circuito integrado 74HC595, o display LCD HD44780, sensores e componentes analógicos, LEDs, displays de 7 segmentos e infinitas outras possibilidades. Isso torna o Tinkercad uma ótima ferramenta para aqueles que não possuem os componentes em mãos, para os entusiastas e para todos que desejam aprender programação embarcada.

 

 

Saiba mais

 

Medindo temperatura e umidade com Arduino UNO utilizando Si7021 e LCD

STM32F0Discovery + LCD + Bluetooth

Raspberry Pi - Display LCD com Python

Outros artigos da série

<< Tinkercad e PQDB: Teclado matricial

NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

2
Deixe um comentário

avatar
 
1 Comment threads
1 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Thiago Pereira do PradoEder Angelo Soares Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Eder Angelo Soares
Visitante
Eder Angelo Soares