Tinkercad e PQDB: Display LCD 16×2

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 8×5, 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 8×5;
  • 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 8×5

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.

Todos os códigos podem ser acessados em meu GitHub.

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
Sem licença

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

Arduino » Tinkercad e PQDB: Display LCD 16x2
Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Eder Angelo Soares
Eder Angelo Soares
27/06/2018 20:07
Talvez você goste:

Séries



Outros da Série

Menu