Índice:

Módulo do controlador Uber I2C LCD: 6 etapas
Módulo do controlador Uber I2C LCD: 6 etapas

Vídeo: Módulo do controlador Uber I2C LCD: 6 etapas

Vídeo: Módulo do controlador Uber I2C LCD: 6 etapas
Vídeo: LCD1602 I2C Address for Arduino explained 2024, Julho
Anonim
Módulo controlador Uber I2C LCD
Módulo controlador Uber I2C LCD
Módulo controlador Uber I2C LCD
Módulo controlador Uber I2C LCD
Módulo controlador Uber I2C LCD
Módulo controlador Uber I2C LCD

Preâmbulo

Este instrutivo detalha como criar um módulo controlador baseado em LCD HD44780 (foto 1 acima). O módulo permite ao usuário controlar todos os aspectos do LCD programaticamente em I2C, compreendendo; LCD e display, contraste e intensidade da luz de fundo. Embora o Arduino Uno R3 tenha sido usado para prototipá-lo, ele funcionará igualmente bem com qualquer microcontrolador que suporte I2C.

Introdução

Conforme mencionado acima, este artigo documenta a criação de um Módulo Controlador LCD I2C, que foi principalmente concebido como um exercício de design para determinar quanto tempo levaria para criar um PCB funcional prático.

O design substitui o módulo controlador genérico padrão (figura 3 acima) e baseia-se em Instructables e bibliotecas que produzi anteriormente.

Do protótipo do conceito inicial (foto 2 acima) até a PCB completa e totalmente testada (foto 1 acima), levou um total de 5,5 dias.

Quais peças eu preciso? Veja a lista de materiais anexada abaixo

Qual software eu preciso?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 se você deseja modificar o PCB. Caso contrário, basta enviar 'LCD_Controller.zip' para JLCPCB.

Quais ferramentas eu preciso?

  • Microscópio pelo menos x3 (para solda SMT),
  • Ferro de solda SMD (com caneta de fluxo líquido e solda fluxada),
  • Pinças fortes (para solda SMT),
  • Alicate fino (ponta e ponta saliente),
  • DMM com verificação de continuidade audível.

Quais habilidades eu preciso?

  • Muita paciencia,
  • Muita destreza manual e excelente coordenação mão / olho,
  • Excelentes habilidades de soldagem.

Assuntos abordados

  • Introdução
  • Visão geral do circuito
  • Fabricação de PCB
  • Visão geral do software
  • Testando o Design
  • Conclusão
  • Referências usadas

Etapa 1: Visão geral do circuito

Visão geral do circuito
Visão geral do circuito

Um diagrama de circuito completo de todos os eletrônicos é dado na figura 1 acima, junto com um PDF do mesmo abaixo.

O circuito foi projetado para ser uma substituição exata do Módulo Controlador LCD I2C PCF8574A padrão com os seguintes aprimoramentos;

  • Compatibilidade 3v3 ou 5v selecionável pelo usuário I2C,
  • Controle de contraste digital ou configuração de potenciômetro convencional,
  • Seleção de intensidade de luz de fundo variável com controle de função de atenuação Quartic para obter um desbotamento suave.

Controle de exibição de LCD

Este é um fac-símile do Módulo Controlador LCD I2C padrão utilizando um PCF8574A (IC2) para conversão I2C em paralelo.

O endereço I2C padrão para isso é 0x3F.

Compatibilidade 3v3 ou 5v I2C

Para operação 3v3, ajuste Q1, Q2 ROpt1, 2, 5 e 6, IC1, C2 e C2.

Se a operação 5v for necessária, não encaixe nenhum componente 3v3, substituindo-os por resistores de 0 Ohm ROpt 3 e 4.

Contraste digital

O controle de contraste digital é obtido por meio do uso de um potenciômetro digital U2 MCP4561-103E / MS e C4, R5.

Se um potenciômetro mecânico convencional for necessário, então um pode ser instalado no PCB, RV1 10K, em vez de U2, C4 e R5. Veja BoM para potenciômetro compatível.

