Índice:

Usando um teclado 4x4 com CircuitPython: 4 etapas
Usando um teclado 4x4 com CircuitPython: 4 etapas

Vídeo: Usando um teclado 4x4 com CircuitPython: 4 etapas

Vídeo: Usando um teclado 4x4 com CircuitPython: 4 etapas
Vídeo: Matrix Keypads with CircuitPython & Arduino 2024, Novembro
Anonim
Usando um teclado 4x4 com CircuitPython
Usando um teclado 4x4 com CircuitPython

Este teclado barato oferece um método simples de entrada numérica para seus projetos CircuitPython. Vou usá-lo com um expresso Adafruit ItsyBitsy M0.

Você vai precisar de:

  • Teclado - o meu é 4x4
  • ItsyBitsy M0 Express ou placa semelhante
  • Mu Editor instalado no seu computador
  • Cabo USB para atualizar o código

Etapa 1: Como funciona o teclado

Como funciona o teclado
Como funciona o teclado

O teclado possui 16 interruptores de bolha simples e de ação lenta, dispostos em uma grade de 4 por 8 com 8 conexões na parte inferior. Se numerarmos da esquerda de 0 a 7, as conexões de 0 a 3 serão conectadas a cada uma das linhas. Conexão 0 à linha superior e conexão 3 à linha inferior. As conexões 4 a 7 são conectadas às colunas com a conexão 4 na coluna da esquerda e a conexão 7 na coluna da direita. Cada uma das 16 opções faz uma junção entre uma combinação diferente de linha / coluna. Se pressionarmos a tecla 7, a terceira linha será unida à coluna da esquerda. Podemos sentir se a tecla 5 está sendo pressionada se sua linha está elevada como HIGH e podemos ler um HIGH em sua coluna. Para fazer isso, usamos OUTPUT para as linhas e INPUT para as colunas.

Precisamos definir cada linha HIGH por sua vez, enquanto as outras linhas são LOW, ler cada coluna por vez até obter uma entrada HIGH. Isso é facilmente gerenciado com loops for aninhados.

Precisamos levar em consideração o fato de que esses interruptores de bolha têm ação bastante lenta e precisam ser pressionados com bastante força para fazê-los fechar. A varredura de todos os 16 interruptores dessa forma pode ser feita muito rapidamente, mas temos que fazer a varredura repetidamente para pegar uma tecla pressionada. Também precisamos 'debounce' com um pequeno atraso de tempo para que as teclas não se repitam cada vez que pressionamos.

Como os interruptores são bastante 'moles', precisamos de algum feedback para o usuário para indicar que um pressionamento de tecla foi lido. O LED embutido pisca cada vez que um pressionamento de tecla é detectado.

Etapa 2: conexões físicas

Conexões Físicas
Conexões Físicas

Conexões da esquerda para a direita no KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 em ItsyBitsy

D7 a D11 são configurados como SAÍDAS enquanto A5 a A2 são configurados como ENTRADAS com PULLDOWN.

O código tem muitos comentários e deve ser bem fácil de seguir.

Etapa 3: Como Getkey () funciona

Como Getkey () funciona
Como Getkey () funciona

Esta função verifica o teclado para um único pressionamento de tecla. Ele verifica rapidamente cada uma das chaves no máximo 10 vezes para ver se uma chave está fechada. Se uma tecla for pressionada, ele retornará o valor da chave, contando da esquerda para a direita de cima para baixo (0… 15) Observe os valores para a linha inferior: 14, 0, 15, 13 (Hex E, 0, F, D). Se nenhuma tecla for pressionada, ele retorna -999 como um código de erro que pode ser facilmente obtido no programa principal. O LED embutido pisca se um pressionamento de tecla for considerado como feedback do usuário. Isso é executado muito rapidamente e a espera de retorno de 0,2 segundos só é usada quando uma tecla é pressionada.

Etapa 4: Getvalue (dígitos)

Getvalue (dígitos)
Getvalue (dígitos)

Esta rotina fornece um valor de n dígitos das teclas numéricas. Ele ignora as teclas vermelhas.

Este código Python pode ser facilmente convertido para ser executado em outro dispositivo, como um Raspberry Pi, provavelmente você só precisa alterar as linhas de configuração dos pinos na parte superior do script.

Por favor, deixe-me saber se você achar o código útil.

Fique seguro e divirta-se!

Recomendado: