Interface do modulo grafico LCD KS0108 com Arduino

Eletrônica

KS0108 GLCD ( O monitor de cristal líquido de gráficos ) refere-se a um módulo gráfico de LCD que utiliza o chip do controlador KS0108 para controlar o visor. Esse tipo de GLCD é comumente usado em vários projetos eletrônicos e sistemas embarcados para exibir gráficos, texto e outras informações.
Na verdade, o KS0108 recebeu o nome do circuito integrado do controlador ( IC ), que é o KS0108 projetado principalmente pela Samsung Electronics ( controlador KS0108B ). Aqui estão alguns recursos e informações importantes sobre os GLCDs baseados no controlador KS0108:

  • Resolução: O controlador KS0108 é frequentemente utilizado em ecrãs com uma resolução de 64×64, 128×64 ou 192×64 pixels, onde um controlador KS0108 pode controlar a parte de 64×64 pixels. Isso significa que ele pode controlar 64 colunas e 64 linhas de pixels. Um ecrã de 128×64 pixels contém dois controladores KS0108 e um ecrã com resolução de 192×64 pixels tem três controladores.
  • Comunicação: Ele normalmente se comunica com um microcontrolador ou microprocessador usando uma interface paralela com barramento de dados de 8 bits. Isso significa que ele requer várias linhas de dados e linhas de controle para enviar e receber comandos e dados para a exibição.
  • Capacidades Gráficas: O controlador KS0108 é adequado para exibir gráficos e texto. Ele nos permite definir pixels individuais ligados ou desligados, tornando possível desenhar linhas, formas e caracteres na tela.
  • Níveis de Tensão: O controlador KS0108 opera frequentemente em 5V, conectando-o com o microcontrolador 3.3V pode exigir o shifter do nível de tensão (conversor).
  • Controle de Contraste: Para ajustar o contraste do LCD, uma tensão de controle de contraste é geralmente aplicada a um de seus pinos. Isso permite tornar a tela mais ou menos legível com base nas condições de iluminação ambiente.
  • Luz de fundo: A maioria dos monitores que usam o controlador KS0108 também inclui uma luz de fundo LED para melhor visibilidade em condições de pouca luz.
  • Aplicações: Os monitores com o controlador KS0108 são comumente usados em sistemas embarcados, painéis de instrumentação e projetos eletrônicos DIY onde as informações gráficas precisam ser exibidas.

Interface de um módulo KS0108 GLCD com um sistema de microcontrolador, como um Arduino ou outra plataforma de microcontrolador, normalmente, precisaremos conectá-lo conectando os pinos apropriados aos nossos pinos GPIO microcontroladores e usando uma biblioteca ou driver adequado para se comunicar com a tela. Os LCDs KS0108 se comunicam com o sistema de microcontrolador usando uma interface paralela que requer vários pinos GPIO disponíveis (não usados).
O módulo KS0108 GLCD usado neste exemplo tem uma resolução de 128×64 pixels, é o mostrado abaixo:




Descrição do pino do módulo KS0108 GLCD (a numeração começa da direita para a esquerda):

  • VSS: Pino de conexão à terra (GND)
  • VDD: Pino de tensão de alimentação (geralmente 5 Volts)
  • VO: Pino controle contraste. Conecte-se a um potenciômetro para ajustar o contraste da tela.
  • D/I (Dados/Instrução): Pino de seleção Data/Command (Instruction), também rotulado como RS (Registrar Selecione). Usado para indicar se os dados enviados para o GLCD são um comando ou dados de exibição, com lógica alta para dados de exibição.
  • R/W (Leia/Escreva): Pino de controle de leitura/gravação. Indica se os dados estão sendo lidos ou gravados no GLCD, com lógica alta para Ler operação.
  • E (Ativar): Ativar o pino. Usado para sinalizar ao GLCD que os dados estão prontos para serem processados.
  • DB0 –> DB7 (Linhas de Dados): Estas são as linhas de dados para exibir dados e comandos. DB0 é o bit menos significativo (LSB), e DB7 é o bit mais significativo (MSB).
  • CS1 (Chip Select 1): Selecionar chip para a metade esquerda do ecrã (para um ecrã de 128×64, a parte esquerda de 64×64).
  • CS2 (Chip Select 2): Selecionar chip para a metade direita do ecrã (para um ecrã de 128×64, a parte direita de 64×64).
  • RST (Redefinir): Redefinir pino. Usado para redefinir o módulo KS0108 GLCD, ativo baixo.
  • VOTO: Tensão negativa para a polarização do LCD (usualmente usada para o controle de contraste do LCD), igualmente etiquetado como VEIA. A tensão deste pino é geralmente -5V.
  • BLA (Ânodo): Conexão do ânodo para a luz de fundo.
  • BLK (Cátodo): Conexão de cátodo para a luz de fundo.

