En este apartado aprenderás qué es una variable y los tipos de datos que maneja Arduino.
La tarjeta Arduino generalmente se utiliza para registrar los cambios de algún fenómeno físico. Estos datos deben ser representados y almacenados de manera que el microcontrolador pueda procesarlos. Para almacenar los datos que se requieren en un programa se utilizan las variables.
¿Qué es una variable?
Una variable es una localidad de memoria, asociada a un nombre, que almacena un valor que puede cambiar durante la ejecución del programa.
Para crear una variable el primer paso es identificar su tipo de dato.
Tipos de datos
Un tipo de dato está compuesto por un conjunto de valores (dominio) y un conjunto de operaciones que se pueden realizar sobre dichos valores. Arduino maneja diversos tipos de datos. Conozcamos los más comunes:
Tipo de dato | Descripción | Dominio | Espacio de memoria | Ejemplos |
int | Número enteros | -32,768 a 32,767 | 16 bits | 0, 1, 567, 5674 |
float / double | Números reales | -3.4028235E+38 a 3.4028235E+38 | 32 bits | 26.7, 176.0, 7345.89 |
long | Números enteros | 2,147,483,647 a -2,147,483,648 | 32 bits | 0, 678 899, 4 889 889, 2 147 483 647 |
bool | Valores booleanos | true o false | 8 bits | true, false |
char | Caracter alfanumérico | Un caracter alfanumérico | 8 bits | a, 9, $, Z, 0 |
string | Caracteres alfanuméricos | Caracteres alfanuméricos | Hola, nombre | |
byte | Número entero positivo | 0 a 255 | 8 bits | 0, 64, 128, 250 |
Convenciones para nombrar variables
El nombre de una variable, también conocido como identificador de variable, debe seguir algunas reglas. Las más comunes son:
- Debe empezar con una letra.
- NO debe contener espacios en blanco.
- Puede incluir números y el caracter guión bajo “_”.
El nombre de una variable debe describir lo que almacena. Un nombre como promedio facilita saber el contenido de la variable, a diferencia de si la nombramos p, ya que éste último no nos da ninguna pista de la clase de datos que está almacenando. También es recomendable que los nombres de tus variables no sean muy largos.
Si deseas nombrar una variable usando dos palabras, te recomendamos utilizar la regla conocida como camel Case: la primera palabra toda con minúsculas, seguida de la segunda palabra con la primera letra en mayúscula y las demás en minúscula, simulando la joroba del camello.
Ejemplos:
tempAmbiente
tempPromedio
Declaración de un variable
Para crear una variable en Arduino debes indicar su tipo de dato y su nombre. La acción de crear una variable es conocida como declarar una variable. Arduino necesita conocer el tipo de dato porque éste le indica la cantidad de memoria que debe reservar para la variable y cómo representar el valor.
Sintaxis
Para declarar una variable debes especificar el tipo de dato, dejar cuando menos un espacio en blanco, el nombre de la variable y terminar la línea con punto y coma (;).
tipoDato nombreVariable;
Ejemplos:
Declaración de una variable llamada temperatura que puede almacenar números reales.
float temperatura;
Declaración de una variable llamada pinLed que puede almacenar números enteros.
int pinLed;
Declaración de una variable llamada clase que puede almacenar un caracter.
char clase;
Declaración e inicialización de una variable
También es posible darle un valor inicial a la variable en la misma instrucción en la cual la creas, es decir, puedes declarar e inicializar una variable en una misma instrucción.
Sintaxis
tipoDato nombreVariable = valor;
Ejemplos:
Se declara de una variable tipo float llamada temperatura y se inicializa con el valor 17.5
float temperatura = 17.5;
Se declara de una variable tipo int llamada pinLed y se inicializa con el valor 5
int pinLed = 5;
Se declara de una variable tipo char llamada clase y se inicializa con el valor A
char clase = 'A';
Se declara de una variable tipo string llamada nombre y se inicializa con el valor Arduino
string nombre = "Arduino";
Cambiar el valor de una variable
El valor de una variable puede cambiar durante la ejecución del programa. Esta acción se realiza mediante una expresión o sentencia de asignación. Las sentencias de asignación inicializan o cambian el valor almacenado en una variable usando el operador de asignación = (signo de igualdad). El valor de la expresión del lado derecho del signo de igualdad (=) es almacenado en la variable del lado izquierdo (ver Figura 1). Estos valores pueden ser desde un simple dato, hasta expresiones más complejas que pueden contener operadores matemáticos y otras variables.

