Pulsador-bitbloq

¿Qué es un pulsador?

fotorresistencia

El pulsador o botón es un dispositivo digital de entrada que se activa cuando se pulsa con el dedo, permitiendo que circule por él la corriente, y se desactiva cuando se deja de pulsar.

Es un tipo de interruptor y se encuentra en numerosos dispositivos que utilizamos a diario:

  • Timbres de puerta.
  • Batidoras.
  • Calculadoras.
  • Teléfonos.
  • Lavadoras y otros electrodomésticos.

El pulsador es un dispositivo de entrada del ZUM Kit que puede devolver dos estados: 1 y 0. Es decir: pulsado y no pulsado.

El pulsador te permitirá controlar el comportamiento de muchos experimentos de una forma muy sencilla. ¿Aprendemos a usarlo? Necesitarás:

  1. Un ZumBloq pulsador y ZUMBloq LED
  2. Una placa controladora ZUM BT 328 o compatible con Arduino UNO
  3. Un cable USB

G003522
zumbloqLED

Empecemos a pulsar cosas mediante distintos ejemplos. ¡Al grano!

Ejemplo 1

Encender un LED al pulsar el pulsador

Antes de conectar el pulsador, debes recordar que tipo de sensor es, ¿analógico o digital? El pulsador solo puede dar dos valores: 1->pulsado y 0->no pulsado por lo que es un sensor digital e irá conectado a la derecha de la placa, tal y como puedes ver en el esquema de conexión. Sin embargo, ¡ten cuidado! Otros modelos de pulsadores pueden funcionar justo al contrario. Es por eso por lo que es siempre importante saber cómo funcionan tus componentes electrónicos antes de empezar a utilizarlos. Para este ejemplo la conexión será:

Zum-5-3

Ahora será necesario crear el programa para que el LED se encienda cuando pulsemos el pulsador.

ejemplo_1_led

Como puedes ver, en el programa hemos declarado una variable que se llama Botón. En este programa no es algo necesario porque únicamente vamos a utilizar la variable una vez. Sin embargo, más adelante veremos que en programas más largos puede resultar interesante declarar variables para ahorrar tiempo y minimizar errores.

Curiosidad: Al ejecutar este programa el LED comienza apagado. Cuando se pulsa el pulsador el LED se enciende. Sin embargo, al soltar el pulsador el LED no se apaga. ¿Por qué? Porque mi programa no le ha dicho al LED que se apague. En el siguiente ejemplo enseñamos a apagarlo pero, como ya hemos dicho, es importante entender que el programa SOLO hace lo que le decimos, y no “lo que queríamos decirle”. Veamos ahora cómo podemos programar la placa para que el LED se apague al dejar de presionar el pulsador.

Ejemplo 2

Encender un LED al pulsar el pulsador y apagarlo al soltarlo

Ya hemos conseguido encender el LED cuando pulsamos el pulsador. Ahora vamos a hacer que se apague cuando dejamos de pulsarlo. Lo que tenemos que hacer es lo siguiente:

ejemplo2led

Recuerda que para añadirle más opciones al bloque si,ejecutar debes pulsar sobre la estrella e incorporar la nueva opción al bloque.

Como ya hemos visto con anterioridad, en programación rara vez existe una única solución a un problema. ¿De qué otro modo se podría realizar este programa?

reloj-de-arena-10375

Una de las soluciones alternativas sería:

ejemplo2ledalternativa2

Esto son solo dos formas diferentes de hacer este programa, pero existen otras que pueden ser igual de válidas que las anteriores.

¡Ahora que ya sabes como utilizar un pulsador las posibilidades son infinitas! ¿Qué otros ejemplos usando un pulsador se te ocurren?

