TECLADO MATRICIAL PARA TESTES COM MICROCONTROLADORES E OUTROS CIRCUITOS



Quantas vezes você não precisou utilizar um teclado matricial em um circuito microcontrolado (ou não) para um rápido teste? Nestas horas a compra do item que falta na bancada pode parecer a melhor alternativa, mas muitas vezes a falta da "verba" acaba por “atrasar” ou “inviabilizar” o teste/projeto. Neste artigo demonstrarei como preparar um teclado matricial com 16 teclas de baixíssimo custo que pode ser utilizado com a maioria dos microcontroladores disponíveis atualmente ou até mesmo circuitos lógicos.


OS TECLADOS MATRICIAIS

Os teclados matriciais são muito utilizados hoje em dia. Sempre que é preciso coletar “dados” em um dispositivo a maneira mais fácil de fazê-lo é utilizar um teclado.

A figura acima demonstra alguns tipos de teclados matriciais do tipo comercial. Estes teclados são formados basicamente por botões tipo “normalmente abertos” intercalados entre colunas e linhas. Veja a figura abaixo.

Para saber qual tecla foi pressionada é necessário analisar o estado da linha e coluna referentes. Assim é possível determinar exatamente qual tecla da “matriz” foi pressionada. Porém como saber exatamente qual linha e qual coluna deve-se analisar, para que o a leitura seja exatamente realizada no momento em que a tecla esperada foi pressionada?!? Para tal é necessário realizar uma operação muito conhecida no mundo dos circuitos digitais e também microcontroladores, conhecida por varredura de teclado.



VARREDURA DE TECLADO


Na varredura de teclado um “valor fixo” é forçado nas “linhas”. Este valor geralmente equivale ao estado lógico “1” (VCC). Este “1” lógico é geralmente forçado através de um resistor de pull-up.O circuito de controle deve então executar um loop (laço) inserindo agora o estado “0” lógico (GND) na coluna que deverá ser lida mantendo o estado “1” lógico nas demais colunas. Assim quando o usuário pressionar uma tecla na coluna onde existe o estado “0” lógico, imediatamente a linha referente à tecla pressionada assumirá também o mesmo estado (“0” lógico).

Por meio de interrupções ou mesmo através da leitura direta é possível ao circuito de controle saber qual linha teve seu estado inicial alterado (de “1” para “0”). Como a coluna que estava em estado lógico “0” naquele momento é conhecida, pode-se determinar através de uma tabela, qual tecla foi pressionada.

Você deve estar se perguntando: Mas como garantir que a tecla pressionada era realmente a que desejávamos ler?!?!

Simples. A varredura faz isso. A mesma insere nas colunas o estado lógico “0” com uma velocidade muito maior ao que uma pessoa pressiona uma tecla. O estado lógico “0” é inserido na primeira coluna, depois na segunda, e assim por diante até chegar à última. Se nenhuma tecla for pressionada, uma nova varredura é iniciada na busca de uma tecla e assim o circuito de controle ficará em um “laço” eterno na espera de uma tecla pressionada.

Em resumo, força-se os valores da linha igual a “1” lógico, insere-se “0” lógico na primeira coluna (mantendo todas as outras em “1”) e então se executa a leitura das linhas. Se nada se alterou, nenhuma tecla foi pressiona.Passa-se então a forçar o “0” lógico na próxima coluna e novamente a leitura das linhas é feito. Esta operação é realizada até que o estado em uma das linhas seja alterado. Neste momento, verifica-se uma tabela de decodificação que guarda o valor da tecla.

Esta é a metodologia utilizada para realizar a varredura de teclado utilizando um circuito controlador. Este pode ser composto de circuitos lógicos discretos, um microcontrolador ou ainda pela associação de ambos. O desenvolvimento de um programa para um microcontrolador qualquer deve respeitar a seqüência detalhada. O você tem em mãos então, não é apenas o “conceito” envolvido na operação, mas também o “algoritmo” necessário para realizar a operação.



O CIRCUITO

O circuito do teclado matricial é mostrado na figura abaixo. Este circuito é bastante simples e trás a síntese do que foi explicado anteriormente: uma matriz com quatro colunas e quatro linhas com 16 teclas fazendo a interligação das mesmas quando pressionadas.

Os resistores R1 a R4 são resistores de pull-up, utilizados para forçar o estado lógico “1” nas linhas. A chave DIP4 permite conectar estes resistores a linha ou não. Isso pode parecer à primeira vista estranho, mas não é. Alguns microcontroladores possuem resistores de pull-up internos que podem ser habilitados via programação e desta forma, o uso de resistores externos não se faz necessário. A chave permite que você possa escolher que tipo de ligação deseja fazer.

Os diodos D1 a D4 são diodos de proteção para as portas do circuito de controle e também garantem que somente o “0” lógico inserido nas colunas poderá ser refletido nas linhas.