Observe que os nomes e posições específicos dos pinos podem variar entre diferentes módulos GLCD, portanto, é crucial consultar a folha de dados ou a documentação fornecida pelo fabricante do módulo GLCD para garantir conexões precisas. Além disso, certifique-se de conectar os pinos aos pinos GPIO apropriados no sistema do microcontrolador e configurá-los de acordo com o código para controlar o GLCD de forma eficaz.
O módulo GLCD de maior resolução 192×64 pixels tem um adicional CS3 (Chip Select 3) pin que é chip selecione para o terço mais à direita da tela (para esta exibição, o CS2 (Chip Select 2) pin é chip select para o terço médio da tela.
Para os pinos de seleção de chip (CS1, CS2..), o KS0108 GLCD usado neste projeto tem um alto chip ativo selecionar pinos, mas existem alguns módulos de exibição que vêm com pinos de seleção de chip baixo ativos.

Interface Arduino com ecrã GLCD KS0108 – Teste Gráfico Exemplo:
Este post mostra como fazer a interface da placa Arduino uno R3 com o módulo LCD gráfico KS0108 128×64, o diagrama do circuito do projeto é mostrado abaixo.


Descrição do circuito:
A conexão entre o módulo KS0108 GLCD e a placa Arduino uno Rev 3 é como descrito abaixo:
D/I (Dados/Instrução) pino é conectado ao pino analógico Arduino 0 (A0).
R/W (Leia/Escreva) o pino é conectado ao pino analógico Arduino 1 (A1).
E (habilitar) pino é conectado ao pino analógico Arduino 2 (A2).
DB0 –> DB7 (Linhas de Dados) estão ligados a pinos digitais Arduino 2 –> 9.
CS1 (Chip Select 1) o pino é conectado ao pino digital Arduino 10.
CS2 (Chip Select 2) o pino é conectado ao pino digital Arduino 11.
RST (Reset) pino está conectado ao pino digital Arduino 12.
VSS (terra) pino e BLK (cátodo de luz de fundo) estão conectados ao pino Arduino GND.
VDD (fonte de alimentação positiva) pino e BLA (ânodo de luz de fundo) estão conectados ao pino Arduino 5V.

20k Ohm o resistor variável é usado para controlar o contraste do indicador, sua saída é conectada ao pino VO do módulo KS0108 GLCD. Os outros dois pinos do 20k resistor variável estão conectados a VDD (5V) e VOTO pinos do módulo KS0108.


Interface Arduino com KS0108 GLCD código de exibição:

Para tornar o código de exemplo de interface mais simples, usei uma biblioteca Arduino para a tela KS0108 GLCD. Esta biblioteca funciona na dependência da biblioteca de gráficos Adafruit (Adafruit_GFX). Ambas as bibliotecas podem ser instaladas online através do Arduino Library Manager.

Para a biblioteca KS0108 GLCD, na caixa de pesquisa Gerenciador de bibliotecas do Arduino, escreva ‘ks0108’ e instale o publicado por Circuito Simples como mostrado no vídeo abaixo, o Arduino IDE pode solicitar outra instalação de biblioteca (dependencies, como Adafruit_GFX ou Adafruit_BusIO), se eles ainda não estiverem instalados, então você precisa adicioná-los.

A biblioteca KS0108 GLCD e as bibliotecas Adafruit GFX podem ser instaladas offline, os links GitHub estão abaixo:
Biblioteca GLCD KS0108
Biblioteca Adafruit GFX

A biblioteca KS0108 GLCD suporta telas de resolução de 128 × 64 e 192 × 64 pixels, dependendo do número de pinos CS declarados.
Para a resolução 192 × 64 GLCD, o tamanho do buffer de exibição é: 192 × 64/8 = 1536 bytes e é armazenado no espaço RAM, o microcontrolador uno Arduino ( ATmega328P ) possui apenas 2048 bytes de espaço RAM que podem não ser capazes de alocar espaço RAM para o buffer de exibição. De qualquer forma, o começar A função nos informará se o compilador alocou com sucesso um espaço para o buffer de exibição ( retorna 1 se OK ).

Observe que este exemplo foi testado com a biblioteca KS0108 GLCD versão 1.0.0 e a biblioteca Adafruit GFX versão 1.11.17.

Código Arduino completo no link abaixo

https://simple-circuit.com/interfacing-arduino-with-ks0108-glcd-graphics-display-128x64-pixel/


Fonte
https://simple-circuit.com/interfacing-arduino-with-ks0108-glcd-graphics-display-128x64-pixel/
Mais Dicas