Publicado el Deja un comentario

61. Contador / Pulsador

Diapositiva 61

Ejercicio: Añade un pulsador al esquema anterior

Recuerda la lección 32 donde instalamos un pulsador a Arduino, haz lo mismo y conecta un pulsador en la entrada analógica A0.

Cotador.ino“: Cada vez que pulses se incrementará en uno el display

El objetivo de este ejercicio es construir un contador, que comience por 0 y cada vez que pulso el pulsador se incrementa en 1, hasta que finalmente llegue a 9. Opcionalmente puedes hacer que si después de llegar a 9 se continua dando al pulsador, el contador continúe de nuevo desde 0 y así de forma indefinida.

Inicialmente deberá estar a 0 el contador, así que esto lo debes hacer en el setup() con la orden:

dibuja_display(0);

En el loop() sólo tendrás que esperar a que se pulse el pulsador y en ese caso incrementar un contador en uno, necesitarás una variable “contador” donde ir almacenando el número de veces que se ha pulsado el pulsador:

contador++;
dibuja_display(contador);

Hemos introducido una sentencia en la que se incrementa en una unidad la variable contador, a partir de ahora la nueva sentencia del lenguaje wiring contador++ equivale a escribir la sentencia:

contador = contador + 1;

De forma análoga, contador- – equivaldría a restarle una unidad. Todo sea por el ahorro de escribir código, es una ventaja de este lenguaje. Tanto es así que las dos sentencias anteriores se pueden condensar aún más en una sola línea tal y como te muestro a continuación:

dibuja_display(contador++);

variable++ y ++variable

Un poquito más de wiring: La línea anterior significa que primero se ejecuta la función dibuja_display() y después se incrementa la variable entera contador en una unidad. Si lo hubiéramos deseado en el orden contrario habríamos escrito la sentencia de la siguiente forma, con el signo ++ por delante de la variable:

dibuja_display(++contador);

En este punto ya tienes todo lo necesario para implementar el proyecto Contador.ino“, ¡adelante!

Botón RESET de Arduino

Si te has fijado bien en la placa de Arduino UNO, ésta tiene en una de sus esquinas un pequeño pulsador, lo tienes marcado en la diapositiva de arriba. Este pulsador es muy útil para detener la ejecución del sketch de Arduino, y equivale a quitar la alimentación y volverla a conectar a la placa, solo que mucho más rápido.

En el momento en que lo pulsas sucede lo siguiente:

  1. se detiene el sketch
  2. se apaga la alimentación de la placa
  3. se enciende la placa de nuevo
  4. comienza de nuevo el sketch que haya grabado en la memoria de Arduino desde la primera línea

Publicado el Deja un comentario

34. On-Off alternativos

Objetivo

Nuestro nuevo proyecto consiste en montar un circuito con Arduino UNO que nos permita encender y un led con un pulsador y apagarlo al volver a pulsar. Las pulsaciones deben ser rápidas y no prolongadas, como cuando pulsamos en el botón de un ascensor.

Materiales

  • Led rojo
  • Resistencia 220 ohm
  • Pulsador de 4 pines
  • Resistencia de 10 Kohm

Montaje

Observa la imagen de la diapositiva, como puedes ver se ha montado un led rojo con una resistencia adecuada en serie entre el pin 4 de salida. Por otra parte se ha instalado un pulsador conectado con una segunda resistencia a tierra (pull-down) por un lado y conectado al pin 8 de entrada por otro.

Sketch

El programa no tiene ninguna novedad ni dificultad adicional a lo visto hasta ahora. Fíjate bien cómo se han configurado los dos pines en la sección setup, uno de entrada para recibir la señal de pulsación del pulsador y otro de salida para iluminar el led. En el bucle principal (loop) Arduino está permanentemente en cada pasada del bucle leyendo el valor ofrecido por el pin 8 y almacenándolo en la variable entera “estado“. Atento a la argucia informática siguiente:
estado = 1 - estado;
¿Qué hace esta línea y por qué lo hace? A continuación, si el estado es HIGH se encenderá el led y si es LOW se apagará.

Problema

El proyecto tiene un pequeño “defecto”, y es que nos hemos topado con el problema del “rebote” que evita que funcione a la perfección. ¿Por qué falla a veces cuando pulsamos el pulsador? No pases a la lección próxima hasta que no hayas entendido bien esta.
Publicado el Deja un comentario

33. Resistencia pull-down

¿Por qué hay que conectar una resistencia a masa desde el pulsador?

Muy sencillo, porque si no estuviera permanentemente conectada esta resistencia del pin de lectura del pulsador a masa (GND) cuando no se conectara el pulsador, el pin quedaría conectado a “nada” o al aire, y a Arduino le llegaría a este pin un valor indeterminado, aleatorio entre 0 y 5 v. Si embargo, si se conecta esta resistencia le llegará un valor LOW o 0 V al estar conectado a GND.

A esta resistencia se le llama resistencia pull-down.

Eso sí, en el momento en el que se activa el pulsador, este ofrece al pin conectado un camino hasta los 5 V y le llegaría un valor HIGH.

Ejercicio

Simplemente observa el montaje del circuito de la lección anterior y comprende lo explicado anteriormente, puedes hacer una tontería consistente en retirar la resistencia pull-down del circuito, eliminando el camino a masa cuando el pulsador no está apretado, en este caso… ¿Qué sucede?

Publicado el Deja un comentario

31. Pulsador (sin código)

El pulsador

Este en nuestro nuevo elemento electrónico, el pulsador. Gracias a él podemos activar el paso de corriente eléctrica al mantenerlo pulsado y, si se suelta deja de pasar la corriente a través de él.

Te recuerdo dos términos que no debes confundir:

  • Circuito cerrado o cortocircuito
  • Circuito abierto o cortacircuito

Puedes ver en la diapositiva uno de los pulsadores más utilizados en los proyectos de Arduino, el pulsador de 4 pines (o patas).

En este elemento, los pares de patitas cercanas de cada lado se unen internamente cuando se pulsa el botón del pulsador y las 4 patas quedan unidas en cortocircuito. Si no se pulsa sólo se mantienen unidas las dos de la derecha y las dos de la izquierda de la imagen, pero no entre los dos pares cercanos.

Ejercicio

Monta el circuito de la diapositiva en tu protoboard y utiliza la placa Arduino UNO sólo como fuente de alimentación para extraer los valores 0 v (pin GND) y 5 v (pin 5V).