Approved Reseller
Approved Reseller
Ahora veremos algunas sentencias que nos pueden ayudar a controlar el flujo del programa. Veremos la condición IF el ciclo WHILE y el FOR. Además de estos vamos a ver algunos operadores que pueden ayudarte a verificar ciertas condiciones.
La sentencia IF permite ejecutar una porción de código si es que se cumple la condición. Podemos decirle al programa que vea si un botón esta presionado, si está presente una conexión o si una variable ha llegado a un valor que hemos establecido. Puedes verla ejemplificada en este código, evaluando como hemos presionado dos botones:
//Declaración de constantes const int Led = 25; //Da el nombre “Led” para el pin 2 const int Boton1 = 14; //Da el nombre “Boton1” para el pin 3 const int Boton2 = 15; //Da el nombre “Boton2” para el pin 4 void setup() { pinMode(Boton1, INPUT); //Configura el pin "Boton1" como entrada digital pinMode(Boton2, INPUT); //Configura el pin "Boton2" como entrada digital pinMode(Led, OUTPUT); //Configura el pin "Led" como salida digital } void loop() { //Verifica el estado digital en que se encuentra el pin “Boton1” y almacena //la información en la variable “Estado1”. int Estado1 = digitalRead(Boton1); //Verifica el estado digital en que se encuentra el pin “Boton2” y almacena //la información en la variable “Estado2”. int Estado2 = digitalRead(Boton2); //La estructura de control “if” permite realizar un conjunto de instrucciones si se //cumple con la condición indicada. Cuando la condición no se cumple el //conjunto de instrucciones no se realiza. //Si “Estado1” es igual a 1 y “Estado2” es igual a 1, se ejecutan las instrucciones //agrupadas dentro de las llaves. if (Estado1 == 1 && Estado2 == 1) { digitalWrite(Led, LOW); //Establece el estado del pin “Led” en bajo (0V) } //Si “Estado1” es igual a 0 y “Estado2” es igual a 0, se ejecutan las instrucciones //agrupadas dentro de las llaves. if (Estado1 == 0 && Estado2 == 0) { digitalWrite(Led, LOW); //Establece el estado del pin “Led” en bajo (0V) } //Si “Estado1” es igual a 1 y “Estado2” es igual a 0, se ejecutan las instrucciones //agrupadas dentro de las llaves. if (Estado1 == 1 && Estado2 == 0) { digitalWrite(Led, HIGH); //Establece el estado del pin “Led” en alto (3.3V) } //Si “Estado1” es igual a 0 y “Estado2” es igual a 1, se ejecutan las instrucciones //agrupadas dentro de las llaves. if (Estado1 == 0 && Estado2 == 1) { digitalWrite(Led, HIGH); //Establece el estado del pin “Led” en alto (3.3V) } }
El ciclo while permite ejecutar una porción de código mientras se mantenga verdadera la expresión que pongamos dentro del ciclo. Por ejemplo, podríamos decir que se encienda una lámpara mientras mantengamos presionado un botón. Cuando la sentencia deje de cumplirse, se termina la ejecución y se continua con el código. En este ejemplo el LED va a parpadear mientras presionemos en botón
const int led = 25; const int push_button = 14; void setup() { Serial.begin(9600); pinMode(push_button,INPUT); pinMode(led,OUTPUT); } void loop() { while( digitalRead(push_button) == 1){ digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW); delay(100); } digitalWrite(led, LOW); delay(10); }
El ciclo for permite ejecutar un conjunto de instrucciones por una cantidad de repeticiones. Generalmente se usa con un contador y le damos un limite de veces. Por ejemplo, en este código el ciclo for se repite desde que i es cero hasta que sea menor que 10, es decir, se repetirá 10 veces en total. Dentro del ciclo for queremos que el LED integrado en la tarjeta parpadee 10 veces y luego se apague por 2 segundos.
//Declaración de constantes const int LED = 25; //Da el nombre “LED” al pin 25 void setup() { //Inicializa la comunicación serial a 9600 bits por segundo pinMode(LED, OUTPUT); //Configura el pin "LED" como salida digital } void loop() { //Enciende y apaga el LED 10 veces y luego espera 2 segundos for(int i=0; i<10; i++){ digitalWrite(LED, HIGH); delay(50); digitalWrite(LED, LOW); delay(50); } delay(2000); }
Referencias:
Manual de introducción a Arduino – 330ohms