Tipos de datos
Arduino permite manejar los siguientes tipos de datos:
- Byte. Almacena un valor numérico de 8 bits. Tienen un rango de 0-255.
- Int. Almacena un valor entero de 16 bits con un rango de 32,767 a -32,768.
- Long. Valor entero almacenado en 32 bits con un rango de 2,147,483,647 a -2,147,483,648.
- Float. Tipo coma flotante almacenado en 32 bits con un rango de 3.4028235E+38 a -3.4028235E+38.
- Arrays Se trata de una colección de valores que pueden ser accedidos con un número de índice (el primer valor del índice es 0). Ejemplos de utilización:
- Definición y asignación. int myArray[] = {value0, value1, value2...}
- Definición. int myArray[5]; // declara un array de 6 enteros
- Asignación del cuarto componente. myArray[3] = 10;
- Recuperar el cuarto componente y asignarlo a x. x = myArray[3];
Operadores aritméticos
Empleando variables, valores constantes o componentes de un array pueden realizarse operaciones aritméticas y se puede utilizar el operador cast para conversión de tipos. Ej. int a = (int)3.5; Además pueden hacerse las siguientes asignaciones:
x ++. Lo mismo que x = x + 1.
x --. Lo mismo que x = x - 1, or decrements x by -1.
x += y. Lo mismo que x = x + y, or increments x by +y.
x -= y. Lo mismo que x = x - y .
x *= y. Lo mismo que x = x * y.
x /= y. Lo mismo que x = x / y.
Para su utilización en sentencias condicionales u otras funciones Arduino permite utilizar los siguientes operadores de comparación:
x == y. x es igual a y.
x != y. x no es igual a y.
x < y, x > y, x <= y, x >= y.
Y los siguientes operadores lógicos:
Y lógico: if (x > 0 && x < 5). Cierto si las dos expresiones lo son.
O lógico: if (x > 0 || y > 0). Cierto si alguna expresión lo es.
NO lógico: if (!x > 0). Cierto si la expresión es falsa.
El lenguaje de Arduino presenta las siguientes constantes predefinidas:
TRUE / FALSE.
HIGH/LOW. Estas constantes definen los niveles de los pines como HIGH o LOW y son empleados cuando se leen o escriben en las entradas o salidas digitales. HIGH se define como el nivel lógico 1 (ON) o 5 V. LOW es el nivel lógico 0, OFF, o 0 V.
INPUT/OUTPUT. Constantes empleadas con la función pinMode() para definir el tipo de un pin digital usado como entrada INPUT o salida OUTPUT. Ej. pinMode(13, OUTPUT);
Sentencias condicionales: El lenguaje de arduino permite realizar sentencias condicionales if, if... else, for, while, do... while. Su utilización es similar a las funciones correspondientes en C.
Funciones de tiempo y matemáticas
- delay(ms). Realiza una pausa en el programa la cantidad de tiempo en milisegundos especificada en el parámetro (máximo 1000, mínimo 1).
- millis(). Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando el programa actual como un valor long unsigned. Después de de 9 horas el contador vuelve a 0.
- min(x,y). max(x,y). Devuelve el mínimo y el máximo respectivamente de entre sus parámetros.
- randomSeed(seed). Especifica un valor o semilla como el punto de inicio para la función random(). Este parámetro debe ser realmente aleatorio y para ello puede emplearse la función millis() o incluso analogRead() para leer ruido eléctrico desde una entrada analógica.
- random(max), random(min, max). Esta función devuelve un valor aleatorio entre el rango especificado.