68:16: error: switch quantity not an integer 69:43: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

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);

}

void loop()
{
  char tec;
  tec = leTeclado();
  switch (tec)
  {
    case '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':
      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;
  }
1 Like

Omg thank you!!!

1 Like

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.