Ao fazer a ponte do jumper J6, o endereço I2C é 0x2E. Supõe-se que para a operação normal isso é feito em ponte.

Seleção de intensidade de luz de fundo variável

A intensidade da luz de fundo variável é controlada pela modulação PWM da luz de fundo do LED LCD via U1 pino 6 e ATTiny85. Para manter a compatibilidade total com o Módulo Controlador LCD I2C padrão R1, T1 R7 e T2 são usados para modular o trilho de alimentação + ve.

O endereço I2C padrão para isso é 0x08. Isso é selecionável pelo usuário, em tempo de compilação antes de programar U1.

Etapa 2: Fabricação de PCB

Fabricação de PCB
Fabricação de PCB
Fabricação de PCB
Fabricação de PCB
Fabricação de PCB
Fabricação de PCB
Fabricação de PCB
Fabricação de PCB

Conforme mencionado anteriormente, este Instructable foi um exercício, com o objetivo principal de determinar quanto tempo levaria para concluir um projeto (que tinha uma finalidade prática).

Nesse caso, pensei no conceito inicial na tarde de sábado e concluí o protótipo na foto 1 da noite de sábado acima. Minha ideia, conforme declarado, era criar minha própria variante do módulo controlador I2C LCD, com uma pegada idêntica, oferecendo controle programático total do LCD sobre I2C.

O diagrama esquemático e o layout do PCB foram desenvolvidos com Kicad v4.0.7 fotos 2 e 3. Isso foi concluído na tarde de domingo e as peças foram encomendadas da Farnell e o PCB foi carregado para o JLCPCB na noite de domingo.

Os componentes chegaram da Farnell na quarta-feira, seguidos pelos PCBs do JLCPCB na quinta-feira (usei o serviço de entrega da DHL para agilizar as coisas) fotos 4, 5, 6 e 7.

Na quinta-feira à noite, duas placas (variantes 3v3 e 5v) foram construídas e testadas com sucesso em uma tela LCD 4 por 20. Fotos 8, 9 e 10.

Incríveis 5,5 dias desde o conceito inicial até a conclusão.

Surpreende-me a rapidez com que a JLCPCB é capaz de receber um pedido, fabricar um PTH PCB de dupla face e enviá-lo para o Reino Unido. Uma bolha de 2 dias para fabricação e 2 dias para entrega. Isso é mais rápido do que os fabricantes de PCB do Reino Unido e por uma fração do preço.

Etapa 3: Visão geral do software

Visão geral do software
Visão geral do software
Visão geral do software
Visão geral do software

Existem três partes principais do software necessárias para controlar o módulo controlador I2C LCD;

1. Biblioteca Arduino LiquidCrystal_I2C_PCF8574

Disponivel aqui

Para ser usado em seu esboço do Arduino para controlar o display LCD.

Observação: isso funciona igualmente bem com o controlador de módulo LCD I2C genérico. Só dá funcionalidade do que outras bibliotecas.

2. Biblioteca MCP4561_DIGI_POT Arduino

Para ser usado em seu esboço para controlar programaticamente o contraste do LCD

Disponivel aqui

3. Controle programático dos níveis de luz de fundo do LCD usando a função de atenuação PWM e Quartic para obter um desbotamento suave

Como mencionado anteriormente, a placa contém um único ATTiny85 usado para controlar o desbotamento gradual da luz de fundo da tela.

Os detalhes deste software são fornecidos em uma instrução anterior 'Desvanecimento suave do LED PWM com o ATTiny85'

Nesse caso, para manter as dimensões finais do PCB iguais às de um módulo controlador de LCD genérico, foi escolhida a variante SOIC do ATTiny85. As fotos 1 e 2 mostram como o ATTiny85 SOIC foi programado e testado na configuração do protótipo.

O código programado no ATTiny85 era 'Tiny85_I2C_Slave_PWM_2.ino' disponível aqui

Para obter detalhes sobre como criar seu próprio programador ATTiny85, consulte este Instructable 'Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP'