O conector para colunas possui quatro pontos, um para cada coluna e o conector para a ligação das linhas tem cinco pontos no total: um para cada linha e um para a ligação do VCC necessário aos resistores de pull-up, caso os mesmos venham a ser utilizados.



MONTAGEM


Na figura abaixo é mostrado o lay-out de circuito impresso. Utilizei este desenho para a confecção da placa utilizada em meu protótipo. A montagem do circuito em uma placa padrão também é possível. Deixo essa escolha por conta de cada um.

A placa possui 12 jumpers que podem ser feitos com pequenos pedaços de fio rijo fino. As chaves utilizadas são do tipo tácteis mini, normalmente abertas com quatro terminais para montagem no circuito impresso.

Caso você opte por montar o circuito em uma placa padrão, chamo sua atenção para o fato de que este tipo de chave tem quatro pontos e apenas um único contato. Repare no circuito que a mesma tem os terminais 1 e 2, 3 e 4 interconectados internamente entre sí. Tome cuidado para não usar equivocadamente os terminais da chave de maneira trocada na montagem do teclado. Siga atentamente o esquema elétrico para obter sucesso.

Para a opção da montagem com o lay-out de circuito impresso sugerido, este problema desaparece, pois cada chave só poderá ser encaixada de maneira que os contatos 1 e 3 ou ainda 2 e 4 serão os utilizados.

D1 a D4 são diodos de sinal 1N4148. Não use nesta montagem diodos retificadores. Os diodos de sinal são melhores para a aplicação descrita. E lembre-se que diodos são componentes polarizados e sua ligação de maneira invertida fará com que o teclado não funcione como o proposto e ainda poderá colocar em risco o circuito de controle quando em uso.

R1 a R4 são resistores de 1/8 de Watt de dissipação com valor de 10 kOhms. A chave DIP4 pode ser substituída por jumpers caso você opte por utilizar o teclado com resistores externos sempre ligados. A chave DIP4 também poderá ser omitida caso a opção seja utilizar o teclado matricial com circuitos de controle com resistores de pull-up “internos” (como é o caso de alguns microcontroladores, que possuem tais resistores em algumas de suas portas/pinos). Caso seja esta a sua  opção, os resistores R1 a R4 também podem ser omitidos do circuito.

Para a conexão das linhas e colunas no circuito sugiro o uso de uma barra de pinos. Na falta da mesma, você poderá utilizar fios sem nenhum problema. Recomendo apenas que estes sejam coloridos para facilitar as ligações futuras.



PROVA E USO

Após a montagem faça uma verificação detalhada de sua montagem. Apesar do circuito ser bastante simples, é sempre bom revisar tudo.

Para testar o circuito você precisa apenas de um multímetro. Basta colocá-lo na função “Teste de diodos” e realizar os testes como segue:

1º) Ligue a ponta de prova “preta” do multímetro ao ponto da placa indicado como “Coluna 1”. Ligue a ponta de prova “vermelha” ao ponto indicado como “Linha 1”. Pressione S1. A indicação típica do seu multímetro quando do teste de um diodo poderá ser vista no mostrador do equipamento.

2º) Mantenha a ponta de prova preta na indicação “Coluna 1” e a agora troque a outra ponta para a indicação, “Linha 2”. Pressione S5. Novamente você poderá verificar a indicação antes descrita.

3º) Faça o mesmo para “Linha 3” (pressionando S9) e também para a “Linha 4” (pressionando S13).

4º) Agora mude de posição a ponta de prova preta da “Coluna 1” para “Coluna 2” e repita os passos de 1 a 3. Lembre-se apenas que agora as chaves a serem pressionadas são outras (S2, S6, S10 e S14).

5º) Repita os passos de 1 a 3 também para testar as conexões entre as colunas 3 e 4 com as linhas 1 a 4. Para se orientar a respeito das chaves a serem pressionadas para o teste, utilize o circuito elétrico.

Se durante os testes, ao inserir as ponta de prova em uma coluna e linha o equipamento indicar qualquer medida, sem o pressionamento da respectiva chave, é sinal que existe um curto nas ligações desta linha/coluna ou ainda que você montou as chaves de maneira errada.

Qualquer indicação de “falta de conexão” pode ser interpretada como “trilha interrompida”, solda fria, jumper não montado, etc. Como dito anteriormente, o circuito é extremamente simples e a busca por “problemas” nesta montagem não será uma tarefa complexa.



CONCLUSÃO

O Teclado Matricial proposto neste artigo pode ser utilizado em uma série de circuitos práticos interessantes. Ele pode até ser o início de um projeto mais complexo como um teclado serial, por exemplo. O site tem algumas dicas de como usar o canal serial de alguns microcontroladores. Tudo é uma questão de "unir" os pontos. Sorte, sucesso e boa montagem!



DOWNLOADS:

- Circuito eletrônico
- Lay-out para confecção do circuito impresso
- Lista de materiais


Este artigo foi publicado, com minha autorização, na revista Eletrônica Total nrº 115 de Maio/Junho de 2006.



Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.