BUeno ayer me puse a jugar con los punteros y aunque logré algo que se acerca digamos que necesita del toque de un buen programador.
El programa funciona con la idea de TESLATRONICA pero no permite mostrar bien los datos de todos los elementos de los vectores. Solo un detalle para seguir trabajando.
Te muestro la idea TESLATRONICA y tu mira si te sirve o no
int i;
int numero_case = 1;
float *myPointer;
float matriz_1 [] = {0, 1.5, 2.8, 3.36, 40, 50};
float matriz_2 [] = {0, 7.05, 4.87, 258.36, 78.34, 5.00};
float matriz_3 [] = {0, 2.47, 7.85, 14, 34, 555.00};
void setup() {
// Incremented by 2 to get 3rd value of our array.
Serial.begin(9600);
Serial.println("Inicio.");
}
void loop() {
float **temp;
switch (numero_case) { //seleccion de cases
case 1: myPointer = &matriz_1[0];
break;
case 2: myPointer = &matriz_2[0];
break;
case 3: myPointer = &matriz_3[0];
break;
case 4: Serial.println("Terminado");
while(1);
break;
}
char buffer[30];
Serial.println();
Serial.println("numero_case =" + String(numero_case));
Serial.println();
for (i = 0; i < 6; i ++) {
temp = &myPointer;
*temp = *temp + i;
// Esto solo funciona en nodemcu y compilado con ST+DEVIOT
//de lo contrario usar Serial.print(**temp), etc etc
sprintf(buffer,"data =%5.2f", **temp);
Serial.println(buffer);
}
delay(2000);
numero_case++;
}
El resultado es bastante aceptable.
numero_case =1
data = 0.00
data = 1.50
data = 3.36
data = 0.00 <= MAL
data = 0.00 <= MAL
data = 0.00 <= MALnumero_case =2
data = 0.00
data = 7.05
data =258.36
data = 0.00 <= MAL
data =40.00 <= MAL
data = 0.00 <= MALnumero_case =3
data = 0.00
data = 2.47
data =14.00 <= MAL
data = 0.00 <= MAL
data =78.34 <= MAL
data = 3.36 <= MAL
Terminado
Como dije le falta trabajo pero probé la idea. No se si será de tu agrado pero respeta tu criterio @TESLATRONICA