Etapa 4: Testar o Design

Testando o Design
Testando o Design
Testando o Design
Testando o Design

Para testar o design, criei um esboço chamado 'LCDControllerTest.ino', que permite ao usuário definir qualquer parâmetro específico do LCD diretamente por meio de uma conexão de terminal serial.

O esboço pode ser encontrado no meu repositório GitHub I2C-LCD-Controller-Module

A imagem 1 acima mostra a prensa de placa compatível com 5v I2C instalada em um LCD 4 por 20 e a imagem 2 a tela padrão ao executar o código de teste pela primeira vez.

Ele usa os seguintes valores padrão para luz de fundo e contraste;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((longo sem sinal) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Achei que funcionaram bem com o display LCD 4 por 20 que tinha sobrando.

Etapa 5: Conclusão

Quando comecei na indústria de eletrônicos / software há algum tempo atrás, havia grande ênfase no uso de wire-wrap ou construção veroboard para prototipagem com muito excesso de engenharia no circuito final, caso você tivesse cometido um erro, dados o custo e a duração de uma nova rotação da placa.

Um erro geralmente custa algumas semanas no cronograma e estourou a margem de lucro (e possivelmente seu trabalho).

Os PCBs eram chamados de 'obras de arte' porque eram verdadeiras obras de arte. Criado duas vezes no tamanho maior usando fita crepe preta adesiva por um 'traçador' ou desenhista e reduzido fotograficamente pela casa de fabricação para fazer a foto resistir aos estênceis.

Os diagramas de circuito também foram criados por rastreadores e desenhados à mão a partir de suas notas de projeto. As cópias eram feitas de forma fotoestática e chamadas de 'blue prints'. Porque eles eram invariavelmente de cor azul.

Os microcontroladores estavam apenas na infância e normalmente eram emulados em circuitos, se sua empresa pudesse pagar um com o ambiente de desenvolvimento complexo e caro que o acompanha.

Como um fabricante na época, o mero custo da cadeia de ferramentas de desenvolvimento de software era proibitivo, você era inevitavelmente forçado a inserir valores hexadecimais diretamente em EPROM (RAM / Flash se você tivesse muita sorte) e depois passar horas interpretando o comportamento resultante para determinar o que seu código estava funcionando se não estivesse funcionando conforme o esperado (bit 'wiggling' ou serial printf sendo as técnicas de depuração mais populares. Algumas coisas nunca mudam). Você normalmente tinha que escrever todas as suas próprias bibliotecas, pois nenhuma estava disponível (certamente não havia nenhuma fonte rica como a Internet).

Isso significava que você passava muito tempo tentando entender como algo funcionava e menos tempo fazendo criativamente.

Todos os seus diagramas foram desenhados à mão, normalmente em A4 ou A3 e tiveram que ser bem pensados, dando-lhes um fluxo lógico do caminho do sinal da esquerda para a direita. As correções geralmente significavam que você precisava começar com uma nova folha.

Na maior parte, seu circuito final foi desenvolvido usando veroboard para permanência e montado em um gabinete ABS simples para dar aquele 'toque profissional'.

Em contraste, desenvolvi todo o projeto em 5,5 dias usando freeware de alta qualidade, resultando em um PCB padrão profissional. Se o desejo tivesse me dominado, poderia tê-lo montado em uma caixa impressa em 3D de minha própria autoria.

Algo com que você só poderia sonhar há menos de uma década.

Como as coisas mudaram para melhor.

Etapa 6: Referências usadas

Captura esquemática KiCAD e design de PCB

KiCAD EDA

Ferramenta de desenvolvimento de software Arduino ORG

Arduino

LiquidCrystal_I2C_PCF8574 Biblioteca Arduino

Aqui

Biblioteca MCP4561_DIGI_POT Arduino

Aqui

LED PWM suave desbotando com o ATTiny85

Aqui

Programando o ATTiny85, ATTiny84 e ATMega328P: Arduino como ISP

Recomendado: