Eu preciso que o número selecionado no teclado matriarcal aparece no dispaly de 7 segmentos. Não sei o que fazer me ajudem por favorrr
#include <LiquidCrystal.h>
#define SegA 3
#define SegB 2
#define SegC A4
#define SegD A3
#define SegE A2
#define SegF 4
#define SegG 13
byte disp[10] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110};
const int l = 1, d = 0;
char tecla[4][4] = { {'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'} };
char leTeclado(void) {
byte lin, col;
for(col=0; col < 4; col++)
digitalWrite(8-col,HIGH); // todas as colunas desabilitadas
for(lin=0; lin < 4; lin++)
for(col=0; col < 4; col++) {
digitalWrite(8-col,LOW);
if(digitalRead(12-lin) == LOW)
return tecla[lin][col];
digitalWrite(8-col,HIGH); // retorna o valor da tecla
}
return '\0'; // nenhuma tecla foi pressionada
}
void setup() {
pinMode(12, INPUT_PULLUP); // linha 1
pinMode(11, INPUT_PULLUP); // linha 2
pinMode(10, INPUT_PULLUP); // linha 3
pinMode( 9, INPUT_PULLUP); // linha 4
pinMode( 8, OUTPUT); // coluna 1
pinMode( 7, OUTPUT); // coluna 2
pinMode( 6, OUTPUT); // coluna 3
pinMode( 5, OUTPUT); // coluna 4
Serial.begin(9600);
pinMode (SegA, OUTPUT);
pinMode (SegB, OUTPUT);
pinMode (SegC, OUTPUT);
pinMode (SegD, OUTPUT);
pinMode (SegE, OUTPUT);
pinMode (SegF, OUTPUT);
pinMode (SegG, OUTPUT);
}
void loop() {
char tec;
tec = leTeclado();
switch (tecla){
case 1: if(digitalRead(tec) == tecla[1]){
digitalWrite(SegA, d); //acende os leds que representam o número 1
digitalWrite(SegB, l);
digitalWrite(SegC, l);
digitalWrite(SegD, d);
digitalWrite(SegE, d);
digitalWrite(SegF, d);
digitalWrite(SegG, d);}
break;
case 2 : if(digitalRead(tec) == tecla[2]){
digitalWrite(SegA, l); //acende os leds que representam o número 1
digitalWrite(SegB, l);
digitalWrite(SegC, d);
digitalWrite(SegD, l);
digitalWrite(SegE, l);
digitalWrite(SegF, d);
digitalWrite(SegG, l);}
break; }
//Serial.println(tec);
delay(500);
}