HOla amigos
Tengo un problemilla con un programa que intento hacer y no hallo la solución y recurro a vosotros a ver si alguien me echa una mano
intento mediante comunicacion serial que al escribir en el monitor la letra A, se enciendan los tres leds,
cuando escribo la letra B, se encienden el primer led un segundo y se apaga al cabo de un segundo para luego encender el segundo led y apagarse y asi sucesivamente hasta el tercero
cuando escribo la letra C, pretendo que se apaguen todos los leds
el problema es que o bien, no salgo del bucle de la letra B, o bien, solo me ejecuta la rutina correspondiente a B, una sola vez, y yo pretendo que mientras no le diga A o C, siga haciendo la rutina esta de encender o apagar los leds
aqui os dejo el programa
/*
Escritura Serial
*/
int led1 = 13;
int led2 = 12;
int led3 = 8;
int pinArray[]={13,12,8};
int count=0;
int timer=1000;
char leer;
//Funcio principal
void setup()
{
Serial.begin(9600); //Inicia la comunicació serial
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}
//Funció ciclica
void loop()
{
int leer=Serial.read();
if (leer=='a')
{
digitalWrite(led1,HIGH);//encen el LED
digitalWrite(led2,HIGH);//encen el LED
digitalWrite(led3,HIGH);//encen el LED
}
if (leer=='b')
{
for (count=0;count<3;count++)
{
digitalWrite(pinArray[count],HIGH);
delay (timer);
digitalWrite(pinArray[count],LOW);
delay(timer);
}
}
if (leer=='c')
{
digitalWrite(led1,LOW);//apaga el LED1
digitalWrite(led2,LOW);//apaga el LED2
digitalWrite(led3,LOW);//apaga el LED3
}
}
//Fin del programa
Alguien puede decirme que es lo que hago mal, para que o bien pueda salir de la rutina correspondiente a la letra B, cuando escribo A o C, o bien lo haga indefinidamente hasta que reciba otra orden
Gracias por adelantado