He creado un sencillo programa con el que usando el monitor serie voy mandando un 1 o un 2 para imprimir una serie de estados.
Este es el codigo que he realizado de prueba:
Código:
int va;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available()== 0){
Serial.println("OFF");
delay (400);
}
if(Serial.available()>0){
va=Serial.read();
while(va=='1') {
Serial.println("Modo 1");
delay (400);
}
}
while (va=='2') {
Serial.println("Modo 2");
delay (400);
}
}
Os resumo lo que hace mi programa:
Si no se detecta comunicación por el puerto serie se imprime "OFF"
Si se detecta un "1" por el puerto serie se imprime "Modo 1"
Si se detecta un "2" por el puerto serie se imprime "Modo 2"
En principio el programa me funciona, el problema lo tengo en el tratamiento de los bucles.
Resulta que si le envío "1" me imprime "Modo 1" pero al enviar un "2" no consigo que me entre al "Modo 2" realmente no sé de qué manera puedo hacerlo, lo he intentado con bucles while o if else e incluso he usado un GOTO para intentar redirigir el programa al otro bucle pero nunca consigo que me cambie al modo 2 una vez que entra en el primer bucle.
No sé de qué manera proceder, y no sé si debería probar con un switch case o interrumpir el programa de alguna manera,
Por favor necesito una mano, solo me falta esta parte para completar la comunicación de forma correcta.
Gracias!!