Neste post vamos ver como programar um teclado matricial utilizando o Arduino. Entretanto a mesma lógica pode usada para programar o teclado matricial com outros microcontroladores.
No vídeo abaixo é mostrado como programar o teclado matricial usando o Tinkercad.
Abaixo é mostrado o código utilizado em nossa aplicação:
char teclado();
char leitura;
void setup()
{
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (10, INPUT);
pinMode (11, INPUT);
pinMode (12, INPUT);
pinMode (13, INPUT);
Serial.begin (9600);
}
void loop()
{
leitura = teclado();
Serial.println (leitura);
}
char teclado() {
digitalWrite (7, HIGH);
digitalWrite (6, LOW);
digitalWrite (5, LOW);
digitalWrite (4, LOW);
if (digitalRead (13) == HIGH) return '1';
if (digitalRead (12) == HIGH) return '4';
if (digitalRead (11) == HIGH) return '7';
if (digitalRead (10) == HIGH) return '*';
digitalWrite (7, LOW);
digitalWrite (6, HIGH);
digitalWrite (5, LOW);
digitalWrite (4, LOW);
if (digitalRead (13) == HIGH) return '2';
if (digitalRead (12) == HIGH) return '5';
if (digitalRead (11) == HIGH) return '8';
if (digitalRead (10) == HIGH) return '0';
digitalWrite (7, LOW);
digitalWrite (6, LOW);
digitalWrite (5, HIGH);
digitalWrite (4, LOW);
if (digitalRead (13) == HIGH) return '3';
if (digitalRead (12) == HIGH) return '6';
if (digitalRead (11) == HIGH) return '9';
if (digitalRead (10) == HIGH) return '#';
digitalWrite (7, LOW);
digitalWrite (6, LOW);
digitalWrite (5, LOW);
digitalWrite (4, HIGH);
if (digitalRead (13) == HIGH) return 'A';
if (digitalRead (12) == HIGH) return 'B';
if (digitalRead (11) == HIGH) return 'C';
if (digitalRead (10) == HIGH) return 'D';
}
Abaixo é possível testar o circuito com a simulação:
Isso é tudo pessoal até o próximo post.