Sketchs

Los sketchs son los archivos de código que conforman un programa arduino. El fichero principal suele tener el mismo nombre que el proyecto y terminar en .ino. Por ejemplo: blink.ino.

El fichero suele divirse en 4 partes.


/**
 * #### PARTE 1: Includes y defines ####
 *
 * Aquí se incluirán todos los ficheros y bibliotecas que componen nuestro programa
 * así como las definiciones
 */

//Incluimos la biblioteca para controlar servos
#include <Servo.h> 

//Incluimos las bibliotecas para usar los NeoPixel
#include <Adafruit_Neopixel.h> 

//Definimos el PIN_LED. Los defines son constantes que usamos en nuestro programa
//para mayor comidad. Si después cambiamos la posición del LED basta con modificar el 
//define en vez de buscar todos los sitios dónde habríamos puesto «13»
#define PIN_LED 13


/**
 * #### PARTE 2: Variables globales ####
 * 
 * Aquí definiremos las variables globales de nuestro código, que son aquellas que queremos que estén
 * accesibles desde cualquier lugar el programa
 */

 int ledStatus = LOW; //Definimos el valor del LED a LOW (apagado)


 /**
 * ### PARTE 3: Función setup() ####
 * 
 * La función setup() es una función que se ejecutará al encender nuestro arduino una única vez.
 * Se usa para inicializar valores y configurar los GPIOs.
 */

 void setup() {
    pinMode(PIN_LED, OUTPUT); //Configuramos nuestro PIN como modo salida.
    digitalWrite(PIN_LED, LOW); //Nos aseguramos que nuestro LED comienza como apagado.
 }


 /**
 * ### PARTE 4: Función loop() ####
 * 
 * La función loop() será la que se repita infinitamente en nuestro programa. 
 * Cada vez que termina de ejecutarse comienza a ejecutarse de nuevo desde el principio.
 * En ella definiremos el comportamiento de nuestro programa
 */

 void loop() {

    //Si el ledStatus está encendido, lo ponemos apagado y viceversa 
    if (ledStatus == LOW)
       ledStatus = HIGH;
    else
       ledStatus = LOW;

    //Ponemos el PIN al modo que corresponda
    digitalWrite(PIN_LED, ledStatus);

    //Esperamos 1 segundo (1000 milisegundos)
    delay(1000);

 }