Índice:
Vídeo: LCD COG para um Arduino Nano: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Este Instructable descreve como usar um LCD COG com um Arduino Nano.
Os monitores LCD COG são baratos, mas são um pouco mais difíceis de interface. (COG significa "Chip On Glass".) O que estou usando contém um chip de driver UC1701. Requer apenas 4 pinos do Arduino: SPI-clock, SPI-data, seleção de chip e comando / dados.
O UC1701 é controlado pelo barramento SPI e funciona a 3,3V.
Aqui eu descrevo como usá-lo com um Arduino Nano. Ele também deve funcionar com um Arduino Mini ou Uno - vou testá-lo em breve.
Este é meu primeiro projeto Arduino e não escrevo C há décadas, então se eu estiver cometendo algum erro óbvio, por favor, me avise.
Etapa 1: Construindo o Hardware
Compre um LCD COG que contenha um chip UC1701. Ele deve usar o barramento SPI em vez de uma interface paralela. Ele terá cerca de 14 pinos que serão rotulados com nomes como os listados abaixo. (Você não quer uma interface paralela com muito mais pinos rotulados D0, D1, D2 …)
O que eu comprei é: https://www.ebay.co.uk/itm/132138390168 Ou você pode pesquisar no eBay por "12864 LCD COG".
Escolha um que tenha uma cauda bastante larga com pinos espaçados em 1,27 mm - os pinos mais finos serão difíceis de soldar. Certifique-se de que ele tenha um chip UC1701. Observe como na sexta imagem na página do ebay, diz "CONECTOR: COG / UC1701".
A tela é transparente e é difícil saber qual é a frente e o verso. Estude minhas fotos com cuidado. Observe onde os pinos 1 e 14 estão - eles estão marcados na cauda.
A cauda flexível é muito fácil de soldar, mas requer um adaptador para que você possa conectá-la a uma placa de ensaio. Eu comprei: https://www.ebay.co.uk/itm/132166865767 Ou você pode pesquisar no eBay por "Adaptador Smd SSOP28 DIP28".
O adaptador usa um chip SOP de 28 pinos de um lado ou um chip SSOP de 28 pinos do outro lado. Um chip SOP tem um espaçamento entre pinos de 0,05 (1,27 mm), que é o mesmo que a cauda do LCD.
Você também precisará de alguns pinos de cabeçalho. Sempre que compro um Arduino ou outro módulo, ele vem com mais pinos de cabeçalho do que o necessário, então provavelmente você já tem alguns. Caso contrário, pesquise no eBay por "pinos de cabeçalho de 2,54 mm".
Solde 14 dos pinos do cabeçalho no adaptador. Não os empurre completamente - é melhor se a parte de trás do adaptador for plana. Coloque-o plano em sua bancada para que os pinos não possam ser empurrados muito para dentro dos orifícios. Certifique-se de que os pinos estejam no lado SOP da placa (ou seja, o chip maior).
As almofadas da cauda estão em uma espécie de janela. Estanho ambos os lados com solda. Estanho as almofadas do adaptador. Segure a ponta do adaptador no lugar e toque em cada almofada com o ferro de solda (você precisará de uma ponta bem fina).
Amarre um pouco de linha nos orifícios do adaptador para atuar como alívio de tensão. (Eu usei "fio de transformador").
Se você soldar do lado errado, não tente dessoldar a cauda. Retire os pinos um de cada vez e mova-os para o outro lado do tabuleiro. (Sim, cometi esse erro e re-soldar a cauda, por isso está um pouco bagunçado na foto.)
Etapa 2: Conectando-se ao Arduino
Esta seção explica como se conectar a um Arduino Nano. Será muito semelhante para um Mini ou Uno, mas ainda não tentei.
Estude o diagrama do circuito.
Um Arduino Nano conectado a uma porta USB funciona a 5V. O LCD funciona a 3,3V. Portanto, você precisa alimentar o LCD com o pino 3V3 do Nano e reduzir a tensão em cada pino de controle de 5V para 3,3V.
A pinagem do LCD é:
- 1 CS
- 2 RST
- 3 CD
- 4
- 5 CLK
- 6 SDA
- 7 3V3
- 8 0V Gnd
- 9 VB0 +
- 10 VB0-
- 11
- 12
- 13
- 14
CS é Chip-Select. É puxado para baixo para selecionar (habilitar) o chip UC1701. (CS pode ser denominado CS0 ou En ou semelhante.)
RST é reiniciado. É puxado para baixo para reiniciar o chip. (RST pode ser chamado de Reset.)
CD é comando / dados. Ele é puxado para baixo ao enviar comandos ao chip por meio do SPI. É alto ao enviar dados. (CD pode ser chamado de A0.)
CLK e SDA são os pinos do barramento SPI. (SDA pode ser denominado SPI-Data. CLK pode ser SCL ou SPI-Clock.)
VB0 + e VB0- são usados pela bomba de carga interna do UC1701. A bomba de carga gera as tensões ímpares necessárias para o LCD. Conecte um capacitor de 100n entre VB0 + e VB0-. A documentação do UC1701 recomenda 2uF, mas não pude ver nenhuma diferença com este LCD em particular.
Se o seu LCD tiver pinos VB1 + e VB1-, conecte também um capacitor de 100n entre eles. (Se o seu LCD tiver um pino VLCD, você pode tentar conectar um capacitor de 100n entre o VLCD e o Gnd. Não fez diferença com o meu LCD.)
Conecte o LCD ao Nano da seguinte maneira:
- 1 CS = D10 *
- 2 RST = D6 *
- 3 CD = D7 *
- 5 CLK = D13 *
- 6 SDA = D11 *
- 7 3V3 = 3V3
- 8 0V = Gnd
("*" significa usar um divisor de potencial para reduzir a tensão. Se o Arduino estiver funcionando a 3V3 de uma fonte independente, você não precisará dos resistores.)
3,3 V são produzidos pelo Nano e podem fornecer corrente suficiente para o LCD. (O display desenha em torno de 250uA.)
5 V também é emitido pelo Nano e pode ser usado para alimentar a luz de fundo. Limite a corrente à luz de fundo com um resistor de 100 ohm.
Se estiver com falta de pinos no Nano, você pode conectar o RST ao 3V3 - então você pode usar o D6 para outra coisa. O U1701 pode ser reinicializado no software por um comando no SPI. Nunca tive problemas com isso, mas se você estiver usando seu próprio circuito em um ambiente barulhento, pode ser melhor usar uma reinicialização de hardware.
Etapa 3: Software
Em teoria, você pode conduzir o UC1701 da biblioteca U8g2 (ou Ucglib ou outras bibliotecas disponíveis). Lutei por dias para fazê-lo funcionar e falhei. A biblioteca U8g2 é um monstro porque pode operar uma grande variedade de chips e é muito difícil seguir o código. Então desisti e escrevi minha própria biblioteca menor. Ele ocupa muito menos espaço no Arduino (aproximadamente 3400 bytes mais fontes).
Você pode baixar minha biblioteca aqui (o botão Baixar nesta página). Um esboço de amostra e um guia do usuário estão incluídos. A página da web https://www.arduino.cc/en/Guide/Libraries descreve como importar uma biblioteca; vá para a seção "Importando uma biblioteca.zip".
Inicialize o LCD com
UC1701Begin ();
O UC1701Begin pode usar parâmetros para alterar os pinos ou ignorar o pino RST. A biblioteca usa apenas SPI de hardware (não é fornecido um SPI de software). A exibição pode ser invertida nos eixos xey. Isso é útil se você deseja montar o LCD em uma orientação diferente.
Vários procedimentos foram duplicados da biblioteca U8g2:
- Desenhar linha
- DrawPixel
- DrawHLine
- DrawVLine
- DrawBox
- DrawFrame
- DrawCircle
- DrawDisc
- DrawFilledEllipse
- DrawEllipse
- DrawTriangle
- UC1701SetCursor
- UC1701ClearDisplay
Alguns procedimentos são ligeiramente diferentes:
- void DrawChar (uint8_t c, fonte da palavra);
- void DrawString (char * s, fonte da palavra);
- void DrawInt (int i, fonte da palavra);
Os procedimentos de desenho de strings são passados ao índice de uma fonte. As fontes são declaradas na memória flash do Arduino para que não ocupem a preciosa SRAM. Três fontes são fornecidas (pequeno, médio e grande). Eles só estão vinculados e ocupam memória flash se você usá-los (aproximadamente 500 a 2.000 bytes cada).
"Color" é tratado de forma diferente da biblioteca U8g2. Quando o LCD é apagado, ele apresenta um fundo escuro. Se MakeMark (uma variável global) for verdadeiro, o desenho é feito em branco. Se MakeMark for falso, o desenho é feito no escuro.
Alguns procedimentos são exclusivos do UC1701:
SetInverted desenha em preto-sobre-branco em vez de branco-sobre-preto.
void SetInverted (bool inv);
O brilho e o contraste do UC1701 são definidos por:
- void SetContrast (valor uint8_t); // sugerido é 14
- void SetResistor (valor uint8_t); // sugerido é 7
Eles trabalham juntos de uma forma bastante insatisfatória.
SetEnabled desliga o LCD:
void SetEnabled (bool en);
O display leva 4uA durante o sono. Você também deve desligar a luz de fundo - tire-a de um pino do Nano. Após a reativação, o UC1701 terá sido reinicializado; a tela é limpa e o contraste e o resistor serão redefinidos para seus valores padrão.
Portanto, em conclusão, as telas COG são baratas e de tamanho decente. Eles são fáceis de conectar a um Arduino.
Recomendado:
Visor LCD I2C / IIC - Use um LCD SPI para o visor LCD I2C Usando o módulo SPI para IIC com Arduino: 5 etapas
Visor LCD I2C / IIC | Use um LCD SPI para o Display LCD I2C Usando o Módulo SPI para IIC com Arduino: Oi pessoal, já que um LCD SPI 1602 normal tem muitos fios para conectar, então é muito difícil fazer a interface com o arduino, mas há um módulo disponível no mercado que pode converter a exibição SPI em exibição IIC, então você precisa conectar apenas 4 fios
Visor LCD I2C / IIC - Converter um SPI LCD para o display I2C LCD: 5 etapas
Visor LCD I2C / IIC | Converter um LCD SPI para o display LCD I2C: usar o display LCD spi precisa de muitas conexões para fazer, o que é realmente difícil de fazer, então encontrei um módulo que pode converter o LCD i2c para o LCD spi, então vamos começar
Luz reativa para música -- Como tornar uma luz reativa para música super simples para tornar a área de trabalho incrível: 5 etapas (com imagens)
Música reativa luz || Como fazer música super simples luz reativa para tornar a área de trabalho incrível .: Ei, e aí galera, hoje vamos construir um projeto muito interessante. Hoje vamos construir uma luz reativa musical. O led mudará seu brilho de acordo com o baixo, que na verdade é um sinal de áudio de baixa frequência. É muito simples de construir. Vamos
Convença-se a usar apenas um inversor de linha de 12 V para CA para cordas de luz de LED em vez de reconfigurá-las para 12 V: 3 etapas
Convença-se a usar apenas um inversor de linha 12 V para CA para cordas de luz de LED em vez de reconfigurá-las para 12 V: Meu plano era simples. Eu queria cortar um fio de luz LED alimentado pela parede em pedaços e religá-lo para funcionar com 12 volts. A alternativa era usar um inversor de potência, mas todos sabemos que eles são terrivelmente ineficientes, certo? Direito? Ou são eles?
Modificar um carregador USB para carro genérico para carregar um iPod Nano de terceira geração: 4 etapas
Modificar um carregador USB para carro genérico para carregar um iPod Nano de 3ª geração: Eu tenho um iPod Nano de 3ª geração. Ele detecta que está conectado, mas se recusa a cobrar de um adaptador de carga > USB genérico, mas não gostei de comprar um cabo adaptador ou outro carregador específico para o iPod, então já modifiquei um