RECURSOARD. ARD.BLO..1- Las partes de un programa de Arduino

Un programa de Arduino tiene tres partes diferenciadas:


Un primer bloque de ámbito global en donde se definen las variables constantes y objetos que serán utilizados en todo el programa. En adelante, nos referiremos a esta primera parte como bloque de declaración y definición.
Este bloque lo identificamos únicamente porque es la parte inicial de los programas, no tiene ningún identificador que denote su existencia. El bloque es opcional, de manera que puede haber programas de Arduino que no contengan este primer bloque.

 

/////////////////////////////////////////////////////////////////
////// BLOQUE DE DECLARACIONES Y DEFINICIONES GENÉRICAS /////////
/////////////////////////////////////////////////////////////////




Un segundo bloque de inicializacion que se ejecuta únicamente una vez cuando se pone en marcha el programa de Arduino en el micro.
Este bloque se usa normalmente para establecer en la placa un estado inicial. Dicho de otra manera, suele servir para configurar la placa.
Este bloque puede identificarse porque se corresponde con la definición de la función setup ( escribiendo void setup() ). El nombre setup es un nombre reservado por Arduino para la definición del bloque de inicialización.

 

//////////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DE LA INICIALIZACIÓN /////////
//////////////////////////////////////////////////////////

void setup() {

  // Aqui van las cosas que se ponen para inicializar el micro
 

} // fin de la definición de la función de INICIALIZACIÓN setup()




Un tercer bloque de programa que se ejecuta de manera cíclica tras la ejecución de la inicialización. De manera cíclica significa que cuando acaba vuelve nuevamente a comenzar desde el principio.
Este bloque se usa para escribir el programa de Arduino propiamente dicho. Típicamente, un programa de Arduino lee sensores, toma decisiones y escribe sobre los actuadores. Esto lo hace de forma cíclica, es decir que tras actuar sobre los actuadores, vuelve a leer los sensores, vuelve a tomar decisiones, etc. Así indefinidamente.

 

///////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DEL PROGRAMA //////////////
///////////////////////////////////////////////////////

void loop() {

   // Aqui van las cosas que se ponen para que el micro realice las acciones que queremos

} // fin de la función de PROGRAMA loop()




Este bloque puede identificarse porque se corresponde con la definición de la función loop ( escribiendo void loop() ). El nombre loop también es un nombre reservado por Arduino para la definición del bloque de programa.

Así las cosas, el esqueleto vacío de un programa de Arduino podría ser el que se pone a continuación.

 

/////////////////////////////////////////////////////////////////
////// BLOQUE DE DECLARACIONES Y DEFINICIONES GENÉRICAS /////////
/////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DE LA INICIALIZACIÓN /////////
//////////////////////////////////////////////////////////


void setup() {


} // fin de la definición de la función de INICIALIZACIÓN setup()


///////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DEL PROGRAMA //////////////
///////////////////////////////////////////////////////

void loop() {


} // fin de la función de PROGRAMA loop()




Y un programa que tuviese algo de contenido, podría ser el que se muestra a continuación

 
/////////////////////////////////////////////////////////////////
////// BLOQUE DE DECLARACIONES Y DEFINICIONES GENÉRICAS /////////
/////////////////////////////////////////////////////////////////


// Constantes genéricas

#define APAGADO 0
#define ENCENDIDO 1
#define SALIDA 1
#define TIEMPO_DE_ESPERA_ENCENDIDO 700
#define TIEMPO_DE_ESPERA_APAGADO 1000

// Constantes de los pines usados

#define PIN_LED_ROJO 12


//////////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DE LA INICIALIZACIÓN /////////
//////////////////////////////////////////////////////////


void setup() {
  // Modo de los pines de salida.
  pinMode(PIN_LED_ROJO, SALIDA);

} // fin de la definición de la función de INICIALIZACIÓN setup()


///////////////////////////////////////////////////////
////// BLOQUE DE DEFINICIÓN DEL PROGRAMA //////////////
///////////////////////////////////////////////////////

void loop() {

  // Cálculos y decisiones. Escritura sobre los actuadores.

  digitalWrite(PIN_LED_ROJO, ENCENDIDO);
  delay(TIEMPO_DE_ESPERA_ENCENDIDO);
  digitalWrite(PIN_LED_ROJO, APAGADO);
  delay(TIEMPO_DE_ESPERA_APAGADO);

} // fin de la función de PROGRAMA loop()