top of page

Botón o pulsador con Arduino:

Casi cualquier aparato electrónico hoy en día incluye una tecla, botón, pulsador o switch. Los proyectos con arduino no son la excepción y virtualmente cualquier idea que desarrollemos dispondrá de al menos un par de botones.En este tutorial hablaremos sobre como se puede conectar un botón al arduino y como podemos hacer para procesar correctamente las señales que envían. Además veremos como realizar aplicaciones más avanzadas con botones, por ejemplo: como detectar pulsaciones largas, doble o triple clic, etc.


Materiales necesarios para las prácticas

Para completar los ejercicios propuestos en esta página recomendamos adquirir los siguiente materiales:

  • Arduino Uno R3 o compatible

  • Protoboard

  • Resistencias de 10 K ohms

  • Botones pulsadores o push-buttons

Utilizaremos el led en el pin 13 del arduino para realizar las prácticas sin la necesidad de conectar leds externos.


¿Cómo conectar un botón a arduino?

Para conectar un botón al arduino conviene tener en mente ciertos puntos:

  • Un botón puede conectarse a cualquier pin de arduino (digital o analógico, ya que los analógicos usualmente funcionan también como digitales).

  • Existen dos configuraciones posibles: con resistencia pull-up o resistencia pull-down.

  • Configuraremos el pin seleccionado como entrada digital.

  • Debemos tomar en cuenta los rebotes y el ruido eléctrico en el software.

  • Es necesario utilizar una resistencia pull-up o pull-down, ya sea interna o externa.

Las dos formas que existen para conectar un botón al arduino se visualizan en los siguientes diagramas:


Visto en el protoboard quedaría como se muestra más abajo, siendo el botón colocado del lado izquierdo del protoboard el que está conectado con pull-up, mientras que el derecho esta conectado con una resistencia pull-down.


El valor de las resistencias en este caso no es crítico, pero debemos considerar que valores menores causarán que circule una corriente mayor cuando se oprime el botón, mientras que los valores mayores pueden permitir que el ruido se introduzca al pin de entrada.


Los valores típicos para resistencia pull-up o pull-down son de 1 a 10 KOhms.


¿Para que sirve una resistencia pull-up o pull-down?


La función primordial de las resistencias en el circuito del botón es mantener un estado lógico conocido cuando el botón no está siendo accionado.

Esto es necesario ya que las entradas del microcontrolador, si se dejan al aire, no poseen un estado determinado y pueden ir a cualquiera de dos estados posibles de forma aleatoria. Según la necesidad, se pueden colocar las resistencias en pines de entrada, obteniendo los siguientes efectos:

  • La resistencia pull-up mantiene un estado alto en el pin mientras el pulsador no es accionado, el estado activo del botón es BAJO (cuando se presiona).

  • La resistencia pull-down mantiene un estado bajo mientras el pulsador no es accionado, el estado activo del botón es ALTO (cuando se presiona).

El microcontrolador AVR incluido en el arduino UNO, posee en cada pin de entrada una resistencia pull-up que se puede activar bajo control de nuestro programa, evitándonos tener que colocar de forma externa este componente. Sin embargo, no todos los microcontroladores poseen esta característica y por esta razón es común encontrar este componente colocado de forma externa en la mayoría de los circuitos.


Armado del circuito para las prácticas con botón o pulsador

El circuito que armaremos en el protoboard para la realización de las prácticas que se proponen a continuación es el siguiente:



Aprovecharemos el led que viene conectado por defecto en el pin 13 del arduino y por esta razón no necesitamos otro aditamento como dispositivo de salida. Estaremos utilizando ambos botones con resistencia pull-up externa.


Realizar la programación del botón o pulsador con arduino


El siguiente ejemplo muestra como encender un led con un pulsador y apagar con otro botón. Es un ejemplo muy sencillo pero que ilustra muy bien el uso de las funciones pinMode() y digitalRead(). Como en la mayoría de nuestros programas, hemos procurado comentar bastante para hacer que el código sea fácil de entender.En este programa hemos leído el estado de los pines a variables intermedias, ya que lo usamos dentro de los cursos para que los estudiantes se familiaricen con el uso de las variables, pero puede saltarse este paso y colocar directamente la función digitalRead() dentro de las condiciones.


descargue el Programa Ejemplo ON/OFF


Programación de botón con eliminación de rebotes y ruido eléctrico

La siguiente programación es una mejora del ejercicio anterior en la cual se mejora la resistencia a ruido eléctrico, aplicando el algoritmo descrito en la sección anterior.


descargue el Programa Botones de Rebote


Programación avanzada de botones con arduino usando una librería

Para los ejemplos siguientes estaremos utilizando la librería GFButton que debe instalarse en nuestro IDE para poder compilar los ejemplos.Realizaremos el ejercicio de prender un led con un botón y apagarlo con otro, pero ahora utilizaremos la librería para apoyarnos. Como podemos ver, hemos movido algo del código a la librería, quedando nuestro programa mucho más compacto.Aprovechando que se simplifica el programa, podemos incluir sentencias para enviar datos al monitor serial y saber que está pasando en cada momento.




Detección de pulsaciones largas en un botón usando una librería

En este ejemplo vamos a aprender a detectar el tiempo que dura oprimido un botón, con esto podemos realizar acciones solamente si el botón permanece oprimido durante mas del tiempo programado.En nuestro ejemplo a continuación, vamos a realizar la programación de dos botones: Uno encenderá un led si se mantiene oprimido más de 5 segundos y el otro apagará el led si se mantiene oprimido más de 5 segundos. Cualquier otra acción en los botones NO tendrá efecto en el estado de los leds.




Detección de doble y triple clic en un botón usando una librería

En algunas situaciones, puede ser necesario detectar cuando el usuario hace doble o triple clic en un botón. En este caso podemos hacer uso de las funcionalidades de programación mediante eventos que provee nuestra librería.El siguiente ejemplo demuestra como hacer que se puedan encender o apagar un par de leds dando doble clic en el botón asociado a cada led. El programa ignorará las pulsaciones sencillas y solamente actuará cuando se oprima 2 veces seguidas el mismo botón en menos de un segundo.


descargue el Programa doble_y_triple_clic_en_un_bot_n_usan



Artículos Recientes
Entradas recientes
Archivo
Buscar por tags
Síguenos
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page