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:
- https://pmdway.com/products/tiny-3-digit-7-segment-lcd-module-3-pack - algumas informações técnicas
- https://www.youtube.com/watch?v=ZP0KxZl5N2o - explicação detalhada sobre como acionar LCDs não multiplexados
- https://focuslcds.com/journals/application-notes/driving-multiplexed-segment-lcds - uma breve explicação sobre como acionar LCDs
- https://www.st.com/resource/en/application_note/an1447-software-driver-for-4multiplexed-lcd-with-a-standard-st62-stmicroelectronics.pdf - Nota de aplicação da ST com detalhes sobre como conduzir LCDs multiplexados com código de exemplo.
Nenhum comentário:
Postar um comentário