sexta-feira, abril 04, 2025

Display LCD de 3 Dígitos

Este display é bastante pequeno (11,5 x 6,3 mm)  e encontrável na AliExpress em pacotes de cinco unidade (por preço baixo). Entretanto o seu uso conectando diretamente a GPIOs de um microcontrolador não é trivial.


A primeira coisa a destacar é um segmento LCD acende* ao ter uma diferença de potencial (tensão) entre os seus terminais, em qualquer sentido. Entretanto ele deteriora se a diferença manter indefinidamente o mesmo sentido.

* para ser mais preciso, um segmento pode ser transparente ou opaco. O que eu chamo aqui de "aceso" é quando ele está opaco e aparece escuro.

No caso de um segmento não multiplexado, a solução é ficar alternando periodicamente o sentido para que a média seja zero. Uma forma simples de fazer isso é aplicar uma onda quadrada em um dos terminais. Para deixar o segmento apagado, basta colocar a mesma onda na outra extremidade (a diferença será sempre zero). Para acender, deve-se colocar o inverso da onda na outra extremidade (a diferença será sempre igual à amplitude da onda, mas a média será zero).

A coisa fica mais complicada quando temos multiplexação. No caso do display em questão, temos quatro terminais "comuns" e seis terminais ligados a vários segmentos:

Para conseguir controlar individualmente cada segmento é preciso criar um terceiro nível de tensão nos terminais comum. Este terceiro nível fica entre o nível alto e baixo e não é suficiente para acender o segmento. Como gerar este terceiro nível com uma saída digital? Chaveamos o pino para ser uma entrada e usamos dois resistores iguais , um para a alimentação e outro para terra, para obter a tensão desejada.

No lado do software, é preciso criar sinais periódicos onde cada período é dividido em 8 fases. O nível em cada uma das quatro últimas fases é o inverso do nível nas quatro primeiras fases, garantindo um nível zero na média.

Nos pinos comuns, o nível só fica alto ou baixo em duas das oitos fases, permanecendo no nível intermediário nas demais. Para acender um segmento, o pico correspondente precisa estar com o nível oposto ao do comum nas fases em que o comum é acionado:


Um exemplo completo, usando a Raspberry Pi Pico, pode ser visto em https://github.com/dquadros/demos_curtos. No meu canal do YouTube tem um vídeo onde mostro como o código funciona, 

Referências:


Nenhum comentário: