Posso ligar esse LCD no Arduino?

Hoje eu tava revirando a gaveta de sucata e encontrei dois displays (HK111 94V0 e o L2432) que comprei há algum tempo para montar algum circuito que pudesse servir para alguma coisa em algum dia aí. Ou seja, típico componente do saco dos sonhos.

Qualquer estudante de eletrônica que revirou a R. Sta Ifigênia e arredores sabe do que estou falando.

Se você curtir esse artigo, não esqueça de dar uns cliques nos anúncios para ver o que os anunciantes tem para te oferecer. Vou ficar muito contente.

Se você curtir esse artigo, não esqueça de dar uns cliques nos anúncios para ver o que os anunciantes tem para te oferecer. Vou ficar muito contente.

Prensadão desse artigo, em vídeo:

A dificuldade:

Voltando aos displays, na verdade nem sei se eles estão funcionando, mas resolvi falar deles neste artigo para mostrar como podemos fazer para levantar as informações de conexão de um componente qualquer, no caso esses displays que tenho.

Se você preferir, posso dizer que achei dois displays LCD na sucata, eles não tem nenhuma documentação, não tenho a mínima ideia de como se faz para ligar eles e quero testar para ver se eles funcionam no Arduino.

Antes de sair programando, e isso vou tratar em outro artigo, o impulso natural seria revirar os fóruns de LCDs e de Arduino, o que eu já fiz e digo mais: O problema não é achar a informação de conexão do LCD ou do LCD com o Arduino, conforme segue na figura 1:

Figura 1: Conexão Arduino – LCD. Fonte: https://www.arduino.cc/en/Tutorial/HelloWorld
Pinagem do LCD

O problema, na verdade, é ter certeza de que esse diagrama de ligação acima é apropriado para os LCDs que tenho.

Na figura 2 abaixo você pode ver à esquerda, o display que normalmente aparece nos tutoriais do Arduino e à direita da foto estão os dois displays que tenho. Fisicamente são diferentes e isso pode ser sinal de dificuldades!

Figura 2: Comparação entre o display do tutorial e os que tenho.

Levantando as informações técnicas dos displays que tenho fica bem mais fácil diagnosticar falhas, conferir ligações e testar todos os componentes do sistema; sem precisar contar com fatores como orientações equivocadas de vendedores, ‘sorte’ ou ‘chutômetro’.

Repetindo: Embora eu esteja falando de como levantar dados de LCDs, o processo de análise, o processo de levantar informação que costumo usar e que estou compartilhando nesse artigo, pode ser adaptado em maior ou menor grau a qualquer componente ou aparelho que venha desprovido de sua documentação.

Debate: Caixa preta, Branca ou ICT?

Alguns podem dizer que estou abordando o processo da análise da caixa preta o que eu particularmente discordo. Como a proposta desse artigo é levantar os manuais dos componentes internos do módulo LCD e verificar se os diagramas de conexões batem com o módulo que tenho em mãos, acredito que o processo se aproximaria mais ou do método de análise da caixa branca, ou seria até mais apropriado dizer que se trata do método do teste no circuito – ICT ‘In Circuit Testing’, pois serão feitos alguns de testes de continuidade para assegurar que a documentação dos circuitos integrados do LCD seja de fato a utilizada pelo módulo LCD, permitindo que seja identificado com segurança a pinagem dos cabos de conexão desse módulo LCD.

ICT na indústria, para quem nunca viu:

Na indústria, o teste ICT dependendo do caso pode ser feito por robôs conforme abaixo. O analista faz a programação do robô indicando os pontos que devem ser testados. À medida que o robô faz as medições, ele vai comparando os resultados obtidos com o que foi programado, conseguindo identificar falhas na placa.

Deixe nos comentários a sua opnião se a análise que está sendo feita nesse artigo se encaixa mais no conceito de caixa preta, caixa branca, teste ICT ou qualquer outro e o motivo de sua escolha.

De volta ao LCD, o que será feito:

