Botones y variables con Arduino

Usando botones y variables con Arduino

En este nuevo tutorial vamos a comenzar a utilizar botones para ingresar datos y variables para controlar estados. Al final del tutorial habremos elaborado un circuito que permitirá controlar 3 LEDs diferentes, haciendo uso de dos botones.

Durante el desarrollo utilizaremos los siguientes componentes:

  1. Placa Arduino UNO
  2. 3 LEDs
  3. 3 Resistencias 220ohm
  4. 2 Resistencias 10K
  5. 2 Push Buttons
  6. Breadboard
  7. Jumper cables
Botones y variables con Arduino: componentes
Botones y variables con Arduino: componentes

Utilizar botones push con arduino tiene un desafío: tendremos que hacer uso de un circuito electrónico denominado Resistencia Pull-Down, el cuál podrán encontrar detallado aquí o aquí.

Primera versión: usando un botón como un pulsador para encender / apagar un led

diagrama-button-led_bb
Botones y variables con Arduino: esquema circuito

En la parte izquierda de la breadboard se puede observar el circuito que involucra al botón, con su correspondiente resistencia Pull-Down para "estabilizar" los datos recibidos por el microcontrolador. El lado derecho, observamos una configuración de un LED con una resistencia de 220ohms, idéntica a la utilizada en nuestro primer tutorial.

Por si no tuvieron tiempo / ganas de ingresar a nuestra explicación de Resistencias Pull Down, les dejo un pequeño resumen de la motivación del circuito para que no se salven de entenderlo 😀
Imagínense el circuito sin la resistencia, se vería de la siguiente forma:

button-sin-pull-down_bb
Botones y variables con Arduino: Botón sin Pull Down

En este caso, si presionamos el botón los 5v fluirán hacia el PIN 3 de nuestro Arduino (el cual debe estar configurado como INPUT) y se leerá un 1 digital. El problema surge cuando se suelta el botón y el circuito no esta cerrado. En ese caso, la porción de circuito que va desde el botón hacia el PIN 3, puede verse afectado a ruido eléctrico que haga que el microcontrolador reciba a través de este PIN, voltajes que provoquen que lecturas errónes de 1 o 0 lógicos, lo cual se denomina PIN "flotante". Para evitar esta situación es que se utiliza la resistencia Pull Down. Como se ve en el primer esquema, en caso de estar el circuito abierto (ver esquema de botón para entender que patas se encuentran siempre en contacto y cuales no de un push button), el PIN 3 es conectado a GND (ground) a través de la resistencia de 10K ohm. Esto provocará que el valor que ingresa al microcontrolador a través del PIN sea de 0v, es decir un 0 lógico. Cuando el botón es pulsado, la corriente ingresa y se "bifurca" entre la entrada del PIN y la resistencia, para luego terminar en GND. Lo importante aquí, es que al PIN llegarán los 5v, por lo que la lectura será de un 1 lógico. En resumen, las resistencias pull-down se utilizan para evitar tener lecturas erróneas.

Volviendo al circuito correcto, aquí les dejo fotografías de como quedaría el circuito implementado:

Botones y variables con Arduino: circuito terminado
Botones y variables con Arduino: circuito terminado

Solamente nos falta el código para poder controlar el circuito desarrollado, manos a la obra:

Proyecto completo: controlar múltiples LEDs con dos botones.

Ahora que tenemos en claro el concepto de resistencias pull-down, manejo de estados de botones usando variables en el código de Arduino y el uso de LEDs, vamos a realizar algo un poco más complejo: con dos botones, controlaremos 3 LEDs. Con uno de los botones, iremos prendiendo LEDs hacia la derecha, y con el otro, apagando hacia la izquierda.
El mayor desafio de este programa estará en el código, debido a que a nivel "circuiteria", bastará con replicar lo realizado en el ejemplo anterior. Sin más, aquí está el esquema:

multi-button-led_bb

Y aquí la fotografía del circuito:

Botones y variables con Arduino: circuito terminado
Botones y variables con Arduino: circuito terminado

Ahora que tenemos el circuito, tenemos que realizar la parte difícil del ejercicio, el código 😀

Presten particular atención a la última línea de código "delay(200)". Si no colocan esta línea, el tiempo que se demora en presionar y soltar el botón, será demasiado largo, en comparación con el tiempo que demora cada iteración, provocando que presionando sólo una vez el botón, el estado pase inmediatamente a valer 3, quedando solamente el LED rojo prendido.

5 thoughts on “Botones y variables con Arduino

  • 24/09/2016 at 23:38
    Permalink

    Excelente pagina para los que nos iniciamos en el tema arduino.

    Reply
  • 24/09/2016 at 23:41
    Permalink

    Sugerencias, podrias hacer videos "arduino desde cero" en youtube, seguramente va aumentar mas la comunidad.

    Reply
  • 20/10/2016 at 01:35
    Permalink

    Me parecen muy bien explicados las figuras y sus comentarios

    Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *