quinta-feira, março 28, 2013

LCD Alfanumérico 2x16 - Parte 3

Nesta parte final, vamos conectar um display a um Arduino para exercitar as instruções que vimos na parte anterior.


A Montagem

A ligação é bastante simples, eu usei um Arduino Nano mas nada impede de usar um outro modelo qualquer. Dependendo do modelo do display a pinagem pode ser diferente. Além do Arduino e do display é necessário apenas um potenciômetro de 10K (você pode tentar substituir por um resistor fixo, mas o valor vai depender do display usado). Conectei ao Arduino somente os sinais RS, E e D4 a D7, que é o mínimo para conexão direta do display.

SinalDisplayArduino
Vss1GND
Vdd2+5V
V03*
RS4D12
R/W5GND
E6D11
DB411D5
DB512D4
DB613D3
DB714D2

* O sinal V0 é obtido do centro do potenciômetro de 10K. Os extremos do potenciômetros devem ser ligados a GND e +5V.

O Software

A IDE do Arduino vem com um biblioteca para controle de displays LCD alfanuméricos. Entretanto, preferi escrever um código simplificado para ter acesso às rotinas de baixo nível e ficar mais fácil de entender o funcionamento. Aproveitei a lógica de receber comandos pela serial dos meus testes com o display JY-LKM1638.

O software esta nos arquivos do blog, com o nome de TesteLCDArduino.zip.

Alguns Experimentos

As figuras abaixo mostram o display à medida em que uma sequência de comandos e dados é enviada (clique para ampliar). Como o cursor estava piscando, nem sempre a câmera conseguiu pegá-lo por completo.

Após o reset.
Posiciona o cursor na segunda linha: CC0;
Preenche a segunda linha: D30313233343536373839414243444546;
Volta cursor para o início: C02;
Coloca o cursor no final da primeira linha e seleciona decremento: C8F04;
Escreve alguns caracteres: D555453;
Liga deslocamento da tela: C05;
Escreve alguns caracteres: D303132;
Desloca o display três posições para a esquerda: C181818;
Move o cursor duas posições para a direita: C1414;
Desliga deslocamento e volta a incrementar: C06;Define o caracter 00: C40; D0E11151515110E00;
Obs.: o cursor se movimenta no display
Coloca o novo caracter no início da segunda linha: CC0; D00;

Nenhum comentário: