Al igual que puedes asignar ’0′ ó ’1′ a un pin en Arduino, puedes leer el valor generado por un sensor que esté conectado a él. Al trabajar con pines digitales, utilizaremos sensores que solo pueden estar en ON y OFF.
Un simple cable es un buen ejemplo de un INPUT
(entrada) digital. Puedes conectar un cable a, por ejemplo, el pin 5 y encenderlo conectando la otra parte del cable o bien a 5 voltios o a GND (0 voltios) en el conector de tu Arduino.
¡Prueba esto! Coge unos de los conectores de tu kit, conéctalo al pin 5 y programa el siguiente código en tu Arduino:
int inputPin = 5; int ledPin = 13; void setup() { pinMode(inputPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { if (digitalRead(inputPin) == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
Este programa introduce algunas cosas nuevas:
- Primero, vemos que puedes utilizar muchas variables, en este caso, tenemos una para el LED
ledPin
y otra para el cableinputPin
. - Al igual que un
pinMode
se puede utilizar para asignar un pin como OUTPUT, puedes asignar el pin como INPUT. - Hay un comando,
digitalRead(inputPin)
, que leerá el valor del voltio en elinputPin
y devolverá si está aHIGH
oLOW
. DevolveráHIGH
cuando el cable esté a 5V yLOW
cuando se conecte a GND. - El programa utiliza una instrucción condicional
if
para comprobar el valor delinputPin
. - Cuando quieres comparar dos valores en un programa, debes utilizar dos veces el signo ‘igual a’, es decir,
==
. Esto hace que el ordenador entienda que los quieres comparar (en lugar de asignar). Este “doble igual” es lo que llamamos un operador. Hay otros operadores que comparan otro tipo de valores.
Botón
Vamos a probar en lugar de ello con un botón. Para este ejemplo necesitarás montar la Shield Básica Educativa en Arduino y conectar un botón tinkerKit al conector D9 con un cable tinkerKit.
Puedes usar el mismo código del ejemplo anterior, pero necesitarás cambiar el valor del inputPin a 9. Esto es porque el conector D9 está de hecho, conectado al pin 9.
int inputPin = 9; int ledPin = 13; void setup() { pinMode(inputPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { if (digitalRead(inputPin) == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
¡Sigue experimentando!
- Escribe un programa que haga sonar un sonido al pulsar el botón.
Nota: Recuerda que el conector D9 está conectado al pin digital 9. Si tienes algo a D9, no podrás usarlo para conectar cualquier otra cosa.