MBlock 5 a Código Arduino - Procedimientos y Ciclo for
Es muy común ver en nuestros primeros códigos el uso repetitivo de la sentencia digitalWrite() y delay(), en especial cuando estamos programando nuestras primeras secuencias de parpadeo led. Creo que todos recordamos esas secuencias interminables que solo variaban en uno o dos parámetros.
Cuando nos encontramos con un código extenso, es imperante identificar la existencia de patrones en el mismo, como por ejemplo el típico HIGH, delay, LOW, delay. Es posible agrupar estas sentencias que se repiten a lo largo del código dentro de bloques de sentencias, llamaremos a estos bloques "Procedimientos".
Procedimientos
Un procedimiento es un conjunto de sentencias que se ejecutan cuando el procedimiento es llamado. Para comenzar veamos el típico código de una secuencia de parpadeo para 3 led con diferentes intervalos de tiempo entre encendido y apagado.
En el código de la imagen, podemos observar que dentro del loop() las sentencias digitalWrite() y delay() se repiten en cada caja azul, solo variando los pines de trabajo y el tiempo de espera entre encendido y apagado. Una vez identificado el patrón de sentencias que se repiten, las agruparemos dentro de un procedimiento. Para crear un procedimiento lo declararemos luego del loop() como void, seguido del nombre con el cual identificaremos nuestro bloque, en este caso lo llamaremos ParpadeaLed. Cada procedimiento declarado puede o no solicitar argumentos de entrada (eso dependerá de nuestras necesidades). En nuestro caso, en el patrón de repetición cambian dos parámetros, por lo que el procedimiento necesitará que se le entreguen dos argumentos al ser llamado. Todo es mucho mejor cuando vemos un ejemplo.
En void loop() observamos que se realizan llamadas a nuestro procedimiento, en dichas llamadas pasamos los argumentos relacionados con los pines de trabajo y el tiempo de espera entre encendido y apagado. Luego de void loop() definimos nuestro procedimiento declarándolo como void ParpadeaLed(). Dentro de los paréntesis creamos dos variables locales con su respectivo tipo de dato (int en este caso, ya que trabajaremos con números enteros) y separados por comas. Una vez creadas las variables locales, las utilizaremos dentro de nuestro patrón, respetando las condiciones de la secuencia que deseamos programar, es decir, la variable led se ubicará en digitalWrite() (ya que corresponde al pin de trabajo), y la variable tiempo en delay() (ya que corresponde al tiempo de espera entre encendido y apagado).
Ya se habrán dado cuenta de que los procedimientos se declaran de la misma forma que setup() y loop() que vienen por defecto cuando abrimos el IDE de Arduino. Esos procedimientos son propios del código Arduino y el hecho de que los paréntesis estén vacíos se debe a que no necesitan ningún argumento para ejecutarse, setup() ejecutará al menos una vez las sentencias en su interior luego de iniciado el arranque y loop() repetirá en un bucle infinito las sentencias en su interior.
Ciclo for
Para darle un poco más de sabor y versatilidad a nuestro procedimiento ParpadeaLed, incluiremos la opción de controlar el número de repeticiones de parpadeo para cada led. Como ya habrán imaginado, necesitaremos un tercer argumento de entrada que permita modificar dicha repetición.
El ciclo for corresponde a un ciclo finito que repetirá todas las sentencias en su interior siguiendo reglas simples. Para utilizarlo necesitamos pasarle 3 argumentos. Una variable interna, una condición y un incremento/decremento de la variable creada. for(int contador = 1; contador <= repeticiones; contador++) se leería como "para la variable entera contador que comienza en 1, repite siempre y cuando contador sea menor o igual a la variable repeticiones. Finalmente luego de terminar una repetición, aumenta la variable contador en 1". Nótese que la variable repeticiones es un argumento que pasamos cuando realizamos la llamada a ParpadeaLed
Comentários