entrada-POST

En la lección anterior, se vio el bucle While y el pulsador, donde podíamos programar acciones mientras que no sucediera algún tipo de evento. Si tienes montado el circuito de la lección anterior, no te hará falta modificar nada, y si no lo tienes, estos son los esquemas de conexión:

zum-3led-4pulsLos módulos de pulsador y de led se conectan a los pines digitales 5 y 3, respectivamente. También puede realizarse con el led integrado en la placa, el cual está conectado al pin número 13.

El bucle Do While

El bucle Do While es parecido, ya que está a la espera del evento, pero tiene ciertas diferencias: mientras que el bucle While se ejecuta mientras se cumpla la condición, el bucle Do While se ejecuta al menos una vez y después comprueba si la condición se cumple. A continuación podéis ver las dos representaciones gráficas del bucle While, izquierda, y el bucle Do While, derecha:

While-loop-diagram Flowchart- dowhile

La sintaxis del bucle Do While puede verse aquí:

En primer lugar nos encontramos con la parte comprendida entre corchetes, donde escribiremos el código que se ejecutará, y en segundo lugar la condición. Una vez que se haya realizado una vez el código incluido dentro del do { }, se comprobará si la condición se cumple o no. En caso de que la condición se cumpla, se volverá a repetir este proceso hasta que se deje de cumplir la condición, mientras que en el bucle While se comprueba la condición antes de ejecutar el código, siendo ésta es la única diferencia entre los bucles While y Do While.

Siguiendo con el ejemplo del código anterior,veamos como sería el código arduino del bucle Do While. Asumamos que existe una variable a que es un entero y que en alguna otra parte de nuestro programa se actualiza, el bucle Do While sería:

Puedes ver la referencia completa del bucle do while aquí.

El pulsador

Para aprender sobre el pulsador y las entradas digitales entra en la entrada anterior del curso, El bucle while y el pulsador.

El código

Asumiendo que has conectado los elementos como se ha descrito al principio de la entrada, es decir, el módulo de pulsador en el pin 5 y el módulo led en el pin 3, podemos comenzar a programar. En primer lugar declaramos unas variables que almacenarán el número del pin al que hemos conectado el hardware. Esta práctica es realmente útil, ya que si modificamos el esquema de conexión, solo tendremos que cambiar una vez el número de pin utilizado. Para ello utilizamos el siguiente código:

Así, en vez de utilizar el número de pin podremos utilizar su nombre, con lo que será más fácil programar, sobre todo si utilizamos como nombre una palabra clave.

Una vez que hemos declarado las variables de los pines, tenemos que indicar como va a funcionar cada uno de los pines, para ello:

Este código es equivalente a:

Una vez hecho esto, vamos a hacer un programa que haga parpadear el LED con dos patrones distintos, uno si no pulsamos el botón y otro si el botón esta pulsado, por lo que el código quedaría así:

Como podrás ver las líneas 21 y 32 tienen delante ” // “, esto indica a Arduino que estas lineas son comentarios, por lo que no se toman en cuenta durante el desarrollo del programa. Hay varias formas de realizar comentarios, la primera ” // ” solo comenta una linea, mientras que ” /* */ ” se utiliza para comentar bloques de código o texto. Puedes ver la referencia de los comentarios aquí.

En la línea de código 23 verás comenzar la estructura de control if-else:

En este código podemos ver como se utiliza firstTime como condición, sin ningún tipo de operación o comparación más. La estructura de control if espera una respuesta del tipo true o false o 1 ó 0, que precisamente es lo que estamos dando, ya que firstTime es una variable de tipo boolean. Si quieres recordar las variables puedes visitar esta entrada del curso o la referencia de Arduino. Además, utilizamos la misma función para crear un patrón en el LED completamente distinto, haciendo el código mucho más corto, fácil de entender y de modificar – por nosotros mismos y los demás.

Si quieres ver los mensajes que envía el programa para saber si está o no dentro del bucle Do While, elimina los comentarios de las lineas 21 y 31 de código.

Como ejercicio, crea una copia del proyecto, busca y modifica manualmente todos los campos donde aparezca la variable led por el número de pin donde tengas conectado el led, en el caso del vídeo en el número 13, y después en el proyecto original, conecta el led en otro pin, modifica el valor de la variable led al principio del código, ¿ves el poder de la asignación de pines a variables?