Profe Tolocka

Bits, Volts & KVAr

“Dado electrónico” con Arduino UNO

Este proyecto, realizado con una placa Arduino UNO, implementa un dado a base de leds que nos puede ser de utilidad para nuestro juego preferido de mesa o simplemente para divertirnos y aprender un poco mas sobre el desarrollo y programación con Arduino.



Nuestro “dado electrónico” está formado por un conjunto de siete leds dispuestos como se en la Fig. 1, capaz de representar los números del 1 al 6 como en un dado convencional según sean los leds que encendamos bajo control de nuestro software, tal como se vé en la Fig. 2.

Leds en el dado

Fig. 1. Disposición de los siete leds

Numeros del dado

Fig. 2. Números del 1 al 6 formados con los leds del dado

El circuito puede verse en la Fig. 3. Los 7 leds (LED1 a LED7) están controlados por la placa Arduino, mas precisamente por los pines 2 a 8 a través de otras tantas resistencias limitadoras de corriente (R1 a R7). Completan el circuito un pulsador normal abierto (S1) con su resistencia de pull-down (R8) conectado al pin 9 de la placa y el buzzer o zumbador (B1) controlado por el pin 10. La resistencia de pull-down del pulsador se emplea para que, cuando el pulsador está abierto (no se acciona), la placa lea un valor logico “0” (o “LOW”) en el pin 9. De otro modo, si ese pin quedara “flotante” cuando el pulsador está abierto se podrían tener lecturas falsas.

 

Fig. 3. Esquemático del dado electrónico (click para agrandar)

El programa se lista a continuación y básicamente consiste en una función que configura las condiciones iniciales (setup) y un bucle sin fin (loop). También hay dos funciones auxiliares: beep para producir un corto sonido por el buzzer y escribe_dado que se encarga de prender los leds para hacer aparecer un número en el dado.

En el bucle principal (loop) primero se espera a que se apriete el pulsador y luego a que se lo suelte, una técnica rudimentaria para evitar múltiples lecturas debido al rebote mecánico. Luego se hace un “bip” para realimentar la pulsación, se genera un número al azar entre 1 y 6 y se lo muestra en el dado, volviendo a repetir el ciclo.

 

En el video se puede ver el “dado” en funcionamiento

Desde luego, y como sucede con cualquier proyecto, hay un sinnúmero de variaciones y mejoras posibles. ¿Cuales se les ocurren? Pueden compartir sus ideas en los comentarios a este artículo.

 

25 Comentarios

  1. cristian caicedo

    20 mayo, 2016 at 7:53 pm

    me podrias ayudar con unas dudas…..muchas gracias

    • etolocka

      20 mayo, 2016 at 9:34 pm

      Si claro Cristian, dime cual es la duda

      • cristian caicedo

        22 mayo, 2016 at 6:28 pm

        no me funciona correctamenta, la programacion sirve con cualquier arduino

        • etolocka

          22 mayo, 2016 at 8:50 pm

          Hola Cristian, yo lo probé con el Arduino UNO y diría que debería funcionar con otras placas siempre y cuando elijas correctamente el modelo que usas en Minibloq

          • Caicedo Cristian

            24 mayo, 2016 at 1:08 pm

            Lo único que no me funciona como esta en el vídeo es que los leds no quedan encendidos marcando el. Número que salió

          • etolocka

            25 mayo, 2016 at 11:40 am

            Hola Cristian. ¿Si se oye el “bip” cada vez que presionas el pulsador? Revisa si los leds no están conectados al revés.

  2. hola voy a hacer este proyecto como trabajo y me gustaría saber si se necesita el zumbador es decir si es necesario

  3. disculpa un cable va conectado a 5v y el otro
    ?

  4. misprimerospasosardu

    3 noviembre, 2016 at 7:07 am

    Hola!
    yo no entiendo bien la orden while (!digitalRead (9)); ¿qué es lo que hace exactamente?

    • etolocka

      3 noviembre, 2016 at 10:51 am

      Hola!
      La instrucción while repite algo mientras se cumpla una condición. Generalmente se escribe así:
      while (condicion) {
      //Lo que se repite
      }
      En el programa del dado no hay un bloque a repetir, y la condición es !digitalRead (9) que es una forma abreviada de escribir digitalRead (9)==0.
      En definitiva, esa instrucción hace “nada” mientras la entrada 9 está en 0, es decir, sin apretar el pulsador y pasa a la siguiente instrucción cuando se lo aprieta

  5. en que programa fue hecha la programacion

  6. Al probarlo en un simulador (Tinkercad) me compila bien el código pero no me funciona nada. Alguna solución?

    • etolocka

      8 diciembre, 2017 at 2:22 pm

      Hola Rono, perdón por la demora. La verdad es que no he probado el código en un simulador, sólo lo he armado y comprobé que funciona sin errores.

  7. hola alo mejor va a ser un pregunta tonta pero yo acabo de comprar un arduino mega 2560 no se si se configura igual que el arduino uno y que el programa lo detecte bien

  8. Podrias pasar como se monta el circuito? Es que no se ve en el video muy bien porque la resolucion no es muy buena. Responde a este comentario que asi me llega al email xD

  9. Podrias pasar como se monta el circuito? Es que no se ve en el video muy bien porque la resolucion no es muy buena

    • etolocka

      26 abril, 2018 at 10:33 am

      Hola Antonio, en la Fig. 3 del artículo puedes ver el circuito para montarlo. Lo que se ve en el video es como la monté usando una placa protoboard

  10. Hola, lo podría poner en un esquema de tinkercad o en algo más que no entiendo el de fritzing. Perdona mi ignorancia, pero… Las resistencias son de 1k ohm?

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

© 2018 Profe Tolocka

Tema por Anders NorenArriba ↑

A %d blogueros les gusta esto: