instrucción #define Arduino IDE

La instrucción #define en el Arduino IDE permite nombrar valores (constantes) que hacen que el programa sea más comprensible. Es posible definir el nombre de una constante o un fragmento de código una vez al principio del programa, y luego utilizar sólo ese nombre en el código para Arduino Uno. Veamos las formas correctas de utilizar la sentencia #define en el lenguaje de programación Arduino IDE con descripciones.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED y resistencia de 220 Ohm;
  • placa de pruebas;
  • cables de conexion.

Declaración constante con #define Arduino IDE

Las constantes definidas con la directiva #define no ocupan espacio en la memoria, ya que el Arduino IDE sustituye los valores por los nombres al compilar el boceto. El funcionamiento de esta directiva puede compararse con el de SEARCH y REPLACE. Durante la compilación el IDE de Arduino encuentra un pieza de código «que necesita ser cambiado» en el programa y lo sustituye por un pieza de código «que necesita ser cambiado».

Sintaxis de la instrucción #define Arduino, ejemplo

#define RED 11
#define GRN 12
#define BLU 13
 
void setup() {
   pinMode(RED, OUTPUT);
   pinMode(GRN, OUTPUT);
   pinMode(BLU, OUTPUT);
}

void loop() {
   digitalWrite(RED, HIGH);
   delay(1000);
   digitalWrite(RED, LOW);
   delay(1000);
}

Aquí está parte del código del ejemplo con el LED tricolor intermitente Arduino. En el ejemplo hemos dado nombres a los pines 11, 12 y 13. En el programa, es más conveniente utilizar nombres en lugar de números, para no tener que recordar cada vez qué color está conectado a qué pin. El Arduino IDE sustituirá automáticamente los nombres RED, GRN, BLU por los valores correspondientes durante la compilación.

Función #ifdef, #ifndef y #endif

#ifdef Arduino IDE comprueba si esta definición se ha encontrado previamente en el programa; si es así, el bloque de código se coloca desde la siguiente línea hasta #endif. El ejemplo comprueba si el signo de depuración ha sido definido previamente en #define, si lo ha hecho, el código (emitiendo un mensaje al monitor del puerto serie de Arduino IDE) se ejecutará, si el signo no está definido, el mensaje no se emitirá al monitor del puerto.

#ifdef A PROPOS DE
   Serial.println ("Message");
#endif

#ifndef Arduino IDE comprobará si esta definición ya se ha encontrado en el programa y, si no, pondrá un bloque de código de la siguiente línea a #endif. En el siguiente ejemplo sencillo, declaramos una nueva constante, a menos que ya la hayamos declarado antes en un sketch. Si ya se ha utilizado una definición con este nombre, el programa ignorará las líneas dentro de la construcción #ifndef … #endif.

#ifndef RED
   #define RED 11
#endif



Conclusión. A veces es poco práctico utilizar la instrucción #define para crear constantes en un programa Arduino, en cuyo caso se utiliza la palabra clave const. A diferencia de las variables globales, el valor de const debe ser establecido inmediatamente cuando se declara una constante. El uso de #define o const en un programa no tiene ninguna ventaja en términos de ahorro de espacio de memoria del microcontrolador Arduino.


Deja una respuesta

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