Aquí vamos a ver el uso de las variable. Las
variables son necesarias, para guardar valores que luego se utilizarán
cuando sean necesarias o se cambiarán dichos valores por otros valores
cuando sea necesario.
Ya
vimos como usábamos una variable i en el bucle for. En este caso la
variable se utilizaba para guarda valor que había que comparar para
saber si se ejecutaba el código dentro de for o no.
Ahora
vamos a ver un uso más general, es decir, vamos a sustituir el número
del pin por un nombre, con idea de que sea más fácil de identificar
cuando revisemos el código.
Las
variables se declaran al principio del código, antes de la función
setup, con ellos se consigue que se pueda usar desde cualquier parte del
código.
Para declarar una variable debemos poner el tipo de dato que va a contener la variable
int (integer)
Son números enteros sin parte decimal y pueden ser negativos, positivo o el cero.
float (floating o coma flotante)
Son números reales con y sin parte decimal, tiene que llevar punto a la fuerza
char (carácter)
Son caracteres letra, y siempre se ponen entre comillas simples
Bool (boolean)
Solo admite dos valores true o false
A continuación le vamos a dar a la variable el nombre que queramos siempre que se ajuste a lo siguiente:
El nombre de las variables no puede ser una palabra
reservada del lenguaje de programación como por ejemplo pinMode, tampoco
pueden llevar espacios en blanco, ni signos de puntuación intercalado,
tampoco la Ñ o ñ, ni las vocales con tildes y debe comenzar por una
letra, nunca por un número.
y punto y coma. De esta manera solo declaramos la variable, pero tambien se puede inicializar.
Inicializar
una variable es asignarle un valor inicial para ello utilizamos el
signo = le asignamos el valor correspondiente y finalizamos con el ;
En este caso declararemos e inicializaremos las siguientes variables
int LED = 6;
int boton=10;
ENTRADAS DIGITALES
Dentro de la función void setup() establecíamos con pin mode un pin como salida digital:
void setup()
{
pinMode (6, OUTPUT);
}
Esta
es la manera de establecer el pin 6 como salida digital, pero hemos
declarado una variable a la que hemos llamado LED y le asignamos el
valor 6, así que podemo utilizarla para declarar el pin 6 como salida y a
su vez nombramos el pin 6
void setup()
{
pinMode (LED, OUTPUT);
}Del
mismo modo que hemos asignado el pin 6 como salida digital, vamos a
asignar el pin 10 como entrada digital, solo que en lugar de usar OUTPUT
usaremos INPUT
void setup()
{
pinMode (LED, OUTPUT);
pinMode (10, INPUT);
}Del mismo modo, podemos utilizar la variable "boton" en lugar del número 10
void setup()
{
pinMode (LED, OUTPUT);
pinMode (boton, INPUT);
}digitalRead
Vimos
que para encender el LED usábamos digitalWrite ( PIN, HIGH); y para
apagarlo usábamos digitalWrite (PIN, LOW); siendo PIN un pin digital
establecido en modo salida.
Cuando
tenemos un pin digital establecido en modo entrada (input) para que
Arduino pueda enterder o leer esa entrada vamos a utilizar
digitalRead(PIN) como asignación o valor de una variable en la que vamos
a guardar lo que haya en el momento en la entrada. Vemos como podría
quedar nuestro código de ejemplo
void loop()
{
int valor = digitalRead(boton);
digitalWrite(LED, valor);
}
Como
vemos arduino guardará el valor leido en boton, dentro de la variable
valor, luego mandará al pin LED, el valor guardado en la variable valor
que podrá ser un HIGH o un LOW
De
esta manera no quedaría el código para conectar un pulsador normalmente
abierto o un sensor, etc. que nos permitiera gobernar un LED conectado a
un pin de arduino.
OPERADOR DE NEGACIÓN
Con
el código utilizado hasta ahora, lo que conseguimos es que cuando se
conecte arduino, el LED permanecerá encendido, hasta que presionemos el
pulsador, entonces el LED se apagará. Este uso está muy bien para las
puertas, como la puerta de la nevera o del microondas, pero ¿cómo
podemos conseguir justo lo contrario sin modificar el circuito?, es
justo aquí donde entra el operador de negación
El
operador de negación (!) lo que hace es que invierte el valor de lo que
recibe o acompaña, en el caso del código de ejemplo, bastaría con poner
el operador negación a la variable valor dentro del digitalWrite, con
ello le estamos diciendo que es el pin del LED escriba lo contrario de
lo que tendría que escribir, así de fácil. Todo lo demás sigue igual. Esto podemos hacerlo con las salidas en digitalWrite(), pero no lo podemos hacer con la entradas con digitalRead().
Esta
operación de negación es tan frecuente que existe un tipo de dato
llamado bool que solo acepta valores true o false como señalábamos al
principio.
Podemos escribir una variante, designando a la variable valor como variable tipo bool usando.