estoy tratando de hacer funcionar un codigo con switch anidados.
lo subo resumido, el switch simple me funciona perfecto, asi que lo subo con una sola opcion ya que lo demas se refiere a 3 servos mas conectados, la inteniones que por ejemplo preciono la A deberia ir a case A. y yo cargar los grados del movimiento y asi sucesivamente, pero no me funciona ni la primera opcion "A" las demas serian repetitivas de esta. la verdad no se porque no me selecciona las opciones.
#include <Keypad.h>
#include <Servo.h>
Servo miservo;
Servo miservo2;
Servo miservo3;
Servo miservo4;
const byte Filas = 4; //KeyPad de 4 filas
const byte Cols = 4; //y 4 columnas
byte Pins_Filas[] = {33,35,37,39}; //Pines Arduino para las filas.
byte Pins_Cols[] = {41,43,45,47}; // Pines Arduino para las columnas.
char ABCD;
char pulsacion;
String valor_util = ""; // teclas digitadas
int datos_ingresado ; // cadena de datos digitados a travez del teclado
//int numero; // datos mostrar puerto serie
char cadena[17]; // la conversion a número
char Teclas [Filas][Cols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'.','0','#','D'}
};
Keypad Teclado = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
void setup() {
miservo.attach(5);
miservo.attach(4);
miservo.attach(3);
miservo.attach(2);
Serial.begin(9600);
}
void loop() {
ABCD = Teclado.getKey();
pulsacion =Teclado.getKey();
switch (ABCD) {
case 'A' :
switch (pulsacion) {
case '0' ... '9':
valor_util +=pulsacion; // se agrega a la cadena
break;
case '#' : // guardo los datos
valor_util.toCharArray(cadena, 17);
datos_ingresado = atof (cadena);
Serial.println(datos_ingresado); // veo el angulo ingresado.
break;
case '*': // teclas para borrar
valor_util ="";
break;
}
case 'B':
// miservo2
break;
case 'C':
//miservo3
break;
case 'D':
//miservo4
break;
}
miservo.write(datos_ingresado);
}