No caso desse artigo, a proposta é identificar os chips do display, levantar sua documentação, verificar o que fazem os principais componentes do LCD e utilizando o multímetro, procurar identificar os sinais de entrada e saída do módulo LCD e ver se ele pode ser utilizado com o Arduino.

Identificando o display

Analisando o display como um todo, encontrei o modelo dos mesmos, ‘HK111 94V0’ e ‘L2432’, conforme figura 3 abaixo.

Figura 3: Logo dos LCDs ‘HK11194V0’ e o ‘L2432’

Ao pesquisar na Internet, foram obtidos dois resultados diferentes. O ‘HK111 94V0’ não trouxe nenhum resultado e consegui o manual do ‘L2432’ -> nesse link aqui <-. Vou retornar à ele mais adiante.

Identificando os componentes do display

Como não encontrei nenhuma informação acerca do display ‘HK111 94V0’, parti para a identificação dos chips do display olhando sua serigrafia, conforme figura 4 abaixo:

Figura 4: Chip HK11194v0

Chip KS0063B

Encontrei ->nesse link aqui<- a documentação do chip KS0063B cujo título diz que se trata de um ‘Driver de segmento de 80 canais para LCD de matriz de pontos’, ou seja, esse chip é responsável por ligar e desligar os pontos do display LCD. Já na capa, conforme figura 5 abaixo, temos outras informações importantes como a tensão de alimentação e a informação de que o componente é um shift register com latch, configurado para acionar displays LCD e que seu controlador é o chip KS0066.

Figura 5: Capa do manual do chip KS0063B

Verificando as páginas do documento, sem ir a fundo no funcionamento do componente, lá na página 6 tem um diagrama em blocos chamado ‘Application Circuit’ transcrito na figura 6 abaixo:

Figura 6: KS0063B – Como usar o componente (Application circuit)

Observando o diagrama em blocos, dá para ver que o KS0063B serve para acionar o display LCD. O diagrama mostra dois KS0063B comandados pelo chip KS0066/U. Podemos reconhecer no circuito uma série de sinais de controle que saem do KS0066 (controller) e que vão para o KS0063 (driver).

Embora nada seja conclusivo ainda, informações começam a fazer sentido. Bom sinal. Vamos verificar o próximo componente.

Chip KS0066F00

Encontrei ->nesse link aqui<- e -> nesse link aqui <- duas versões da documentação do chip KS0066. Pegando como exemplo o primeiro link, já na primeira página dá para destacar algumas informações importantes:

  • O KS0066 é um controlador e driver de LCD de matriz de pontos.
  • Consegue controlar até 80 caracteres se usar com o KS0063 ou o KS0065B
  • Voltagem do circuito é 5Volts
  • É possível programar caracteres especiais
  • Possui uma interface que pode operar no modo de 4 ou 8 bits
  • Ainda na capa e figura 7 abaixo, tem uma tabela mostrando que a extensão ‘F00’ significa que o display consegue exibir o conjunto de caracteres em Inglês e em Japonês.
Figura 7: Capa do manual do chip KS0066

Basta virar a página do datasheet e podemos ver o diagrama em interno do KS0066, transcrita na figura 8 abaixo.

Figura 8: Diagrama em blocos do KS0066

E as demais páginas apresentam todas informações necessárias para usar esse componente.

Identificando os sinais de entrada e saída do módulo.

Agora vamos identificar por exclusão os sinais de entrada e saída do módulo LCD.

Primeiro vou identificar os sinais de controle interno do display.

Consultando o diagrama em blocos do chip KS0066 na figura 8, dá para ver que os sinais do lado direito do diagrama em blocos: ‘S1~S40’, ‘D’, ‘C1~C16’, ‘CLK1’, ‘CLK2’ e ‘M’ saem do chip KS0066 e vão direto para o chip KS0063B. Em caso de dúvidas, coloque lado a lado as figuras 6 e 8. Está tudo lá!

Consultando o diagrama em blocos do chip KS0066 na figura 8, dá para ver que sobraram os sinais do lado esquerdo:  ‘VDD’, ‘GND’, ‘V1 ~ V5’, ‘RW’, ‘RS’, ‘E’, ‘DB0 ~ DB7’, ‘OSC1’ e ‘OSC2’.

São 20 pinos. A partir desse ponto é necessário descobrir para que servem esses pinos. Basta consultar o manual do KS0066, no caso a página com a descrição da função dos pinos do chip, transcrita na figura 9 abaixo.

Figura 9: Descrição dos pinos do KS0066U

Complementando a tabela acima, o datasheet do chip KS0066 mostra a localização física dos pinos, que é o tal do encapsulamento, transcrito na figura 10 abaixo:

Figura 10: Configuração dos pinos do KS0066

Montando o mapa de conexão:

A partir desse ponto as coisas começam a ficar fáceis.

Temos a descrição da função de cada conexão e a localização dos pinos.

O próximo passo é fazer a medição de continuidade entre os pinos do chip KS0066 com os pinos de saída da placa para identificar quem é quem.

A tabela abaixo foi construida da seguinte forma:

  • Monta-se a pinagem do cabo LCD e seu nome nas duas primeiras linhas
  • Fez-se o teste de continuidade para confirmar se os sinais batiam com os do chip
Mapa de conexão

Deve-se ler a tabela de cima para baixo:

  • Pino 1 do cabo do LCD está ligado com o pino 23 do chip KS0066
  • Pino 2 do cabo do LCD está ligado com o pino 33 do chip KS0066
  • e assim por diante.

Como os dados nesse caso coincidiram, é possível que os programas para o Arduino funcionem sem alterações com esses displays também.

V1, V2, V3, V4 e V5, Clock e etc

No datasheet também estão disponíveis as demais informações sobre o funcionamento do módulo LCD como o processo de polarização do display, que consiste no cálculo do V1 ~ V5 (o potenciômetro do contraste liga no V5) e se o dispositivo utiliza clock interno, resonador cerâmico ou usa clock externo. Enfim, quase tudo o que for necessário para ligar o display está disponível nos datasheets apresentados.

Voltando ao módulo L2432.

Como você pode ver na figura 11 abaixo, esse módulo segue o mesmo princípio do módulo ‘HK111 94V0’, mas só possui 40 caracteres em 2 linhas, tanto que ele usa apenas um chip KS0063 e o módulo de controle e driver é o mesmo chip KS0066F00 usado no modelo ‘HK111 94V0’.

Figura 11: L2432 frente e verso

Note que o conector é de duas linhas, usa 14 pinos mas tem espaço para ir até o pino 16. Pinos 15 e 16 são para ligar o led do backlight. Como esse modelo não tem backlight, os pinos não são soldados, embora haja previsão no circuito impresso do módulo.

Como já estão levantadas todas informações, basta fazer a correspondência dos pinos do chip ‘KS0066F00’ com os pinos da placa, conforme executado para o módulo ‘HK111 94V0’. No caso a pinagem é a mesma.

Finalizando

Note que estamos olhando como o chip funciona. É o manual do chip e não o manual do módulo LCD, por isso são necessárias essas verificações.

Se tudo estiver batendo, há grande chance de se ligar a fiação, carregar o programa no Arduino e o display funcionar de prima.

Outro ponto importante é que não é necessário qualquer modificação no módulo LCD. O único propósito dessa verificação é identificar a pinagem do display, só isso, portanto não me vá sair soldando componentes do módulo LCD porque ‘parecem’ estar errados! Se a pinagem não bater é porque trata-se de outro LCD, de outro manual e você precisa se virar para achar a documentação correta.

Espero que a informação lhe ajude e qualquer divergência entre o que expliquei aqui e o que consta no datasheet, vale o datasheet. Lembrando que estou compartilhando observações pessoais e a decisão em utilizá-las em algum projeto corre por sua conta e risco.

By Renato de Pierri
25/Dezembro/2016

Last updated by at .

Deixe um comentário