Proyectos Arduino - Pulsador

 Introducción 

En este segundo post sobre electrónica con Arduino, trabajaremos con pulsadores. Los pulsadores son elementos fundamentales en mucho de los componentes electrónicos que manipulamos en nuestra vida diaria, nos permiten iniciar ciertas acciones de cada maquina, encender objetos o para realizar solicitudes de atención en momentos de emergencia, como los botones de pánico en algunos lugares. 

Pulsadores, botones e interruptores son en esencia lo mismo, simplemente su mecanismo de activación varia un poco en cada uno de ellos, pero en esencia, cumplen el mismo objetivo, permitir o restringir el flujo eléctrico o una señal en un momento especifico. ¿Hasta cuando?, pues hasta que la situación amerite la activación de un interruptor o el presionar un botón.  

Entradas y Salidas

Arduino tiene muchos pines de conexión (recordemos que los pines son donde conectamos cada componente a nuestra placa), cada pin tiene un propósito y una manera muy particular de como interpretar las señales eléctricas que envía o recibe.  ¡Si!, Arduino puede enviar y recibir información, estas acciones definirán el estado de un pin, es decir, si por un pin queremos enviar información a otro componente, este será un PIN de SALIDA; mientras que, si queremos recibir información de un elemento en nuestro Arduino, el pin que escojamos será un PIN de ENTRADA. 

En el post anterior, hable un poco del proyecto "Hola Mundo", en este proyecto utilizamos el pin 13 para encender un LED, en este caso, el pin 13 actúa como un PIN de SALIDA digital, se le da el nombre de SALIDA, porque la placa es quien controla y envía las señales para que el LED se encienda o se apague, en cambio, si usáramos un sensor, es el sensor el que estaría enviando información a nuestra placa para que posteriormente, podamos tratarla y evaluar alguna acción al respecto. 

Pulsador

En este proyecto usaremos un pulsador, que si lo pensamos bien, no es un componente que vayamos a controlar, si no más bien, es un componente que esperamos nos envié información sobre si fue presionado o no, y es por aquello que tendremos que utilizar un pin de ENTRADA.

Materiales

  • Arduino (Sin restricción de modelo)
  • 1 Pulsador
  • 2 resistencias 220 ohm 
  • Cables Dupont
  • 1 LED
  • 1 Protoboard

Diagrama de conexión 

 (Si no prefieres leer esta explicación puedes saltar directamente al código)

Lo sé, el diagrama parece un poco complejo, con tantos cables y cosas nuevas que puede ser abrumador, pero no hay muchas cosas diferentes. En primera instancia, podemos identificar el circuito de un LED, que vimos en el proyecto "Hola Mundo"  (el cual puedes revisar aquí). Entonces solo el 50% de este diagrama es nuevo. 

El diagrama del pulsador puede resultar nuevo, tiene algo de similar con el LED, por que utiliza una resistencia para que pueda funcionar correctamente, pero entremos a analizar un poco más en detalle de lo que ocurre aquí. 

Lo que ocurre en este circuito particular es que la energía siempre buscara el camino más fácil para llegar a GND o el punto de tierra, entonces, si vemos el diagrama a continuación, podremos ver que el camino mas rápido a GND es una lineal recta, pero como el pulsador/botón se encuentra abierto (se corta la continuidad), la energía buscara otro camino para llegar a su destino, siendo este, el camino del pin 4 o el pin de señal que nosotros queremos. 
Lo que provoca esto , es que la señal que estemos obteniendo en nuestro pin, será un constante 1 o dicho de otra forma, una señal HIGH 

¿Qué ocurre cuando presionamos el pulsador? - Lo que sucede es que la energía encuentra un camino mucho mas fácil y rápido de llegar a su destino, y deja de pasar por nuestro pin de señal en el Arduino para dirigirse directamente al GND.
Lo que provoca esto , es que la señal que estemos obteniendo en nuestro pin, será un constante 0 o dicho de otra forma, una señal LOW

Importante: La resistencia que incluimos en el circuito, evita que los cables tengan una sobrecarga de corriente (que la energía vaya muy rápido a través de los canales), de esta forma, se evita que los cables se comiencen a calentar y evitar accidentes donde el principal protagonista es el ¡FUEGO!

Código

Descripción 

Línea 1: Variable - es una forma de guardar información para ser utilizada posteriormente, nos permitirá guardar el estado del botón para evaluar las acciones posteriormente - se llama buttonState 

Línea 5-6 : Establece los pines a utilizar, especial cuidado en los diferentes estados de los pines, para el LED (pin 8), se le entrega un estado de OUTPUT (SALIDA), mientras que para el Pulsador (pin 4), se le entrega un estado de INPUT (SALIDA).

Línea 10: Guardamos el estado del pulsador, en la variable buttonState, - Nuevo comando: digitalRead(pin) - Permite leer el estado actual de un PIN de ENTRADA.

Línea 12-18: Estructura if -else -  Permite realizar comparaciones lógicas (que siempre tiene una respuesta de verdadero y falso) para ejecutar una acción especifica dependiendo del resultado.  (== es el  símbolo de comparación entre dos elementos, si son iguales, resultara en un TRUE - Verdadero)


Pulsador AVANZADO

Al igual que el LED existe una forma especial de utilizar los pulsadores, es importante comprobar esta funcionalidad en cada modelo de Arduino, pero nos permite facilitar el uso de pulsadores reduciendo la electrónica al máximo.

Lo que se utiliza son las Resistencias PULL-UP, estas son resistencias integradas en Arduino para estos casos, que nos evita integrar una resistencia al montado del pulsador como se muestra en el diagrama. (puedes obtener mayor información de como trabajan en el siguiente blog de programarfacil.)


Para activar estas resistencias, solo debes cambiar el estado INPUT por INTPUT_PULLUP

Comentarios

Entradas populares