Índice:
- Etapa 1: Descrição das peças - Módulo de blindagem do teclado LCD
- Etapa 2: Descrição das peças - Módulo serial I2C
- Etapa 3: conexões
- Etapa 4: tornando a chave RST utilizável semelhante às outras 5 chaves
- Etapa 5: Software
- Etapa 6: revisão e discussão
Vídeo: Módulo de proteção do teclado 1602 LCD com mochila I2C: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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, consistindo de um módulo de blindagem de teclado 1602 LCD da DFRobot e um módulo serial I2C anônimo para LCDs. Quero usá-los com um Arduino Nano. Então descobri que existem alguns desafios para fazer esses componentes funcionarem juntos - mas é possível. Por isso, quero compartilhar minha experiência e talvez ajudar outras pessoas.
Esta foto é da placa de ensaio em funcionamento, que pode exibir mensagens no LCD e identificar teclas pressionadas. O LCD é controlado por meio da interface I2C, incluindo a luz de fundo do LCD. As teclas pressionadas são recebidas pelo Arduino no pino A0 (pode ser qualquer um dos pinos analógicos, exceto para A4 e A5 que estão ligados à interface I2C).
Etapa 1: Descrição das peças - Módulo de blindagem do teclado LCD
O módulo de blindagem do teclado LCD consiste em um LCD 1602 comumente usado montado na parte superior de uma placa de circuito que contém as teclas e que pega um subconjunto das conexões do LCD e as disponibiliza para os pinos do conector na parte inferior da placa de circuito. Eu entendo que esta placa deve ser montada em cima de um Arduino Uno ou similar e fornece o layout de pino correto para que funcione naquele ambiente. Comprei este módulo no Ebay de um fornecedor na China. Os pinos do cabeçalho no lado inferior (teclado) da placa são geralmente rotulados, mas os pinos do lado superior, que é a interface LCD, não são rotulados. No entanto, os pinos no próprio LCD são identificados.
Etapa 2: Descrição das peças - Módulo serial I2C
O módulo serial tem o conector de 4 pinos usual para I2C e um conjunto de pinos de cabeçalho não rotulados que, segundo entendi, devem ser conectados diretamente na parte inferior do módulo LCD. Ao estudar as etiquetas no LCD, consegui identificar as funções dos pinos no módulo serial.
Este módulo é baseado no IC PCF8574T que termina o protocolo I2C, possui 3 pinos para controle de endereço (20 a 27) e possui 8 pinos de entrada / saída digital P0 a P7. De acordo com a folha de dados do PCF8574T, cada pino de E / S tem um FET para puxá-lo para o aterramento para o estado LOW e pode afundar pelo menos 20ma. No estado Alto, ele tem um pull-up ativo transiente e, em seguida, uma corrente pull-up contínua de cerca de 0,1 mA.
Neste módulo, todos os pinos de E / S digitais, exceto P3, são simplesmente trazidos para os pinos de cabeçalho (à direita na foto). No caso do P3, ele é conectado à base de um transistor (visível na foto na área superior direita logo abaixo da etiqueta “LED”). O emissor desse transistor é conectado ao Vss (terra) e o coletor é conectado ao pino 16 do conector, onde pode ser usado para controlar a luz de fundo do LCD. Por causa do transistor, o estado lógico é revertido em relação ao assumido na biblioteca de software. Ou seja, a luz de fundo do LCD é LIGADA quando o pino P3 está baixo e DESLIGADA quando o pino P3 está alto.
A etiqueta no transistor diz L6 que, de acordo com minha pesquisa, provavelmente o torna um MMBC1623L6 que tem um ganho de corrente mínimo de 200. Com 0,1 mA de corrente de base, ele deve ser capaz de manter uma condição BAIXA em seu coletor (módulo Pino 16) com pelo menos 20mA de corrente do coletor.
Além disso, este módulo possui um potenciômetro de 10K conectado entre +5 e Terra, cujo condutor variável é trazido para o pino 3 (terceiro da parte inferior na foto). Quando conectado diretamente ao LCD, este potenciômetro controlará o contraste do LCD. No entanto, essa função é fornecida por um potenciômetro semelhante separado na blindagem do LCD, portanto, este potenciômetro no módulo serial não tem função.
Não consegui encontrar nenhuma conexão com o pino INT do PCF8574T.
ATUALIZAÇÃO em 22 de agosto de 2019
Conforme mencionado acima, o PCF8574 possui 3 pinos de controle de endereço. Eles parecem ser trazidos para almofadas na placa da mochila, onde são identificados como A0, A1 e A2. Eles podem ser vistos na foto. Eu não testei isso, mas parece quase certo que ligando um ou mais desses pinos aos blocos adjacentes, o endereço I2C pode ser controlado no intervalo de 20 a 27. Além disso, há um segundo dispositivo quase idêntico, o PCF8574A, que tem funcionalidade idêntica ao PCF8574, mas cobre a faixa de endereço de 0x38 a 0x3F.
O endereço que seu dispositivo realmente usa pode ser verificado com um I2CScanner. Existem vários scanners I2C simples disponíveis em várias fontes. Este em https://github.com/farmerkeith/I2CScanner também identifica alguns dos dispositivos encontrados.
Etapa 3: conexões
Obrigado a ChaitanyaM17 que forneceu o diagrama de Fritzing que mostra as conexões, descritas abaixo.
Poder:
O módulo LCD possui um pino no lado inferior identificado como "5.0 V". À direita, adjacente a ele, estão dois pinos sem etiqueta, ambos aterrados.
Segurando o módulo serial com a interface I2C na extremidade esquerda, existem 16 pinos na extremidade inferior. O primeiro deles é aterrado e o segundo deles é + 5v. Outra opção é usar os dois pinos inferiores na interface I2C para alimentação, mas achei mais conveniente usar os pinos conforme descrito acima.
Interface I2C. No módulo serial, o pino superior é SCL (clock) e vai para o Arduino A5. O segundo pino é SDA (dados) e vai para o Arduino A4.
Interface de impressão LCD. Existem 6 conexões entre o módulo serial e a blindagem do teclado LCD, todas entre pinos sem etiquetas. Vou identificá-los no módulo LCD contando da direita para a esquerda, com o primeiro pino como 1. Existem 2 blocos de 8, então eles vão de 1 a 16. Eu os identifico no módulo serial I2C contando da esquerda para Certo, também há 16 deles. Além disso, dou a cada fio uma etiqueta, que é o pino equivalente no Arduino que normalmente está associado a essa função, no caso de uma conexão direta sem o módulo serial.
Portanto, as 6 conexões de dados são:
Equivalente do Arduino // Pino do módulo serial // Pino do módulo do teclado LCD
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
Controle de luz de fundo do LCD: usa mais uma conexão:
Equivalente do Arduino // Pino do módulo serial // Pino do módulo do teclado LCD
D10 // 16 // 11
Interface do teclado: usa um único fio do pino do módulo LCD no lado inferior identificado como "A0", para o pino A0 no Arduino. Pelo menos isso foi muito fácil!
Etapa 4: tornando a chave RST utilizável semelhante às outras 5 chaves
O RST pode ser conectado diretamente à entrada RESTART do Arduino Nano.
No entanto, se você quiser que a chave RST seja utilizável no software para outras coisas, isso pode ser feito conectando um resistor de 15K entre o pino RST e o pino A0 no lado inferior da proteção do teclado LCD.
Isso funciona da seguinte maneira: Há um resistor de 2K entre + 5V e a tecla Direita. Em seguida, uma cadeia de resistores progressivamente maiores para cada uma das outras chaves (330R para a tecla PARA CIMA, 620R para a tecla PARA BAIXO, 1K para a tecla ESQUERDA e 3K3 para a tecla SELECIONAR. Todas as chaves (incluindo a tecla RST) se conectam a terra. Quando conectado a um conversor A / D de 10 bits (como para Arduino Nano A0), eles fornecem aproximadamente os seguintes valores:
Direito = 0; Acima = 100; Baixo = 260; Esquerda = 410; Selecione = 640.
Com o resistor de 15 k para RST, ele fornece cerca de 850.
O software usará valores em torno dos pontos intermediários entre esses valores para decidir qual tecla foi pressionada.
Etapa 5: Software
O software útil é, obviamente, um exercício para o leitor. No entanto, para começar, você pode dar uma olhada no meu software de teste. Usei a biblioteca NewLiquidCrystal, que contém suporte para a interface I2C. Tudo funcionou, uma vez que tenho as bibliotecas instaladas corretamente.
O ponto principal era inverter a polaridade dos comandos Backlight OFF e ON (devido ao transistor no módulo I2C conforme explicado na seção Descrição das peças).
ATUALIZAÇÃO em 22 de agosto de 2019
Se você tiver problemas com o visor LCD não funcionando, verifique o endereço I2C de sua mochila serial usando um scanner I2C. Um scanner adequado está conectado. Então, se necessário, ajuste o primeiro parâmetro na instrução
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);
Etapa 6: revisão e discussão
Como você pode ver, as funções principais estão funcionando.
Minha próxima intenção é colocar isso em uma caixa de projeto como parte de outro projeto. Porém, depois de iniciar esse caminho, descobri que há outra dificuldade que não havia previsto.
A dificuldade é que este módulo do teclado LCD não foi configurado para ser instalado em uma caixa. Qualquer tipo de caixa. Os botões das 6 teclas estão bem abaixo do nível da tela LCD, de modo que se o módulo for montado em uma caixa (por exemplo, na tampa) com a parte superior da placa de circuito LCD alinhada com a parte inferior da tampa, os topos das teclas estão cerca de 7 mm abaixo do topo da tampa.
As soluções possíveis são:
a) Aguente. Faça orifícios de acesso na tampa e use uma ferramenta (por exemplo, uma agulha de tricô de diâmetro adequado) para pressionar os botões.
b) Remova o LCD da placa de circuito do módulo e faça uma cirurgia no teclado para que os dois componentes possam ser fixados na tampa da caixa do projeto de forma independente (acho que ainda pode haver um problema com os botões sendo muito curtos)
c) remova os botões existentes e substitua-os por botões mais altos. Os novos botões devem ter cerca de 13 mm de altura para que possam ser acionados através da tampa da caixa do projeto). Os interruptores de botão de reposição estão disponíveis em uma variedade de alturas, incluindo 13 mm.
d) descarte o módulo de blindagem do teclado LCD e use unidades separadas de LCD e teclado (ou seja, reinicie). Há uma grande variedade de unidades de teclado disponíveis, no entanto, não vi nenhuma com o mesmo layout de 6 teclas deste módulo (ou seja, Selecionar, Esquerda, Para cima, Para baixo, Direita, Reiniciar). Pode não ser um grande problema, mas um dos motivos pelos quais comecei com este módulo foi que pensei que esse layout de chave era o que eu queria.
Estou planejando ir com a solução c) acima e ver como vou.
Outro snippet de informação que pode ser de interesse:
Com a luz de fundo LIGADA, o consumo atual deste projeto é: Arduino Nano 21,5 ma; Módulo serial 3,6 ma; Módulo LCD 27,5 mA; Total 52 mA.
Com a luz de fundo desligada, o consumo atual deste projeto é: Arduino Nano 21,5 ma; Módulo serial 4,6 ma; Módulo LCD 9,8 mA; Total 36 mA.
Recomendado:
Como fazer um despertador faça você mesmo com a proteção do teclado LCD: 5 etapas
Como fazer um despertador DIY com a proteção do teclado LCD: Olá a todos! Neste instrutível, vou mostrar como fazer um despertador usando a placa Arduino. Eu usei Arduino UNO, escudo do teclado LCD, campainha de 5V e fios de jumper para construir este relógio. Você pode ver a hora no visor e pode definir a hora
Calculadora Arduino DIY usando LCD 1602 e teclado 4x4: 4 etapas
Arduino DIY Calculator usando 1602 LCD e teclado 4x4: Olá pessoal, neste instructables faremos uma calculadora usando Arduino que pode fazer cálculos básicos. Então, basicamente, pegaremos a entrada do teclado 4x4 e imprimiremos os dados em um display LCD 16x2 e o Arduino fará os cálculos
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
Configuração do módulo DS1302 RTC com teclado + Arduino + LCD: 3 etapas
Configure o módulo DS1302 RTC com teclado + Arduino + LCD: Olá, acabei de fazer este pequeno projeto, espero que gostem, pois o título diz que é sobre como usar um teclado para configurar o DS1302, é um dos projetos básicos que você pode adicione-o ao seu próprio projeto se quiser adicionar outros módulos ou funções … É v
Mochila para LCD em rede com Smartie LCD: 6 etapas
Mochila de LCD em rede com Smartie LCD: Telas de LCD de caracteres que rolam informações são um mod de caso popular. Eles geralmente são controlados por meio de uma porta paralela, mochila de porta serial ou mochila USB (mais). Este Instructable demonstra nossa mochila de LCD de rede Ethernet de código aberto. LC