ARD-SYN 02 – Sintaxis (II). Las secciones setup y loop

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Tras el artículo anterior, en el que resumíamos los contenidos que forman parte de la primera sección de un sketch Arduino, en este artículo vamos a centrarnos en las secciones setup y loop, y en las instrucciones que podemos llegar a encontrar aquí.

LA SECCIÓN setup

Esta sección se ubica como segundo bloque de un sketch Arduino. Algunos autores lo citan como primer bloque de programación, por no considerar parte de la misma la zona donde hemos definido las variables del sketch. También lo consideran así quienes definen las variables del skecth en el ámbito donde van a ser usadas (sección setup o sección loop). En general, es una cuestión de criterios. Aunque hay ocasiones en que ciertas variables pueden (o, incluso, deben) ser definidas en alguna de las citadas secciones, a los autores de estos artículos nos gusta fragmentar la operativa por razones de claridad.

En la sección setup se incluyen aquellas instrucciones que deben ejecutarse una sola vez durante la ejecución del sketch. Normalmente son las destinadas a inicializar pines, dispositivos, etc. Tenemos un ejemplo muy simple, pero descriptivo, en el artículo 5, entre otros:

void setup() {

    pinMode (LED, OUTPUT);
}

Como vemos, la sección sólo incluye una línea de código en la que se configura el pin definido en LED como de salida, es decir, para “escribir” en él. Este es un ejemplo muy claro de instrucción que sólo debe ejecutarse una vez durante el ciclo de vida del sketch. Normalmente, una vez definida la operativa de un pin, no es necesario redefinirla (salvo casos muy puntuales).

Esta sección se declara como void, ya que no esperamos que devuelva ningún resultado a ninguna parte.

LA SECCIÓN loop

En esta sección escribiremos lo que es, a falta de una denominación mejor, la “parte activa” del sketch. Esto significa que aquí incluiremos todas las instrucciones que deban ejecutarse para que el sketch opere como deseamos. El nombre de esta sección es muy adecuado, ya que el código aquí contenido se ejecuta completamente y, al finalizar, vuelve a ejecutarse desde el principio.

En esta sección, por lo tanto, incluiremos tres tipos básicos de contenido:

  • Lectura procedente de los actuadores. Esto quiere decir que aquí leeremos los datos que deba recibir Arduino por los pines que se hayan configurado como “de entrada”, así como procedentes de la consola serie del IDE, o cualesquiera otras fuentes de datos que Arduino deba de recibir (shields wifi o ethernet, antenas bluetooth, etc.).
  • Procesamiento de los datos de entrada, según se haga necesario para que el sketch haga lo que esperamos de él.
  • Escritura de datos en los dispositivos necesarios, conectados a los pines de salida (pueden ser señales enviadas a un LED, o a un servomotor, un relé, etc.

Al igual que la sección anterior, esta también es de tipo void (no devuelve nada a ninguna parte).

Vemos un ejemplo de una sección loop típica, con las tres tipificaciones de código que reseñábamos hace un momento, en el artículo 09:

void loop() {

    valorMedido = analogRead(pinPot);
    Serial.print("Valor medido: ");
    Serial.print(valorMedido);
    Serial.print("\t-\t");
    angulo = map(valorMedido, 0, 1023, 0, 179);
    Serial.print("Ángulo: ");
    Serial.println(angulo);
    miServoMotor.write(angulo);
    delay(50);
}

Este artículo ha sido muy breve, pero muy específico. En el próximo nos centraremos en el procesamiento matemático de datos en Arduino.

     

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *