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.

 

 

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 >>
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Thiago Pereira do Prado
Graduando em Engenharia de Controle e Automação pela Universidade Federal de Itajubá. Aficionado por Tecnologia, Programação e Sistemas Embarcados. Desde cedo era curioso por saber como as coisas funcionavam. Desmontava vários drivers de DVD e carrinhos de controle remoto atrás dos motores DC. Atualmente pesquiso na área de sistemas dinâmicos, controladores e filtros digitais.

Deixe um comentário

avatar
 
  Notificações  
Notificar