Teclado matricial

Teclado matricial

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.