Hola,
Aclaro que soy nuevo en esto y solo poseo conocimientos basicos de C.
Estoy tratando de hacer un menu en al menos 2 niveles.
Opcion A > Opcion A1 > Opcion A1.1 , creo que se entiende.
Estoy utilizando switch para las opciones y un teclado matricial de 4X4.
Pero no consigue que pase a la segunda etapa del menu (SubMenu1).
Ojala alguien me pueda ayudar o indicar donde estoy equivocado.
#include <Keypad.h> //llama a la librería Keypad.h
const byte ROWS = 4; //Numero de filas del teclado que se esta usando
const byte COLS = 4; //Numero de columnas del teclado que se esta usando
char hexaKeys[ROWS][COLS] = //Aquí pondremos la disposición de los caracteres tal cual están en nuestro teclado
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //Seleccionamos los pines en el arduino donde iran conectadas las filas
byte colPins[COLS] = {5, 4, 3, 2}; //Seleccionamos los pines en el arduino donde iran conectadas las filas
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //inicializa el teclado
char tecla;
void setup()
{
Serial.begin(9600); //inicializar puerto serie
Serial.println ("Etapa A");
Serial.println ("Etapa B");
Serial.println ("Etapa C");
pinMode(13, OUTPUT); //Pin Led
}
void loop()
{
tecla=customKeypad.getKey();
if (tecla){
switch(tecla){
case 'A':
Serial.println ();
Serial.println ("Etapa_A A");
Serial.println ("Etapa_A B");
digitalWrite (13, HIGH);
SubMenu1();
break;
case 'B':
Serial.println ();
Serial.println ("led apagado");
digitalWrite (13, LOW);
break;
}
}
}
################################################
void SubMenu1(){
tecla=customKeypad.getKey();
if (tecla){
switch(tecla){
case 'A':
Serial.println ("Primera Etapa A");
Serial.println ("Segunda Etapa B");
Serial.println ("Tercera Etapa C");
Serial.println ("Cuarta Etapa D");
SubMenu2();
break;
case 'B':
Serial.println ("Ingrese Tiempo Fijo");
Serial.println ("Ingrese Temperatura Fijo");
break;
}
}
}
####################################################
void SubMenu2(){
tecla=customKeypad.getKey();
if (tecla){
switch (tecla){
case 'A':
Serial.println ("Ingrese Tiempo");
Serial.println ("Ingrese Temperatura");
break;
case 'B':
Serial.println ("Ingrese Tiempo B");
Serial.println ("Ingrese Temperatura B");
break;
case 'C':
Serial.println ("Ingrese Tiempo C");
Serial.println ("Ingrese Temperatura C");
break;
case 'D':
Serial.println ("Ingrese Tiempo D");
Serial.println ("Ingrese Temperatura D");
break;
}
}
}