Buenas,
estoy realizando un proyecto de control de temperaturas. El sistema se basa en un servidor des de el que se solicitan los mostreos de un sensor de temperatura con Arduino. El código de orden que recibe el Arduino se compone por un carácter de inicio 'A', carácter de orden 'M', dos valores para indicar el intervalo de mostreo (de 0 a 20) y el código de cierre (en ASCII). Recibo el array correctamente pero no consigo extraer los dos valores de tiempo en una variable int para poder usarla posteriormente. Solo consigo sacar uno de ellos. No sé como puedo hacerlo. A ver si podéis techarme un golpe de mano! Saludos!
PD: os dejo el código que estoy usando a continuación aunque aún no está terminado:
La variable mostreo es donde necesito el valor proporcionado por las posiciones 2 y 3 del array.
char entrada[8]; //array de entrada
char salida [8]; //array de salida
char comanda;
int posicion=0; //posición de lectura array entrada
int PM=0; //PM=0 Paro, PM=1 Marcha
int v; //parametro v array entrada
int mostreo; //freq. de mostreo del sensor
void setup() {
Serial.begin(9600);
}
void loop() {
}
void lectura_array() {
if(Serial.available()) { //Nos dice si hay datos dentro del buffer
memset(entrada, 0,sizeof(entrada)); //memset borra el contenido del array "cadena" desde la posición 0 hasta el final sizeof
while(Serial.available()>0) //Mientras haya datos en el buffer ejecuta la función
{
delay(5); //Poner un pequeño delay para mejorar la recepción de datos
entrada[posicion]=Serial.read();//Lee un carácter del string "cadena" de la "posicion", luego lee el siguiente carácter con "posicion++"
posicion++;
}
}
}
void operacion() {
switch (entrada[1]) {
case 'M':
parada_marxa();
break;
case 'S':
comanda = 'S';
sort_digital();
break;
case 'E':
comanda = 'E';
ent_digital();
break;
case 'C':
comanda = 'C';
ultima_m();
break;
}
}
void parada_marxa() {
pm = entrada[2];
switch (PM) {
case 0:
mostreo = //tiempo entre muestras indicado en el array de entrada
break;
case 1:
break;
}
}
void array_salida() {
salida[0] = 'A';
salida[1] = comanda;
}