Aprende a construir un sencillo lanzador de dados

Construye un dado electrónico

Con este pequeño y sencillo tutorial aprenderás a encender uno de los seis LEDs al azar imitando así el lanzamiento de un dado.
Elegiremos un número aleatorio entre 1 y 6, y luego activaremos el LED correspondiente para indicar el resultado. Crearemos una función para seleccionar uno de los seis LEDs en el microcontrolador Arduino al azar y mantener el LED encendido durante un cierto periodo de tiempo. Cuando se enciende el Arduino que ejecuta el código o se apaga, la placa debe mostrar rápidamente LEDs aleatorios durante un período de tiempo especificado y luego poco a poco hasta que el LED final quede encendido. El LED que coincide con el número elegido al azar resultante permanecerá encendido hasta que se restablezca el Arduino o se apague.

Lista de componentes

Para construir el dado, necesitaremos los siguientes componentes:

  • Seis LEDs de cualquier color (LED1 a LED6)
  • Una resistencia de 560 W (R1)
  • Varios cables de conexión
  • Una placa de medición de tamaño mediano
  • Arduino y cable USB de conexión

El Esquema

Debido a que sólo un LED se encenderá a la vez, una única resistencia limitadora de corriente puede ir entre los cátodos de los LEDs y GND. En la siguiente figura vemos el esquema del dado.
dado arduino

El código

// Creación de un dado electrónico
void setup()
{
randomSeed(analogRead(0)); // seed the random number generator
for ( int z = 1 ; z < 7 ; z++ ) // LEDs on pins 1-6 are output { pinMode(z, OUTPUT); } } void randomLED(int del) { int r; r = random(1, 7); // get a random number from 1 to 6 digitalWrite(r, HIGH); // output to the matching LED on digital pin 1-6 if (del > 0)
{
delay(del); // hold the LED on for the delay received
}
else if (del == 0)
{
do // the delay entered was zero, hold the LED on
forever
{}
while (1);
}
digitalWrite(r, LOW); // turn off the LED
}
void loop()
{
int a;
// cycle the LEDs around for effect
for ( a = 0 ; a < 100 ; a++ )
{
randomLED(50);
}
// slow down
for ( a = 1 ; a <= 10 ; a++ )
{
randomLED(a * 100);
}
// and stop at the final random number and LED
randomLED(0);
}

Aquí usamos un loop en la configuración void () para activar los pines de salida digital.
La función randomLED () recibe un valos entero que se utiliza en el retraso de la luz()
y mantener el LED encendido durante el tiempo seleccionado. Si el Valor del retardo recibido es 0, entonces la función mantiene el LED activado indefinidamente, porque utilizamos
do {} while (1);
En while, que este siempre encendido, porque 1 es siempre 1.

Para «tirar el dado», reiniciamos el Arduino para reiniciar el código. Para realizar un cambio cada vez más lento de los LED antes de que se muestre el valor final, En x primero mostramos un LED aleatorio 100 veces por 50 milisegundos cada vez. A continuación, lo ralentizamos aumentando el retardo entre los destellos 100 a 1.000 milisegundos, con cada flash de 100 milisegundos. El propósito de esto es simular la «desaceleración» de un dado antes de que finalmente se fije en un valor, momento en el que el Arduino muestra el resultado manteniendo un LED encendido con esta última línea:
RandomLED (0);

Podemos cambiar este proyecto de muchas maneras. Por ejemplo, podríamos añadir otros seis LEDs para rodar dos dados a la vez, o tal vez mostrar el resultado utilizando sólo el LED incorporado parpadeando varias veces para indicar el resultado de la tirada.

Un proyecto similar es el que podemos ver en el siguiente vídeo de otro proyecto para realizar lo mismo

Recordar que tanto este tutorial como el resto de tutoriales del artículo 10 proyectos sencillos son un extracto del libro Arduino Workshop que su autor ha puesto en descarga gratuita, podéis conseguir el libro completo en Amazon. Este proyecto en concreto lo podéis ver en su Enlace al original.

Pin It on Pinterest

Shares