Entradas Digitales

Objetivos

En este tema, aprenderemos a utilizar los botones con entradas digitales para encender y apagar un LED.

Materiales

  (1) x Placa Arduino
  (1) x Protoboard
  (1) x LED rojo de 5mm
  (1) x Resistencia de 220 ohmios
  (2) x Interruptores de presión
  (7) x M M cables (cables de puente de macho a macho)

Introducción a los Componentes

Interruptor de Presión

Los interruptores son componentes muy simples. Pueden ser del tipo botón, que se activarán cuando los pulses o pueden ser de palanca, que consisten en mover la posición de un lado a otro.

Estos componentes conectan dos contactos para que la electricidad fluya a través de ellos.

Esquemas de Conexión

Esquema Eléctrico

Diagrama Ilustrativo

Aunque los cuerpos de los interruptores son cuadrados, los pasadores sobresalen de los lados opuestos del interruptor. Esto significa que los pines sólo estarán lo suficientemente separados cuando se colocan correctamente en la placa de pruebas.

Recuerda que el LED tiene que tener el polo negativo más corto a la izquierda.

Imagen de Ejemplo

Si tenemos todo el cableado bien, deberíamos tener algo como en la imagen, de no ser así debemos revisar los apartados anteriores.

Código

Una vez efectuado todo el cableado, descargaremos el script del siguiente link y lo cargaremos como hemos aprendido.

Entendiendo el Código

Una vez que el script esté cargado en la placa de arduino, presionaremos el botón izquierdo y veremos que el LED se enciende y si pulsamos el botón derecho se apaga.

En la primera parte del script se definen tres variables para los tres pins que se van a utilizar. El ledPin es el pin de salida y buttonApin se refiere al interruptor más cerca de la parte superior de la placa y el buttonBpin para el otro interruptor.

La función de void setup( ) define el ledPin como una salida normal y los buttons como entradas, utilizando la palabra reservada INPUT_PULLUP.

pinMode(PinBotonA, INPUT_PULLUP);
pinMode(PinBotonB, INPUT_PULLUP);


El modo pin de INPUT_PULLUP significa que el pin debe ser utilizado como una entrada, pero además el termino PULLUP significa que al conectarse el componente, su valor por defecto será HIGH (alta).

Por esta razón los interruptores están conectados a tierra y cuando un interruptor se presiona, se conecta la clavija de entrada a la tierra. Puesto que la entrada es normalmente alta y va sólo baja cuando se pulsa el botón, la lógica esta invertida. Nos encargaremos de esto en la función loop

void loop()
{
 if (digitalRead(PinBotonA) == LOW)
 {
  digitalWrite(PinLed, HIGH);
 }
 if (digitalRead(PinBotonB) == LOW)
 {
  digitalWrite(PinLed, LOW);
 }
}


En la función loop hay dos declaraciones if, una para cada botón. Cada una hace un digitalRead en la entrada adecuada.

Recuerda que si se presiona el botón, la entrada correspondiente será baja, si el botón A es bajo, entonces un digitalWrite en el ledPin enciende, del mismo modo, si se presiona el botón B, un bajo se escribe en el PinLed.

Retos

Reto 1

Hemos visto como con dos botones, uno enciende el LED y otro lo apaga.

Ahora vamos a hacer lo mismo, pero con un solo botón. Si lo pulsamos una vez lo encendemos y si lo volvemos a pulsar, lo apagamos.

Ejemplo de Solución



Volver al índice

Fun Tech Academy - Calle Alcobendas, 23 Leganés 28914 Madrid - www.funtech.academy