Ejemplos:
voltaje = 5;
// se asigna el valor 5 a la variable voltaje
voltaje = 4.8 * 6;
// se asigna el valor 28.8 a la variable voltaje
temperatura = analogRead(0);
// se asigna el valor leído en el pin analógico 0 a la variable temperatura
distancia = velocidad / tiempo;
// se asigna el resultado según los valores de las variables
Ámbito de una variable
Una variable puede ser utilizada en todo el sketch o solamente en una determinada función, dependiendo del lugar en que se haga su declaración.
Variables globales
Una variable global se declara afuera de cualquier función y puede ser utilizada por todas las funciones del sketch. Es recomendable declarar las variables globales al inicio del programa, antes de la función setup.
Ejemplo:
En el siguiente programa, la variable valBtn es global, ya que se declara afuera de las funciones setup y loop. Observa que la variable valBtn es utilizada por las dos funciones del programa, es inicializada dentro de la función setup y se modifica su valor dentro de la función loop.
/* Programa que enciende y apaga un led
* con un botón
*/
int valBtn; // declaración de la variable global valBtn
void setup() {
valBtn = 0; // inicialización de la variable valBtn
pinMode(7, OUTPUT);// configura el pin 7 de salida (led)
pinMode(3, INPUT); // configura el pin 3 de entrada (botón)
}
void loop() {
valBtn = digitalRead(3); // lee valor del pin 3 y lo guarda en valBtn
digitalWrite(7,valBtn); // enciende/apaga led según valor valBtn
}
Variables locales
Si la declaración de la variable se realiza dentro de una función, entonces esa variable solamente podrá ser usada por esa función en particular.
Ejemplo:
En este otro sketch, la variable valBtn es local, ya que se declara dentro de la función setup. En este caso, la función loop no podría hacer uso de la variable valBtn, si se colocara alguna instrucción que hiciera referencia a la variable en la función loop, el compilador no reconocería la variable y marcaría un error de ámbito de variable.
/* Programa que enciende y apaga un led
* con un botón
*/
void setup() {
int valBtn = 0; // declaración de la variable local valBtn
pinMode(7, OUTPUT);// configura el pin 7 de salida (led)
pinMode(3, INPUT); // configura el pin 3 de entrada (botón)
}
void loop() {
valBtn = digitalRead(3); // Error: 'valBtn' was not declared in this scope
digitalWrite(7,valBtn); // Error: 'valBtn' was not declared in this scope
}
Constantes
En ocasiones necesitamos almacenar algún valor en una variable, pero ese valor no tendrá ninguna modificación durante la ejecución del programa. En estos casos podemos definir una constante.
Una constante es un valor que no cambia durante la ejecución del programa.
Declaración de una constante
La declaración de una constante en Arduino se realiza de manera similar al de una variable pero se antepone la palabra reservada const.
Sintaxis
const tipoDato nombreConstante = valor;
Ejemplo:
const float pi = 3.1416;
Podemos definir los pines de conexión de nuestros dispositivos como constantes. Esta acción nos permitirá modificar fácilmente el programa en caso de que la conexión del dispositivo cambie a otro pin.
Observa los programas 1 y 2, son iguales, excepto que en el primer caso el led está conectado al pin 13 y en el segundo al led 7. Si tuviéramos que modificar el código, tendríamos que buscar todas las instrucciones relacionadas con el pin 13 y sustituirlo por el pin 7.
Ahora observa los programas 3 y 4, donde se define una constante llamada pinLed. Cuando se modifica el pin de conexión del led, basta con cambiar el valor inicial de la constante de 13 a 7 y ninguna otra instrucción se modifica.
PROGRAMA 1
/* Parpadeo de un led
* conectado al pin digital 13
*/
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
PROGRAMA 3
/* Parpadeo de un led
* conectado al pin digital 13
*/
const int pinLed = 13;
void setup() {
pinMode(pinLed, OUTPUT);
}
void loop() {
digitalWrite(pinLed, HIGH);
delay(1000);
digitalWrite(pinLed, LOW);
delay(1000);
}
PROGRAMA 2
/* Parpadeo de un led
* conectado al pin digital 7
*/
void setup() {
pinMode(7, OUTPUT);
}
void loop() {
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
}
PROGRAMA 4
/* Parpadeo de un led
* conectado al pin digital 7
*/
const int pinLed = 7;
void setup() {
pinMode(pinLed, OUTPUT);
}
void loop() {
digitalWrite(pinLed, HIGH);
delay(1000);
digitalWrite(pinLed, LOW);
delay(1000);
}

Autoevaluación

Para aprender más
Ijorquera. (s/f). Introducción a los tipos de datos con Arduino. https://arduino.cl/introduccion-a-los-tipos-de-dato-con-arduino/
Prometec. (s/f). Introducción a la programación con Arduino. https://www.prometec.net/intro-programacion/