CONTENIDO ►
Un tipo de dato y variable en Arduino IDE es una celda de memoria con un nombre que contiene un valor numérico o alfabético. Con los tipos de datos numéricos (variables) se pueden realizar todas las operaciones matemáticas en un programa: multiplicación, división, suma, resta, conversión a otro tipo de datos, etc. Las variables se escriben en un programa Arduino IDE de la siguiente forma: <tipo> <nombre> = <valor>;
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
Si el valor de una variable global o local no está definido en un programa, se le asigna el valor 0. Las variables que no pueden ser modificadas en el programa después de ser declaradas se llaman constantes. Para definir una constante, añada const antes del tipo de datos de la variable. La siguiente tabla muestra los tipos de datos de Arduino que se pueden utilizar al escribir un programa para el microcontrolador Arduino Uno.
Tabla de variables y tipos de datos del Arduino IDE
| Tipo | Tamaño en memoria | Valores min | Valores max |
| boolean | 1 octet (8 bits) | false | true |
| byte | 1 octet (8 bits) | 0 | 255 |
| char | 1 octet (8 bits) | -128 | 127 |
| int | 2 octet (16 bits) | -32768 | 32767 |
| unsigned int | 2 octet (16 bits) | 0 | 65535 |
| long | 4 octet (32 bits) | -2147483648 | 2147483647 |
| unsigned long | 4 octet (32 bits) | 0 | 4294967295 |
| float, double | 4 octet (32 bits) | -3.4028235E+38 | 3.4028235E+38 |
boolean o bool
boolean es un dato que sólo puede tomar 2 valores: verdadero o falso. También es posible sustituir true por 1 y false por 0. Cada variable booleana ocupa un byte de memoria.
byte
Un dato de byte puede almacenar un número sin signo en 8 bits, de 0 a 255.
char
Los datos de tipo char son datos que pueden contener un carácter. Es un tipo de dato que ocupa un byte de memoria en placa Arduino. El carácter se escribe en una variable char entre comillas simples, así: ‘A’. Para escribir varios caracteres, también llamados cadena, se utilizan las comillas dobles de esta manera: «ABC».
short
Un tipo de dato short puede almacenar un entero de 16 bits independientemente de la placa Arduino: desde -32.768 hasta 32.767 (un valor min de -215 y un valor max de 215-1).
int
Los datos int representan los datos de almacenamiento de los enteros. Es el principal tipo de datos para almacenar números, almacena un valor de 16 bits, es decir, 2 bytes. Esto da un rango de -32.768 a 32.767 (es decir, un valor mín de -215 y un valor máx de 215-1).
unsigned long
Las variables unsigned long pueden almacenar enteros sin signo de 32 bits: de 0 a 4.294.967.295 (232-1).
float
El tipo de datos float se utiliza para almacenar un número de punto flotante. Las variables flotantes se utilizan a menudo para aproximar valores analógicos y continuos porque los datos flotantes tienen una mayor resolución que los enteros.
double
En Arduino UNO y otras placas con procesadores ATMEGA, un dato double funciona exactamente igual que un dato flotante. También ocupa 32 bits, sin ninguna ganancia de precisión adicional. En cambio, en Arduino Due, MKR1000 o Zero, los datos dobles ocupan 64 bits, lo que ofrece más precisión.
Arduino conversión de tipos de datos (variables)
En Arduino IDE, una conversión de variable es la conversión de un valor de variable a un tipo diferente. Por ejemplo, usted quiere convertir un tipo de datos byte a un tipo de datos int en un programa. Para ello, especifique el tipo de variable deseado entre paréntesis antes de la variable a convertir – el resultado devolverá una variable con el nuevo tipo de datos. Aquí hay un ejemplo de conversión explícita de variables de Arduino:
byte x = 150; int y = (int)x;
float x = 15,4; int y = (int)x;
Variables locales y globales de Arduino

Las variables globales y locales tienen diferente visibilidad (tiempo de vida). Una variable local en Arduino sólo vive dentro de la función en la que se inicializó, si intenta acceder a una variable local fuera de la función, obtendrá un error. Por ejemplo, en el programa del LED parpadeante, la variable se declara dentro del bucle for y por lo tanto la variable local int i en Arduino IDE no se puede utilizar fuera del bucle for.
Declarar una variable local en Arduino
#define LED 9 void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } void loop() { for(int i = 0; i <= 255; i++) { analogWrite(LED, i); Serial.println(i); delay(10); } for(int i = 255; i >= 0; i--) { analogWrite(LED, i); Serial.println(i); delay(10); } }
Una variable global en Arduino está disponible en el programa desde cualquier parte de la función o subrutina. El tiempo de vida de una variable de este tipo es desde el principio del programa hasta su final. La variable global int i del siguiente ejemplo se puede utilizar desde cualquier función. El uso de variables significa que no es necesario almacenar su valor, sino hacer referencia a una posición de memoria mediante un nombre determinado.
Declarar una variable global en Arduino
#define LED 9 int i = 0; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); } void loop() { for(i = 0; i <= 255; i++) { analogWrite(LED, i); Serial.println(i); delay(10); } for(i = 255; i >= 0; i--) { analogWrite(LED, i); Serial.println(i); delay(10); } }
Una variable formal de Arduino, es decir, un parámetro pasado a una función, se comporta como una variable local, pero sólo aparece en el programa cuando se llama a la función. Una variable formal se puede leer y escribir en su función, pero cuando la función termina, la variable se elimina de la memoria del microcontrolador. Para ver un ejemplo, cargue el siguiente programa y abra el monitor de puertos de Arduino IDE.
Declarar una variable formal en Arduino
void setup() { Serial.begin(9600); } void loop() { Func(10); delay(500); } void Func(int var) { var = var + 10; Serial.println(var); }
Conclusión. Conocer los tipos de variables te ayudará a utilizar correctamente la capacidad de memoria de la placa Arduino, permitiendo que el microcontrolador trabaje de forma mucho más rápida y eficiente. El uso de variables significa que no es necesario almacenar un valor, sólo hay que referirse a una ubicación de memoria por un nombre determinado.

Deja una respuesta