Aula 22 – Teclado Matricial 4x4 com PIC
Nesta aula vamos estudar o teclado matricial 4x4, muito utilizado em sistemas embarcados para entrada de senhas, navegação em menus, configuração de parâmetros e criação de pequenas IHMs com PIC.
1. O que é um teclado matricial?
Um teclado matricial é formado por linhas e colunas. Em vez de usar um pino para cada tecla, as teclas são organizadas em forma de matriz, economizando entradas e saídas do microcontrolador.
Teclado 4x4:
4 linhas
4 colunas
16 teclas
2. Layout comum do teclado 4x4
1 2 3 A
4 5 6 B
7 8 9 C
* 0 # D
3. Linhas e colunas
Normalmente o teclado possui 8 fios:
R1, R2, R3, R4 = Linhas
C1, C2, C3, C4 = Colunas
4. Princípio de funcionamento
Quando uma tecla é pressionada, ela conecta uma linha a uma coluna. O PIC identifica qual linha e qual coluna foram conectadas e descobre a tecla pressionada.
Tecla pressionada = interseção entre linha e coluna
5. Exemplo
Se a linha 2 e a coluna 3 forem conectadas, a tecla pressionada é:
Linha 2
Coluna 3
Tecla = 6
6. Varredura do teclado
O processo de leitura do teclado é chamado de varredura ou scan. O PIC ativa uma linha por vez e verifica em qual coluna aparece o sinal.
Ativa Linha 1 → lê colunas
Ativa Linha 2 → lê colunas
Ativa Linha 3 → lê colunas
Ativa Linha 4 → lê colunas
7. Ligação com PIC
Podemos ligar as linhas como saídas e as colunas como entradas.
R1 → RB0
R2 → RB1
R3 → RB2
R4 → RB3
C1 → RB4
C2 → RB5
C3 → RB6
C4 → RB7
8. Configuração dos pinos
TRISB = 0b11110000;
// RB0 a RB3 = saídas
// RB4 a RB7 = entradas
9. Pull-up nas colunas
As colunas devem possuir pull-up para evitar leituras falsas quando nenhuma tecla estiver pressionada.
Coluna solta = 1
Tecla pressionada = 0
10. Debounce
Quando uma tecla é pressionada, os contatos mecânicos podem gerar vários pulsos rápidos. Esse efeito é chamado de bounce.
Pressionou uma vez
PIC pode ler várias vezes
Para reduzir esse problema, usamos debounce por software.
__delay_ms(20);
11. Mapa de teclas
O mapa associa cada posição da matriz ao caractere correspondente.
char teclas[4][4] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
12. Função de leitura do teclado
char ler_teclado()
{
// A função deve ativar linha por linha
// e verificar qual coluna foi acionada.
// Quando encontrar uma tecla, retorna o caractere.
}
13. Exemplo simplificado
char tecla;
tecla = ler_teclado();
if(tecla != 0)
{
// Uma tecla foi pressionada
}
14. Exibindo tecla no LCD
Integrando o teclado com o LCD 16x2 da Aula 21, podemos mostrar a tecla pressionada.
tecla = ler_teclado();
if(tecla != 0)
{
Lcd_Chr(1,1,tecla);
}
15. Sistema de senha
Um uso muito comum do teclado matricial é a criação de senha de acesso.
Senha correta: 1234
Digite no teclado: 1 2 3 4
PIC compara os valores
16. Exemplo lógico de senha
if(senha_digitada == senha_correta)
{
// Acesso liberado
}
else
{
// Acesso negado
}
17. Menus de navegação
As teclas A, B, C e D podem ser usadas como funções especiais.
| Tecla | Função sugerida |
|---|---|
| A | Entrar no menu |
| B | Voltar |
| C | Aumentar valor |
| D | Diminuir valor |
| # | Confirmar |
| * | Cancelar |
18. Configuração de parâmetros
Com LCD + teclado, podemos criar sistemas para configurar:
- Setpoint de temperatura.
- Tempo de partida.
- Velocidade desejada.
- Senha de acesso.
- Endereço Modbus.
- Parâmetros de manutenção.
19. Aplicações industriais
Teclados matriciais são usados em controladores, painéis, alarmes, balanças, sistemas de acesso, equipamentos de laboratório e pequenas IHMs industriais.
20. Cuidados importantes
- Utilize pull-up ou pull-down corretamente.
- Implemente debounce.
- Evite fios longos sem proteção.
- Proteja entradas em ambientes industriais.
- Organize o código em funções.
21. Exercícios
Exercício 1: Quantas teclas possui um teclado 4x4?
16 teclas
Exercício 2: Quantos fios normalmente possui o teclado 4x4?
8 fios
Exercício 3: O que é varredura?
É o processo de ativar linhas e ler colunas para descobrir a tecla pressionada.
Exercício 4: Para que serve o debounce?
Para evitar múltiplas leituras causadas pelo contato mecânico da tecla.
22. Laboratório prático
Monte um PIC com LCD 16x2 e teclado matricial 4x4. O objetivo é exibir no LCD a tecla pressionada pelo usuário.
Teclado 4x4 → PORTB
LCD 16x2 → PORTD
Ao pressionar uma tecla:
LCD mostra: TECLA = X
23. Projeto integrador
Criar um pequeno sistema de acesso com senha.
Digite senha:
****
Senha correta:
ACESSO LIBERADO
Senha incorreta:
ACESSO NEGADO
24. Resumo da Aula
- Teclado 4x4 possui 4 linhas e 4 colunas.
- A tecla é identificada pela interseção linha/coluna.
- Varredura é o processo de leitura do teclado.
- Debounce evita leituras duplicadas.
- LCD + teclado permite criar pequenas IHMs.
- É possível criar senhas, menus e configuração de parâmetros.
Próxima Aula – Aula 23
Na próxima aula vamos estudar Memória EEPROM Interna do PIC, aprendendo a salvar configurações, senhas, setpoints e parâmetros mesmo após desligar o equipamento.