Arduino Dice: construye un circuito de dados simple

En este tutorial vamos a hacer nuestro propio circuito de dados Arduino. Este es un proyecto simple y es excelente para conocer más de los conceptos básicos de Arduino.

Al igual que el proyecto de semáforos de Arduino, este proyecto utiliza una variedad de LEDS y resistencias para formar el circuito. También usaremos un interruptor físico para decirle a Arduino cuándo generar una nueva cara de dado.

Puede ir más allá con este proyecto haciendo un estuche especial para el circuito y los LED. Excelente si quieres algunos dados electrónicos para jugar tu próximo juego de mesa.

Si desea ver cómo hacer este proyecto visualmente, asegúrese de ver el video a continuación. Pasamos por todos los pasos que necesita saber para poner esto en marcha.

Equipo

El equipo que necesitará en este proyecto de dados Arduino se enumera a continuación.

arduino uno

7x LED

7 resistencias de 100 ohmios (marrón, negro, marrón)

Resistencia de 100 k ohmios (marrón, negro, amarillo)

Interruptor físico

Tablero de circuitos

Alambre de tablero

Video

Preparé un video que lo guiará a través de todos los pasos para configurar este circuito de dados y darle vida usando el Arduino.

Si prefiere un tutorial escrito detallado, puede encontrarlo justo debajo del video.

Adblock bloqueando el video? Apóyanos suscribiéndote a nuestro servicio sin publicidad.

Construyendo el circuito de dados de Arduino

El circuito de dados es relativamente fácil y se puede montar rápidamente. Hay formas de mejorar el circuito, pero para este tutorial, lo mantendremos básico.

He hecho un diagrama de circuito a continuación para ayudarlo a colocar todo en el lugar correcto. Explicaré más sobre el circuito justo debajo del diagrama.

Un interruptor se configura en un circuito tipo H, por ejemplo, en nuestro diagrama es una H lateral. Los cables superior izquierdo y superior derecho están separados de los cables inferiores. Cuando presionas el botón, conecta los cables superior e inferior formando un circuito activando así nuestros dados.

Ejecutamos una conexión 3v3 al interruptor y tenemos una resistencia de 100k a tierra. Entre la resistencia de 100k y el interruptor, tenemos el cable que va al pin 2. Esto detectará cada vez que se presione el interruptor.

Todos los LED están posicionados para parecerse a la cara de un troquel. Los he espaciado un poco más para que sea más fácil verlos en el diagrama del circuito de arriba. Puede colocar los suyos mucho más juntos si desea que se parezca mucho más a un dado adecuado.

Cada uno de los LED está conectado al riel de tierra a través de una resistencia de 100 ohmios. Luego, el extremo positivo de los LEDS se conecta a un pin en el Arduino. Puede ver qué LEDS están conectados a qué pin en la tabla a continuación.

Hacer que el circuito de dados de Arduino cobre vida

El código de este proyecto vuelve a ser muy similar al del semáforo. Sin embargo, en este introducimos un dispositivo de entrada (interruptor) y también producimos un número aleatorio usando la función randomSeed().

Este código es bastante largo por lo que recomiendo descargarlo desde aquí o desde nuestro GitHub. Tomaré algunos fragmentos del código para explicar exactamente lo que estamos haciendo para ayudarlo a comprender mejor el código.

En el siguiente ejemplo, estoy declarando las variables. BottomLeft se refiere a la ubicación del LED, lo que facilita su identificación al editar el script. El número que estamos dando a estas variables son los pines a los que están conectados los LED.

Las variables state y randNumber se utilizarán para el almacenamiento de números. Verás esto en acción en un momento.

int button = 2; //LED for DICE int bottomLeft = 3; int middleLeft = 4; int upperLeft = 5; int middle = 6; int bottomRight = 7; int middleRight = 8; int upperRight = 9; int state = 0; long randNumber;

El siguiente fragmento de código es la configuración y es donde asignamos pines para que sean salidas o entradas y cualquier otra cosa que necesitemos configurar antes de ejecutar cualquier código adicional. Usamos RandomSeed para configurar un generador de números aleatorios.

//Initial setup void setup(){   pinMode(bottomLeft, OUTPUT);   pinMode(middleLeft, OUTPUT);   pinMode(upperLeft, OUTPUT);   pinMode(middle, OUTPUT);   pinMode(bottomRight, OUTPUT);   pinMode(middleRight, OUTPUT);   pinMode(upperRight, OUTPUT);      pinMode(button, INPUT);   Serial.begin(9600);   randomSeed(analogRead(0)); } 

La parte de bucle de nuestro script continúa recorriendo hasta que el Arduino se apaga o se carga un nuevo conjunto de código. Al comienzo del ciclo de dados de Arduino, verificamos si el interruptor se ha presionado (alto).

Si se cumplen las condiciones, cambiamos el estado a 1 y obtenemos un número aleatorio entre 1 y 7. Una vez que tenemos el número aleatorio, verificamos cuál es y ejecutamos la función correspondiente.

Una vez realizada la función esperamos 4 segundos y luego apagamos los LEDS y volvemos a nuestro estado normal de 0.

void loop(){   //Read our button if high then run dice   if (digitalRead(button) == HIGH && state == 0){     state = 1;     randNumber = random(1, 7);     delay(100);     Serial.println(randNumber);      if (randNumber == 6){       six();     }     if (randNumber == 5){       five();     }     if (randNumber == 4){       four();     }     if (randNumber == 3){       three();     }     if (randNumber == 2){       two();     }     if (randNumber == 1){       one();     }     delay(4000);     clearAll();     state = 0;   } } 

A continuación se muestra un ejemplo de la función seis. Esta función se llama cada vez que el dado produce el número seis. Como puede ver claramente, enciende todos los LED relevantes.

Esto hará que todos los LED requeridos que forman seis se enciendan para que se muestre la cara de dado correcta en el circuito.

void six() {   digitalWrite(bottomLeft, HIGH);   digitalWrite(middleLeft, HIGH);   digitalWrite(upperLeft, HIGH);   digitalWrite(bottomRight, HIGH);   digitalWrite(middleRight, HIGH);   digitalWrite(upperRight, HIGH); }

Nuevamente, esta página no tiene el código completo, así que no olvides descargarlo para que puedas ponerlo en tu Arduino. Puede descargarlo desde aquí o encontrarlo en nuestro GitHub.

Espero que disfrute de este proyecto de dados de Arduino y que le haya ayudado a aprender más sobre los conceptos básicos de Arduino y la codificación. Si desea dejar comentarios, tiene preguntas o cualquier otra cosa, asegúrese de dejarnos un comentario en nuestro foro.