Introduction: C/C++ En Arduino: Variables

About: Músico, matemático, computación, ciencia... insolente y subversivo, pero siempre propositivo

Este instructable es parte de una colección par aprender a programar en C en Arduino. Para los primeros pasos, ir a el primer instructable de la colección

En los lenguajes de programación, una variable es un espacio de memoria en la computadora al cual se le asocia un identificador o nombre único. Ese espacio de memoria contiene una valor que puede ser tanto un número entero, como un número real como una porción de texto. La ventaja de las variables es que esa valor queda almacenado para poder utilizarlo en alguna otra parte del código, o para cambiar y modificar durante la ejecución de una porción de código de computadora.

En en C, debemos declarar una variable antes de poder utilizarla. Así por ejemplo si quiero usar una variable que va a almacenar un número entero, y a la cual le queremos poner el nombre miVariable, entonces escribimos:

int miVariable;

La palabra int, le indica al compilador que guarde un espacio de memoria, y que le asocie el nombre miVariable.

Veamoslo con un código de arduino.

LAs variables tiene asociado un tipo. Esto lo veremos hacia el final del instructable

Step 1: Materiales

Solo ocupamos:

  1. Arduino UNO
  2. Un cable jumper

Step 2: Conexiones

Solo ocupamos conectar el jumper en el pin A0, como se muestra en la foto, y listo!

Step 3: Código

Veamos el siguiente código que se muestra en la foto.

La línea 6, lo que hace es inicializar el puerto serial, para poder ver las lecturas en la computadora:

Serial.begin(9600); //inicia el puerto serial 

Noten como al final de la líne hay un punto y coma ";", esto es para indicarle al compilador que allí termina una línea. Esto hay que escribirlo al final de todas las líneas. Luego en la sección de loop, tenemos la línea 10 que dice:

 int miVariable = analogRead(A0);

Como indicamos antes, crea un espacio de memoria para almacenar enteros, y le llamamos miVariable. En esta línea hacemos lo que se llama una declaración de variable. el comando:

analogRead(A0);

lo que hace es leer la infromación que viene del pin A0. Luego el símbolo "=" lo que hace es asignarlo, es decir lo guardaen el espacio de memoria llamado miVariable.

Luego para poder accesar esa información, en la línea 11 escribimos:

Serial.println(miVariable);

Donde la variable es llamada, y enviada al puerto serial para poder verlo en la computadora.

Noten que la variable miVaraible, se declara antes de ser utilizada. Si lo hacen al reves, al compilar les indicará un error:

'miVariable' was not declared in this scope

y se los marcará en anaranjado, como indica la foto.

Step 4: Funcionamiento

Cargar el código al arduino. Una vez cargado, abrir el puerto serial, presionando el botón con la lupa, y se abrirá el puerto serial como se muestra en las fotos.

Ahora toque el cable con el dedo, y luego deje de tocarlo como se muestra en la foto. Ven como cambian los valores?

Step 5: Alcance De Variables

El alcance de variable se le llama a el lugar del código donde la variable es válida. Es decir, en el ejemplo anterior la "vida" de la variable es solo una vuelta en el loop. Cada vez que se termina el loop, la variable muere, y al iniciar el loop y llegar a la línea 10, la variable se crea nuevamente, y se pierde el valor que tenía antes.

Para hacer que el alcance se mayor, o como se diría global, declaramos la variable al inicio.

En el código de la foto (archivo adjunto), en la línea 6,

int cont1 =0;

declaramos una variable de tipo entero, que se llama cont1. Vean además que de inmediato le asignamos el valor 0, esto se llama declarar una variable inicializada. Además esta está declarada antes y afuera de la sección de setup() y de loop(). Por otro lado, en la línea 13, declaramos:

int cont2 =0;

Pero esta declaración está adentro del loop().

Noten que en la línea 14, dentro del loop, escribimos:

cont1 = cont1 + 1;

Esta es una expresión, es decir, una operación matemática donde hay operadores, "=" y "+", y operandos, que son la variable cont1, y en número 1. Lo que hace es sumarle 1 a cont1, y volver a almacernarlo en el mismo espacio que estaba cont1, es decir, por cada vuelta del loop debería sumearle 1. Hacemos lo mismo con cont2 en la línea 16.

Que diferencia hay entre cont1 y cont2? Carguen en el Arduino y abran el puerto serial. Verán el resultado de la foto. Es decir cont2 siempre será 1, mientras que cont1, se va incrementando en 1 por cada vuelta del loop. Esto es por la razón explicada antes, ya que cont2, "muere" al final del loop, y es creada nuevamente al iniciar otro loop, y por lo mismo no recuerda nada del loop anterior. La variable cont1 en cambio, sigue recordando lo que tenía el loop anterior y por eso va incrementando.

Step 6: Tipos De Variables

Se pueden crear más variables de diferentes tipos. En los ejemplos anteriores, solamente creamos variables de tipo int, es decir enteros. Pero también se pueden crear reales que se llaman float, o boolean que son variables lógicas que solamente toman el valor verdadero o falso (true, false) y muchas más como se indica en la foto. Que tipo de variable se utiliza, dependen de que operaciones voy a realizar, y la memoria que voy a necesitar para almacenar esos número. Así por ejemplo si sé que lo que ocupo es un entero entre 0 y 255, entonces puedo usar byte, en lugar de int, y así solamente utilizo 1 byte de memoria en lugar de 2. la declaración sería la misma, por ejemplo:

byte miVariable = 0;

Hay mucho más cosas con respecto a variables, pero con esto es suficiente para poder hacer proyectos sencillos. En los instructables posteriores utilizaremos otros tipos de variables y combinaciones de ellas.