A continuación se explica que es un ciclo While () en Arduino. Se explica la sintaxis y el funcionamiento.
Resumen.
El ciclo While (), es un ciclo que se repite mientras se cumpla una condición. Si la condición ya no se cumple, entonces el while () ya no se seguirá ciclando.
Es similar a un ciclo for(). Con la gran diferencia de que en un ciclo for() sabemos cuántas veces se repetirá. Y en el while() se repite hasta que ya no se cumpla una condición.
Int i=0; while( i <20 ) { i = i+1; }
En el ejemplo anterior vemos que el ciclo while() se repetirá mientras la “i” sea menor a 20.
Partes del ciclo while ().
El ciclo while () solamente tiene un parámetro y es la condición:
while( condicion ){ ………… }
Mientras se cumpla la condición, el while() seguirá ciclándose.
Dentro de los corchetes “{” y “}” se escribe el código dentro del ciclo.
While () con un sensor.
Supongamos que un sensor cambia el estado de una variable boleana, entre falso y verdadero. Y queremos que un LED parpadee cuando el sensor indica verdadero y deje de parpadear cuando el sensor indica falso.
El LED lo conectaremos al pin 8 del Arduino y usaremos el comando delay() para el tiempo que va a durar encendido y apagado el ELD.
bool sensor; //Variable controlada por un sensor while( sensor==true ) { digitalWrite(8,HIGH); delay(1000); digitalWrite(8,LOW); delay(1000); }
En el ejemplo anterior, el ciclo while () se repetirá mientras la variable “sensor” sea verdadera (true). Por lo tanto el LED va a prender y apagar siempre que sensor sea verdadero.
Cuando el sensor arroja un valor de falso. Entonces ya no se cumple la condición del ciclo while(). Saldremos del ciclo y el LED dejará de parpadear.
Cuidado con un ciclo while infinito.
El while() puede ocasionar ciclos infinitos si no tenemos cuidado al momento de escribir la condición.
Lo más común, es tener una condición pero que la variable de la condición se nos haya olvidado hacer que cambie su valor.
Int i=0; while( i <20 ) { //Nada en el código modifica a la variable i }
En el caso anterior la “i” siempre valdrá cero, así que nunca será mayor que 20. Por lo tanto el ciclo while () siempre se repetirá.
Aunque parezca algo que muy difícilmente ocurre, si nos descuidamos podremos ocasionar un while () infinito.