Cuando se aprende un nuevo lenguaje de programación, como el de Arduino, siempre se puede ver que existen diferentes tipos de datos para declarar las variables y constantes que se pueden manejar durante el programa. Estos tipos de datos varían en longitud y tipo según el lenguaje o plataforma (arquitectura) para la que te encuentres programando, aunque en muchas ocasiones son similares.
En este tutorial podrás aprender qué son este tipo de datos, cuántos hay, por qué se diferencian, etc. Así, cuando escribas código fuente comprenderás mejor lo que estás haciendo.
¿Qué son los tipos de datos?
En computación, los tipos de datos son atributos que indican sobre la clase de dato (número entero sin signo, número con signo, coma flotante, cadenas alfanuméricas, matrices,…) que se está manejando. Esto también implica ciertas limitaciones o restricciones con los datos, ya que deben respetar una serie de formas y formato. No pueden tomar cualquier valor, ni tampoco operar con ellos de cualquier forma.
Si nos ponemos en el caso de Arduino, ésta placa de desarrollo no es más que un pequeño computador embebido, con una MCU o microcontrolador compuesto de una memoria, una CPU para el procesamiento, y un sistema E/S. En la CPU existe una serie de unidades de cálculo, como la ALU o unidad aritmético-lógica, a la que no le importa el tipo de dato que sea, para ella simplemente se trata de hacer operaciones con ceros y unos, pero en el lado del software sí que importa, ya que para el usuario o para el programador sí que se necesita saber de qué se trata (incluso para el buen funcionamiento del programa, para evitar desbordamientos, vulnerabilidades, etc.).
Tipos de datos en Arduino IDE
Si ya descargaste nuestro curso de programación en Arduino gratuito, o si ya tienes conocimientos de programación en esta plataforma o en cualquier otra, ya sabrás que existen varios tipos de datos. Concretamente, el lenguaje de programación usado por Arduino se basa en C++, por lo que en ese sentido es muy similar. Por ejemplo, los más comunes son:
- boolean (8 bit): un dato booleano, es decir, lógico, y que puede tomar solo valor verdadero o falso.
- byte (8 bit): puede ser de 00000000 a 11111111, es decir, de 0 a 255 en decimal.
- char (8-bit): este byte puede contener varios tipos de caraceteres, como números con signo entre -128 y +127, así como letras.
- unsignedchar (8-bit): lo mismo que byte.
- word (16-bit): es una palabra compuesta por 2 bytes, y puede ser un número sin signo entre 0 y 65535.
- unsignedint (16-bit): un entero sin signo, similar a word.
- int (16-bit): un número entero con signo comprendido entre -32768 y +32767.
- unsignedlong (32-bit): usa cuatro bytes para mayor longitud, pudiendo comprender números entre 0 y 4294967295.
- long (32-bit): similar al anterior, pero puede incluir signo, por lo que sería entre -2147483648 y +2147483647.
- float (32-bit): es un número de coma flotante, es decir, un número con decimales comprendido entre 3.4028235E38 y 3.4028235E38. Ciertamente el microcontrolador Atmel Atmega328P en el que se basa Arduino no cuenta con soporte para números de coma flotante y tiene un límite de 8-bit en su arquitectura. Sin embargo, se pueden usar debido a que el compilador es capaz de generar secuencias de código capaces de hacer la misma función solo usando las unidades de cálculo simples de la MCU.
También puede haber otros tipos de datos más complejos, como los arreglos, punteros, cadenas de texto, etc.