13 comentarios

  1. estoy realizando esta practica con el kit de robótica con los componentes optopus y este montaje solo me funciona adecuadamente si invierto los valores de las variables de botón 0 y 1, es posible que el pulsador optopus este invertido como comenta al inicio de la lección

  2. Julián Caro

    Hola Ignacio, efectivamente es así, tu pulsador funciona correctamente. Los pulsadores del tipo octopus funcionan de la siguiente manera:

    0-> Pulsado, 1->no pulsado.

    Por lo que simplemente tendrás que programar: “Si variable mi_boton =0″ entonces (…)

    Un saludo

  3. Hola. Si lo que quiero es que al pulsar se quede encendido pero que al soltar siga encendido, que funcine como interruptor…?

    Gracias

  4. Julián Caro

    Hola Juan

    Como habras observado, lo que tienes en las manos no es un botón como el del interruptor de la luz en tu casa. Si no que es un botón con muelle o retorno, es decir, un pulsador. Por lo que siempre que dejes de pulsarlo volverá a la posición original.

    Asi que: ¿Cómo podemos hacer que el LED se encienda cada vez que pulsemos el pulsador, se mantenga encendido, y se apague cuando lo volvamos a pulsar?

    Deberás realizar lo que se conoce como una máquina de estados, para ello utilizarás una variable global para que tu placa recuerde si el LED está encendido u apagado. Podrías hacerlo de la siguiente forma:

    maquina de estados led

  5. Claro! no habia pensado en esto. Muchisimas gracias!

    1. He copiado este esqueca exacto y lo que me hace es parpadear todo el rato el led. Pulsando el boton no hace nada pero si lo mantengo pulsado sin soltar el led se queda encendido y ya no parpadea…

  6. Nada ya he solucionado. He cambiado la variable del pulsador de 1 a 0 y ya funciona. Los pulsadores estos entonces funcioan a la inversa no?

    1. Julián Caro

      Hola Juan.

      Efectivamente tal como le comenté a Ignacio los pulsadores del kit “Mi primer kit de robótica” funcionan justo al contrario que los típo Zum.

      Eso significa que cuando estés presionando el pulsador, su valor valdrá 0, y cuando lo dejes de pulsar su valor valdrá 1.

      Un saludo

  7. Hola…He realizado esta práctica tal cual está en la web y no me funciona…he repasado todo y el pulsador no enciende el led…mis bloques son zumbloqs (del maletín de electrónica) … no sé si el botón estará estropeado …. he invertido el valor cero y uno y nada … he cambiado los pines (siempre digitales) y nada … no sé qué más hacer …
    gracias

  8. Otra cosa…me pide en muchas ocasiones que instale las chrome app….¿es esto normal?

    1. Julián Caro

      Hola Candelas:

      Sigue estos pasos para asegurarnos que no es un error:

      – Asegurate de que el botón ON/OFF en el caso de que tengas una placa ZUM está en la posición de ON (encendido).

      -Asegurate que has conectado el pulsador a un pin digital que no sea ni el 0, ni el 1, ni el 13.

      -Asegurate de que las conexiones de tus componentes estén bien realizadas (cada color con su color) no puedes imaginarte la de veces que me equivoco en esto.

      -Si sigue sin funcionar, desconecta el botón y crea un programa que solo encienda el LED. Si este luce, el led está en perfectas condiciones y puede ser que tu pulsador esté estropeado.

      SI ese es el caso por favor contacta con soporte.3d@bq.com

      Sobre lo que comentas sobre que te pide varias veces que instales la chrome app, tras haberla instalado por priemra vez, no debería pedirtelo de nuevo, reinicia el navegador y tu equipo por si por algún motivo el ordenador aún no le ha dado permiso a tu placa para comunicarse correctamente.

      Puedes seguir este post en caso de duda:

      http://diwo.bq.com/antes-de-empezar-2/

      Un saludo

      – See more at: http://diwo.bq.com/programando-el-pulsador-en-bitbloq/#comment-17150

  9. Julián Caro

    Hola Candelas:

    Sigue estos pasos para asegurarnos que no es un error:

    – Asegurate de que el botón ON/OFF en el caso de que tengas una placa ZUM está en la posición de ON (encendido).

    -Asegurate que has conectado el pulsador a un pin digital que no sea ni el 0, ni el 1, ni el 13.

    -Asegurate de que las conexiones de tus componentes estén bien realizadas (cada color con su color) no puedes imaginarte la de veces que me equivoco en esto.

    -Si sigue sin funcionar, desconecta el botón y crea un programa que solo encienda el LED. Si este luce, el led está en perfectas condiciones y puede ser que tu pulsador esté estropeado.

    SI ese es el caso por favor contacta con soporte.3d@bq.com

    Sobre lo que comentas sobre que te pide varias veces que instales la chrome app, tras haberla instalado por priemra vez, no debería pedirtelo de nuevo, reinicia el navegador y tu equipo por si por algún motivo el ordenador aún no le ha dado permiso a tu placa para comunicarse correctamente.

    Puedes seguir este post en caso de duda:

    http://diwo.bq.com/antes-de-empezar-2/

    Un saludo

Los comentarios están cerrados.