2.4 Constantes

Algunas variables no cambian de valor durante la ejecución del sketch. En estos casos podemos añadir la palabra reservada ‘const’ al comienzo de la declaración de la variable. Esto se utiliza típicamente para definir números de pin o constantes matemáticas (pi,e,etc…).

const int NoPinLed = 12;
const float pi = 3.1416;

Si tratas de asignar un valor a una constante más adelante en el sketch, el compilador te advertirá de este error mediante un mensaje.

El Arduino tiene una serie de palabras reservadas que son constantes:

 
 
 
 
  • INPUT/OUTPUT (Entrada/Salida). Los pins digitales pueden ser configurados de ambos modos: como entrada (INPUT) o como salida (OUTPUT) mediante la función pinMode(): pinMode(13, OUTPUT);       // Configura el pin 13 como salida digital.
  • INPUT_PULLUP: Reservado como parámetro de la función pinMode() para el uso de resistencias pull-up integradas en el chip Atmega del Arduino.
  • LED_BUILTIN: para el uso del Led de serie con el que viene equipado el Arduino (generalmente conectado al pin digital 13).
  • TRUE/FALSE (Verdadero/Falso). Para el Arduino True (Verdadero) es cualquier valor que no es 0. False (Falso) es el valor 0.
  • HIGH/LOW (Alto/Bajo). Es el valor lógico en una puerta digital: LOW es el valor 0 -0 Voltios- y HIGH es el valor 1 -5 Voltios-
 

Constantes tipo int:

Se trata de constantes usadas directamente en un sketch, como por ejemplo 123. Por defecto, estos números se tratan como enteros (int) pero esto puede cambiarse con los modificadores U y L (ver más abajo).

En general, se consideran las constantes enteras se formulan en base 10 (es decir, como números decimales). Sin embargo, se pueden utilizar notaciones especiales para expresar números en otras bases.

Base Ejemplo Formateador Comentario

10 (decimal)

123 ninguno  

2 (binario)

B1111011 prefijo ‘B’

Máximo 8 bits (0 to 255), Solo caracteres 0-1 válidos

8 (octal)

0173 prefijo “0”

characters 0-7 valid

16 (hexadecimal)

0x7B prefijo “0x”

characters 0-9, A-F, a-f valid

Decimal es base 10. Esta es la base en la que comúnmente trabajamos. Las constantes expresadas sin ningún prefijo se consideran como decimales.

Binario es base 2. Sólo los caracteres 0 y 1 son válidos.

Ejemplo:

B101    // equivale al decimal 5:  ((1 * 2^2) + (0 * 2^1) + 1)

El formato binario (B) solo funcionan con on bytes (8 bits) entre 0 (B0) y 255 (B11111111). Si necesitas utilizar un entero (int de 16 bits) en forma binaria, lo piuedes hacer con un procedimiento en dos pasos como el siguiente:

miInt = (B11001100 * 256) + B10101010;    // B11001100 es el byte de orden superior

Números octales están representados en base ocho. Sólo los caracteres del 0 al 7 son válidos. Valores octales se identifican con el prefijo “0” (cero).

Ejemplo:

0101    // Equivale al número decimal  65:  ((1 * 8^2) + (0 * 8^1) + 1) 

Nota:

Es posible inducer en error al compilador incluyendo por accidente un cero como prefijo de una constante que el compilador va a interpreter como un número octal.

Hexadecimal (o hex) se refiere a numeros en base 16. Los caracteres válidos para estos numeros son las cifras del 0 al 9 y las letras A a la F; A equivale a 10, B a 1 y así hasta la F (15). Valores Hex values se identifican con el prefijo “0x”. Las letras de la A a la F pueden ser escritas tanto en mayúsculas como en minúsculas (a-f).

Ejemplo:

0x101   // Equivale al número decimal 257 decimal   ((1 * 16^2) + (0 * 16^1) + 1)

 Formateadores U y L:

Generalmente, una constant entera es tratada como un int  con las consiguientes limitaciones en cuanto a valores. Para especificar que la constant entera tiene otro tipo hay que añadirle el sufijo:

 
 
 
 
  • ‘u’ o ‘U’ para que el formato de la constante sea “unsigned”. Ejemplo: 33u
  • ‘l’ o ‘L’ para que el formato de la constante sea “long”. Ejemplo: 100000L
  • ‘ul’ o ‘UL’ para que el formato de la constante sea “unsigned long”. Ejemplo: 32767ul
 

Constantes tipo coma flotante (float):

Del mismo modo que las constantes enteras, las constantes en coma flotante se usan para hacer el código más legible. Estas constantes se reemplazan durante la compilación por el valor asignado en la expresión declarativa.

Ejemplo:

n = .005;

Las constantes en coma flotante pueden también ser expresadas en una variedad de notaciones científicas. Ambos caracteres ‘E’ y ‘e’ pueden ser utilizados como indicadores de exponente.

Constante en coma flotante Equivale a y también a
10.0 10  
2.34E5 2.34 + 105 234.000
67e-12 67,0 * 10-12 . 000000000067