Tinkercad e PQDB: Teclado matricial

Tinkercad e PQDB Display de 7 segmentos

ÍNDICE DE CONTEÚDO

Neste sketch será feita a varredura matricial de dois grupos de 5 push-buttons utilizando novamente o circuito integrado 74HC595, um registrador de deslocamento.

Circuito com teclado matricial.
Figura 1: Circuito com teclado matricial.

Link para a simulação aqui.

Os botões foram posicionados da seguinte maneira:

Tinkercad e PQDB Teclado matricial - Esquemático do teclado.
Figura 2: Esquemático do teclado.

Os terminais de D0 até D4 foram conectados às saídas Q1 até Q5 do mesmo registrador de deslocamento utilizado anteriormente. Assim, ao colocar nível alto no terminal D0, por exemplo, se for verificado nível alto no terminal T1, é certo que o botão SW101 foi pressionado, polarizou o transistor, fazendo-o atuar como chave fechada. O mesmo vale para o terminal T2 e o botão SW102. A mesma lógica é utilizada para o restante dos botões.

Como os botões são mecânicos, é necessário realizar o debounce via software, que tem a função de esperar o estado do botão estabilizar para assim atualizar seu valor.

Código

A função kpInit() configura as entradas digitais. A função kpDebounce() verifica se o estado dos botões tornou-se estável por 12 chamadas da função e atualiza a variável que representa o estado dos botões. Por tal motivo essa função deve ser executada continuamente no loop principal do código. A função kpRead() apenas retorna o valor atualizado dos botões pela função de debounce. 

A função serialWrite() utilizada na rotina de debounce é a mesma implementada no artigo anterior e tem a função de atualizar as saídas do circuito integrado registrador de deslocamento que devem estar ativas.

As funções principais, no exemplo da simulação, fazem a análise do valor do teclado, imprimindo no monitor serial quais teclas estão ativas:

Conclusão

Neste artigo foi apresentada a leitura de um teclado matricial fazendo novamente o uso do circuito integrado registrador de deslocamento (HC74595) e uma maneira de resolver o problema de instabilidade de um botão mecânico utilizando a rotina de debounce.

O próximo artigo tratará da comunicação com o display LCD 16x2 compatível com o HD44780, como alterar seu modo de operação para 4 bits, como criar caracteres personalizados, etc.

Todos os códigos podem ser acessados em meu GitHub.

Saiba mais

Leitura de chaves mecânicas e o processo de debounce

Debouncing de teclas usando Soft Timers

Simulação do Arduino no Proteus: Display LCD

Outros artigos da série

<< Tinkercad e PQDB: Display de 7 segmentosTinkercad e PQDB: Display LCD 16x2 >>
Sem licença

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Tinkercad e PQDB: Teclado matricial
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link