Inicio » Programación para Arduino » Tipos de datos en Arduino

¿Qué es un tipo de dato en Arduino?

En Arduino, como en muchos lenguajes de programación, los tipos de datos definen el tipo de valor que puede almacenar una variable. Esto afecta a cómo se almacena y se maneja el valor en memoria.

Cada tipo de dato tiene sus propias propiedades y un rango permitido de valores que puede representar, así como el espacio en memoria que ocupa.

En Arduino es crucial elegir de forma correcta los tipos de datos que se van a manipular debido a los limitados recursos de que disponen las placas.

Piensa que, un Arduino Uno solo tiene 32KB de memoria Flash y 2KB de memoria SDRAM, por lo que es primordial optimizar su uso al máximo.

Si, por ejemplo, quieres trabajar con un dato que ocupa 16 bits, no utilices un tipo que ocupe 64, puesto que estarías desperdiciando una cantidad considerable de almacenamiento.

¿Qué tipos de datos existen en Arduino?

Teniendo en cuenta lo mencionado anteriormente, es importante que conozcas los tipos de datos que existen en Arduino, así como sus características y el espacio que ocuparán cuando se almacenen en memoria.

A continuación tienes todos los tipos de datos primitivos que existen en Arduino:

byte

El tipo byte es un tipo numérico sin signo que permite almacenar valores sin decimales comprendidos entre 0 y 255.

Ocupa 8 bits (1 byte) en memoria.

Ejemplos:

byte num = 60;
byte num2 = 0;
byte num3 = 255;

short

El short es un tipo numérico que permite almacenar valores sin decimales comprendidos entre -32.768 y 32.767.

Ocupa 16 bits (2 bytes) en memoria .

Ejemplos:

short num = -5678;
short num2 = 0;
short num3 = 9375;

int

El tipo int es el más común para trabajar con enteros con signo.

En las placas Arduino basadas en ATmega, como el Arduino Uno, el tipo int soporta un rango de valores desde el -32.768 al 32.767 y ocupa 16 bits (2 bytes) en memoria.

En el Arduino Due y en las placas Arduino basadas en SAMD (como el Arduino Zero), el tipo int ocupa 32 bits (4 bytes) en memoria, por lo que permite almacenar valores desde el -2.147.483.648 hasta el 2.147.483.647.

Ejemplos:

int num = -5678;
int num2 = 0;
int num3 = 9375;

El tipo int soporta el modificador unsigned para permitir solo valores enteros sin signo. El rango soportado va desde el 0 al 65.535, en el caso de las placas basadas en ATmega, y del 0 al 4.294.967.295 en el Arduino Due.

La forma de utilizar este modificador es colocarlo delante de la declaración del entero de la siguiente forma:

unsigned int num = 567889396;

long

Es el tipo entero de mayor tamaño. Ocupa 32 bits en memoria. Lo que permite almacenar valores enterios con signo comprendidos entre el -2.147.483.648 y el 2.147.483.647.

Ejemplos:

long num = -562547278L;
long num2 = 0L;
long num3 = 937245725L;

Como puedes ver en el ejemplo, los valores long siempre llevan una L al final del número, para diferenciarlos de los enteros.

El tipo long también soporta el modificador unsigned, lo que permite almacenar valore sin signo comprendidos entre el 0 y el 4,294,967,295.

La forma de usarlo, al igual que ocurría con el int, es colocar el modificar unsigned antes de la declaración:

unsigned long num3 = 937245725L;

word

Es un tipo entero sin signo que ocupa en memoria 16 bits.

Permite almacenar valores comprendidos entre 0 y 65535.

Ejemplos:

word num1 = 0;
word num2 = 8345;

float

El tipo float es el punto flotante, es decir, los datos numéricos con punto decimal.

Ocupan 32 bits (4 bytes) en memoria y los valores soportados van del -3,4028235E+38 al 3,4028235E+38.

El tipo float en Arduino tiene una precisión de 6 o 7 dígitos.

Son útiles para trabajar con valores analógicos.

Ejemplos:

float num1 = -56.34
float num2 = 0.3456
float num3 = 5.0

double

El tipo double representa valores en puntos flotante de doble precisión.

En las placas basadas en ATmega, como el Arduino Uno, no existe diferencia entre el tipo double y el float. Son exactamente iguales en cuanto a tamaño y precisión.

Sin embargo, en el Arduino Due, el tipo double ocupa 64 bits (8 bytes) y tiene el doble de precisión que el tipo float (unos 15 dígitos).

double num1 = -56.34
double num2 = 0.3456
double num3 = 5.0

bool

El tipo bool es un tipo lógico que solo soporta dos posibles valores: true o false.

Ejemplos:

bool x = true;
bool y = false;

En Arduino existe el alias boolean para el tipo bool. Este alias es específico de Arduino, por lo que no forma parte del estándar:

boolean x = true;
boolean y = false;

char

El tipo char permite almacenar caracteres ASCII y ocupa 8 bits (1 byte) en memoria.

Los caracteres van encerrados entre comillas simples (‘A’), aunque internamente, el tipo char almacena valores numéricos comprendidos entre 0 y 255.

Aunque se pueden realizar operaciones aritméticas con datos de este tipo, es recomendable reservarlo solo para almacenar caracteres y usar el tipo byte para valores sin signo de 8 bits.

Ejemplos:

char letra = 'A' //internamente se almacena como 65
char letraN = 65; //es equivalente a lo anterior

Te avisaré cuando publique nuevo contenido en paraarduino.com y en mi canal de YouTube (@ParaArduino).

No hemos podido validar tu suscripción.
¡Se ha realizado tu suscripción!

Newsletter

Suscríbete para que te avise cuando publique nuevo contenido.

Usamos Brevo como plataforma de marketing. Al hacer clic a continuación para enviar este formulario, consiente que la información proporcionada sea transferida a Brevo para su procesamiento de acuerdo con sus términos de uso