Tabla de contenido

🔶 Introducción


Arduino soporta varios tipos de datos para almacenar y manipular información

📘 Fundamento Teórico


Los tipos de datos más comunes en Arduino son:

📖 Tabla de operadores en lenguaje C


| Texto | // | /* | */ |   |   |   |   |   |   |   |   | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Puntuación | ; | : |

|   |   |   |   |   |   |   |   | | Compilación y declaración |

|

|   |   |   |   |   |   |   |   |   | | Operadores Aritméticos |

| + | * | / | % |

| += | -= | *= | /= | ++ | | Operadores Booleanos | & | | | ~ | ^ |

| && | || | |= | &= | != | ?! | | Operadores Comparativas | >  | <  | >= | <= |   |   |   |   |   |   |   | | Operadores de Desplazamiento |

| <<  | <<= |

|   |   |   |   |   |   |   | | Paréntesis, corchetes | [ ] | {} | () |   |   |   |   |   |   |   |   | | Apuntadores | -> | & | * | . |   |   |   |   |   |   |   |

📖 Tabla de tipos y tamaños de datos


Para definir variables, constantes arreglos y otras estructuras en C es necesario definir el tipo de dato que se va a utilizar para reservar su espacio en memoria

<aside> ℹ️ El tamaño del dato depende directamente del compilador.

Dato entero (integer) “int”
Computadoras Microcontroladores
32 bits 16 bits
</aside>

En la presente tabla se muestran los tipos de datos utilizados en lenguaje C para microcontroladores y Arduino:

Tipo de dato Arduino AVR-GCC Tamaño en bits Tamaño en bytes Rango (con signo) Rango (sin signo)
Short N/A short 1 bit N/A N/A 0 a 1
integer 1 N/A uint1_t 1 bit N/A N/A 0 a 1
boolean bool N/A 1 bit N/A Verdadero (1) o Falso (0)
integer 8 N/A int8_t 8 bits 1 -128 a 127 N/A
unsigned integer 8 N/A uint8_t 8 bits 1 N/A 0 a 255
N/A byte (Arduino-specific) N/A 8 1 N/A 0 a 255
signed character char 8 1 -128 a 127 N/A
unsigned character unsigned char N/A 8 1 N/A 0 a 255
integer int int16_t 16 2 -32,768 a 32,767 N/A
unsigned integer unsigned int uint16_t 16 2 N/A 0 a 65,535
word word (Arduino-specific) N/A 16 2 N/A 0 a 65,535
signed long long long 32 4 -2,147,483,648 a 2,147,483,647 N/A
unsigned long unsigned long UL 32 4 N/A 0 a 4,294,967,295
float float float 32 4 ±1.18e-38 a ±3.4e38 (con 6-7 dígitos decimales de precisión) N/A
double double double 32 4 Igual que float en Arduino Uno N/A

📖 Definición de Constantes


Una constante es un número, un carácter o una cadena de caracteres que se puede utilizar como valor en un programa, se utilizan para para representar valores flotantes, enteros, de enumeración o de caracteres que no pueden modificarse, también es posible definir nombres de donde están conectados los pines

En el lenguaje de programación de Arduino, hay dos enfoques comunes para declarar constantes: el uso de la palabra clave #define y el uso de la palabra clave const Ambos enfoques tienen sus propias ventajas y desventajas, especialmente en el contexto de microcontroladores

**#define**:

La directiva #define se utiliza en la etapa de preprocesamiento y es una forma de definir constantes simbólicas. Cuando el preprocesador encuentra una directiva 1. #define, reemplaza todas las ocurrencias del símbolo en el código fuente por su valor correspondiente antes de la compilación.

Ventajas:

Desventajas:

/*---Utilizando #define---*/
// no lleva ";" para finalizar la línea
/*--pothole_case_naming--*/
#define PI 3.1416 //No lleva ";"
#define DELAY_1MS 1000 

/*--camelCase or CamelCase--*/
//Para definir constantes
#define PI 3.1416 //No lleva ";"
#define Delay1ms 1000 

<aside> ℹ️ Es recomendable escribirlas en MAYÚSCULAS

</aside>

const:

La palabra clave const se utiliza para declarar una variable como constante. Una vez declarada y asignada, el valor de la variable constante no puede modificarse en tiempo de ejecución.

Ventajas:

Desventajas:

📄 Constantes para definir nombres de pines

<aside> 💡 Entre más legible es el código mayor es su nivel

</aside>

Es una buena práctica colocar nombres a cada uno de los sensores y actuadores conectados a las entradas y salidas del microcontrolador, con el motivo de mejorar la legibilidad del código esto se puede realizar utilizando constantes por medio de #define

<aside> ℹ️ Es recomendable escribirlas en MAYÚSCULAS

</aside>

/*--pothole_case_naming--*/
#define LED0_PIN   13
#define LED1_PIN   12
#define LED2_PIN   11
#define LED3_PIN   10
const uint8_t lED0_PIN = 13;
const uint8_t SWITCH_0 = 11;

/*--camelCase or CamelCase--*/
#define led0Pin    13
#define led1Pin    12
#define led2Pin    11
#define led3Pin    10
const uint8_t led0Pin = 13;
const uint8_t Switch0 = 12;

📖 Definición de Variables


Una variable es un lugar donde se puede almacenar temporalmente un dato, en C las variables tienen un nombre que las identifica “identifier”, y sirve para hacer referencia a ellas. También tienen un tipo, que es el tipo de datos que puede almacenar y un “qualifier” que menciona si el tipo de dato es con sigo o sin signo

<aside> 💡 El tipo de variable preferida para un microcontrolador de 8 bits es la variable entera de 8 bits

</aside>

🔢 Reglas para el nombre de una variable

<aside> ℹ️ Es recomendable escribirlas en minúsculas

</aside>

//pothole_case_naming
byte ****temp_celsius = 0; //0  - 255(8 bits)
**int** variable_1;// 32 bits

//camelCase or CamelCase
float ****tempCelsius;
bool ****variable1;

📓Actividad


Proyecto práctico: semáforo simple

🧠 Ejercicios


❓Preguntas


❗Véase también


✔️ Referencias


👁️‍🗨️ Otros temas


Tipos de Datos en Programación de Microcontroladores