Índice:
- Etapa 1: Visão geral do circuito
- Etapa 2: Fabricação de PCB
- Etapa 3: Visão geral do software
- Etapa 4: Testar o Design
- Etapa 5: Conclusão
- Etapa 6: Referências usadas
Vídeo: Módulo do controlador Uber I2C LCD: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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
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
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
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
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:
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
Módulo de proteção do teclado 1602 LCD com mochila I2C: 6 etapas
Módulo de proteção do teclado 1602 LCD com mochila I2C: Como parte de um projeto maior, eu queria ter um display LCD e um teclado para navegação em alguns menus simples. Usarei muitas portas de E / S no Arduino para outros trabalhos, então queria uma interface I2C para o LCD. Então eu comprei algum hardware
Conduzindo um LCD com módulo I2C: 8 etapas
Conduzindo um LCD com módulo I2C: Neste tutorial, veremos como funciona uma tela LCD e como usá-la mais facilmente com o módulo I2C
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
Módulo RF 433MHZ - Faça receptor e transmissor de módulo RF 433MHZ sem qualquer microcontrolador: 5 etapas
Módulo RF 433MHZ | Faça receptor e transmissor de módulo RF 433MHZ sem qualquer microcontrolador: gostaria de enviar dados sem fio? facilmente e sem a necessidade de microcontrolador? Vamos lá, neste instrutível vou mostrar meu transmissor e receptor rf básico pronto para ser usado! Neste instrutível você pode enviar e receber dados usando muito ver