1. El Octavo Bit
  2. / Lenguaje de programación de Arduino
  3. / Tipos de Variables

Tipos de Variables

| Actualizado:
Comentarios: 0

Los tipos de variables que el lenguaje Arduino admite son:

void

Reservado para la declaración de funciones sin valor de retorno.

Sintaxis:

void setup()
void loop()

boolean

Las variables de este tipo solo pueden tener dos valores: verdadero o falso. Se utilizan para almacenar un estado de entre esos dos posibles, y así hacer que el código reaccione según detecte verdadero o falso. Por ejemplo, las variables booleanas se pueden usar para comprobar si se han recibido datos de un sensor o no, para comprobar si algún actuador está disponible o no, para comprobar si el valor de otra variable diferente cumple una determinada condición, como por ejemplo la de ser mayor que un número concreto o no. El valor guardado en una variable booleana ocupa siempre un byte de memoria.

Para asignar a una variable de tipo boolean el valor de verdadero, se puede utilizar la palabra especial true o bien el valor 1, y para asignarle el valor de falso se puede utilizar la palabra especial false o bien el valor 0

Sintaxis:

boolean testVariable = true;

Ejemplo:

En este ejemplo vamos a utilizar una variable boleana que segun su estado encendera un LED, para cambiar el estado utilizaremos un botón. El esquema para el ejemplo sería:

Esquema de conexión para el ejemplo boolean

Código:

int LEDpin = 13;
int boton = 8;

bool estado = false;

void setup() {
  Serial.begin(9600);
  pinMode(LEDpin, OUTPUT);
  pinMode(boton, INPUT);
  digitalWrite(boton, HIGH);
}

void loop() {
  //Leemos el valor que tiene el interuptor
  if (digitalRead(boton) == LOW) {
    delay(100);
    //Cambiamos de valor negando la misma variable
    estado = !estado;
    //Indicamos con el led el nuevo estado lógico
    digitalWrite(LEDpin, estado);
  }
  Serial.println(estado);
}

Tenemos una variable denominada estado de tipo bool, que es la que determinara si el LED esta encendido o apagado.

char

El valor que puede tener una variable de tipo char es un solo caracter (una letra, un dígito, un signo de puntuación…). Si lo que queremos es almacenar una cadena de caracteres (es decir, una palabra o una frase) el tipo char no nos sirve, deberemos usar otro tipo.

En realidad almacenar un carácter ASCII ocupa 8 bits (un byte). Esto permite almacenar caracteres como valores numéricos (su código ASCII asociado). El código ASCII para el caracter «a» es 97, si le añadimos 3 obtendríamos el código ASCII del caracter «d».

Sintaxis:

char testVariable = "a";
char testvariable = 97;

unsigned char

Este tipo de datos es idéntico al tipo byte explicado anteriormente. Se utiliza para codificar números de 0 hasta 255. Ocupa 1 byte de memoria

Sintaxis:

unsigned char testUnCh = 36;

byte

El valor que puede tomar un dato de este tipo es siempre un número entero entre 0 y 255. Al igual que las variables de tipo char, las de tipo byte utilizan un byte (8 bits) para almacenar su valor y, por tanto, tienen el mismo número de combinaciones numéricas posibles diferentes (256), pero a diferencia de aquellas, los valores de una variable byte no pueden ser negativos.

Sintaxis:

byte testVariable = 25;

int

El valor que puede tomar una variable de este tipo es un número entero entre -32768 (-215) y 32767 (215-1), gracias a que utilizan 2 bytes (16 bits) de memoria para almacenarse. Esto es igual para todas las placas Arduino excepto para la Due (este modelo el tipo int utiliza 4 bytes) y por tanto, su valor esta dentro de un rango mayor, entre -2,147,483,648 (-231) y 2,147,483,647 (231 -1) .

Sintaxis

int testVariable = 16254;

word

Este tipo de dato nos permite almacenar un número entero entre 0 y 65535. Utiliza 2 bytes (16 bits) de memoria para almacenarse. No puede tener signo negativo.

Sintaxis:

word valor = 25;

long

Este tipo de dato nos permite almacenar un número entero comprendido en el rango de -2147483648 a 2147483647. Utiliza 4 bytes (32 bits) de memoria.

Sintaxis:

long variable [= valor];

unsigned long

Es una variable de tamaño extendido, permite almacenar 4 byte (32 bits), pero sin signo es decir no almacena números negativos, teniendo un rango desde 0 a 4294967295 (2^32-1). Normalmente se utiliza para almacenar los resultados de la función millis() de Arduino.

Sintaxis:

unsigned long variable [= valor];

Ejemplo:

Vamos hacer parpadear el LED conectado al pin 13 sin usar delay(). El esquema de conexión sería:

Esquema de conexión para el ejemplo unsigned long

Código:

unsigned long hora=0;

void setup(){
   pinMode(13, OUTPUT);
}

void loop(){
   if (millis() - hora > 500){
      hora = millis();
      digitalWrite(13, !digitalRead(13));
   }
}

float

Tipo de datos para números de punto flotante, un número que tiene un punto decimal. Los números de punto flotante a menudo se usan para aproximar valores analógicos y continuos porque tienen mayor resolución que los enteros. Los números de punto flotante están comprendidos entre -3.4028235E + 38 y 3.4028235E + 38. Permiten almacenar 4 bytes (32 bits) de información.

Los 32 bits esta distribuidos de la siguiente forma:

  • EL primer bit corresponde al signo.
  • Los 8 siguientes son la parte entera.
  • Los 23 restantes son los decimales.

Sintaxis:

float variable [= valor];

String

El tipo de dato String en Arduino es una clase que proporciona una serie de funciones y operaciones para trabajar con cadenas de caracteres.

Sintaxis:

String miCadena = "Hola, mundo!";

La clase String en Arduino proporciona una variedad de métodos que te permiten realizar operaciones comunes con cadenas de caracteres. Algunos de los métodos más utilizados son:

  • length(): Devuelve la longitud de la cadena.
int longitud = miCadena.length();
  • charAt(index): Devuelve el carácter en la posición especificada.
char primerCaracter = miCadena.charAt(0);
  • concat(str): Concatena otra cadena al final de la cadena actual.
miCadena.concat(" Adiós");
  • c_str(): Devuelve un puntero a la representación de la cadena como un arreglo de caracteres tipo C (cadena de caracteres).
const char *cadenaC = miCadena.c_str();
  • equals(str): Compara la cadena con otra y devuelve true si son iguales.
if (miCadena.equals("Hola")) { 
    // Hacer algo si la cadena es "Hola" 
}
  • indexOf(str): Devuelve la posición de la primera ocurrencia de la subcadena especificada, o -1 si no se encuentra.
int posicion = miCadena.indexOf("mundo");
  • substring(startIndex, endIndex): Devuelve una subcadena desde startIndex hasta endIndex.
String subcadena = miCadena.substring(0, 4); // Obtiene los primeros 4 caracteres
  • startsWith(prefix), endsWith(suffix): Verifica si la cadena comienza o termina con la subcadena especificada.
if (miCadena.startsWith("Hola")) { 
    // Hacer algo si la cadena comienza con "Hola"
}
Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *