O próximo circuito entra na categoria de curiosidade e também de aprendizado, pois ninguém em sã consciência dispensará microcontroladores para esta função. Mas observe que a lógica é a mesma, apenas em velocidade milhões de vezes menor.
O função principal de um display 16×2 é exibir caracteres, letras e números de maneira nítida e clara, fornecendo informações importantes para o programador. É utilizado quando o usuário precisa de uma resposta visual, que possa indicar o funcionamento da configuração realizada.
É um componente acionado , via de regra, por microcontroladores . Mas aqui vamos pensar fora da caixa e dispensar programação.
Para exemplo e maior simplicidade, escreveremos somente a palavra " OLA!!!"
Pode ser ampliado para mais palavras e mais linhas, mas aí certamente tornaria inviável em relação aos circuitos convencionais ( com microcontrolador).
Primeiro vamos dar uma olhada em um display lcd 16 x 2 comum (16 colunas por 2 linhas) e ver mais de perto suas conexões:
Veja a numeração, começando pelo pino 1 (primeiro à esquerda ) e finalizando no 16 (K do led ).
Pino 1 - VSS ( Gnd ): Conexão de terra (negativo).
Pino 2 - VDD ( Vcc ): Alimentação positiva (5V).
Pino 3 - Vee 0u VO (Contraste): Controle de contraste do display. Geralmente é usado um trimpot ,mas vamos usar um resistor de 3K3 que vai servir .
Pino 4 - RS (Register Select): Seleção de registro; controla se os dados enviados serão interpretados como instruções (como posicionamento do cursor) ou como dados a serem exibidos. Se estiver em nível 0 serão executadas as instruções . Se estiver em nível 1, serão exibidos os dados.
Pino 5 - RW (Read/Write): Leitura/Escrita; determina a direção da transferência de dados (leitura ou escrita). Vamos deixar conectado ao Gnd pois vamos só escrever.
Pino 6 - EN (Enable): Sinal de habilitação; usado para latching dos dados enviados.
Pinos 7 até 14. D0-D7 (Data Pins): Linhas de dados bidirecionais, usadas para enviar comandos e dados ao display.
Os dois últimos pinos são para a iluminação de fundo (backlight):
Pino 15 -A (Anode): Anodo do led de backlight ( positivo ).
Pino 16 -K (Cathode): Cátodo do led do backlight (negativo).
Dito isso, passemos ao circuito ( Clique em cima para ampliar):
Para saber como os caracteres são mostrados precisamos conhecer a tabela ASCII. A tabela ASCII (American Standard Code for Information Interchange) é um conjunto de códigos que representa caracteres alfanuméricos, sinais de pontuação, símbolos especiais e caracteres de controle. Cada caractere na tabela ASCII é atribuído a um número inteiro entre 0 e 127 (ou 0x00 a 0x7F em notação hexadecimal).
Como exemplo, veja abaixo a tabela ASCII para as letras do alfabeto maiúsculo:
Ou seja, para escrever a letra L no display, precisamos inserir a seguinte numeração binária nos Data Pins:
D0 = 0
D1 = 0
D2 = 1
D3 = 1
D4 = 0
D5 = 0
D6 = 1
D7 = 0
E também que o pino RS esteja em 1.
Agora podemos comentar o circuito.
Uma das 6 portas do cd40106 envia pulsos de clock ao pino 14 do cd4017. Este por sua vez vai positivando as suas saídas na seguinte ordem : pino 3 , pino 2, pino 4, pino7 e pino 10 . Quando o pino 10 vai ao nível 1 ele positiva o pino 13 congelando a contagem .
Veja que a contagem incrementa a cada subida do sinal de clock. Quando ocorre a descida do sinal de clock ela é usada para gerar o sinal de comando para o "Enable" do display, que desta forma libera os dados para serem apresentados no display.
Assim que o circuito é alimentado, o pino 15 do 4017 é resetado( via rede RC) e o pino 3 vai a nível alto. Neste momento o transistor aciona e envia 5 V, via diodos, aos pinos D0 a D3. Como neste momento o pino RS está em zero ´, o comando é interpretado como uma instrução. Neste caso a instrução é para que o cursor comece a piscar na primeira posição do display. Ficaria assim:
D0 = 1
D1 = 1
D2 = 1
D3 = 1
D4 = 0
D5 = 0
D6 = 0
D7 = 0
RS = 0 (instrução de inicialização para o display)
Quando ocorrer a descida do sinal de clock o " Enable" habilita o comando e o cursor começa a piscar.
No próximo sinal de clock, o 4017 incrementa uma posição e o pino 2 é que vai ao nível alto.
Neste ponto D0 a D3 continua em nível alto ( via diodo ligado ao pino 2 ) , mas o nível alto do pino 2 aciona um flip flop formado por duas portas do 40106 . Desta forma a saída do flip flop vai a nível alto, fazendo com que o pino RS também fique em nível alto. Agora temos a seguinte situação:
D0 = 1
D1 = 1
D2 = 1
D3 = 1
D4 = 0
D5 = 0
D6 = 1
D7 = 0
RS = 1 ( comando para exibição no display)
Verifique na tabela que esta sequencia ( de D0 a D7 ) corresponde ao " O " . Na próxima descida do sinal de clock, o pino Enable habilita os dados, que neste caso é um comando porque RS está em 1.
Neste momento aparece a Letra "O" no display.
Tudo ocorre igual nas próximas sequencias, só vão mudando quais os dados que são habilitados e consequentemente as letras mostradas. Assim o pino 7 alto , injeta 1 em D0 indicando a letra "L" .
Quando a saída chega ao pino 10, as dados são congelados ( via pino 13) na posição binária de " ! " , assim a cada descida do clock , o ponto de exclamação vai sendo exibido até a última posição do display, já que não muda mais a combinação.
Sei que as explicações foram rasas. Se não entendeu, procure fontes mais confiáveis que eu, estude bastante e verá que parece complexo , mas não é .
Veja o vídeo funcionando:
Nenhum comentário:
Postar um comentário