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.
Sinal | Display | Arduino |
Vss | 1 | GND |
Vdd | 2 | +5V |
V0 | 3 | * |
RS | 4 | D12 |
R/W | 5 | GND |
E | 6 | D11 |
DB4 | 11 | D5 |
DB5 | 12 | D4 |
DB6 | 13 | D3 |
DB7 | 14 | D2 |
* 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:
Postar um comentário