Tabla de contenido:

Dados Arduino para juegos de mesa: 4 pasos
Dados Arduino para juegos de mesa: 4 pasos

Video: Dados Arduino para juegos de mesa: 4 pasos

Video: Dados Arduino para juegos de mesa: 4 pasos
Video: Arduino: Dado con leds, pulsador y random | TechKrowd 2024, Noviembre
Anonim

Por RoboCircuits_com Siga más por el autor:

Dados electrónicos con UTSOURCE
Dados electrónicos con UTSOURCE
Dados electrónicos con UTSOURCE
Dados electrónicos con UTSOURCE
Interruptor de nivel de agua con D882
Interruptor de nivel de agua con D882
Interruptor de nivel de agua con D882
Interruptor de nivel de agua con D882
Reloj ambiental en tiempo real
Reloj ambiental en tiempo real
Reloj ambiental en tiempo real
Reloj ambiental en tiempo real

Acerca de: YouTuber, Drone Manufaturer Más acerca de RoboCircuits_com »

Es posible que haya usado estos dados mientras jugaba LUDO y otros juegos de mesa. Pero siendo un entusiasta de la electrónica tengo que cambiar esta tendencia.

Entonces decidí hacer un dado electrónico. Usé Arduino para mi propósito.

Paso 1: DIY Arduino

Este arduino está hecho por mí usando un microcontrolador atmega 328p. El PCB para esto se solicita a "jlcpcb.com" porque proporcionan los mejores PCB de su clase a precios bajos. Luego soldé todas las partes y finalmente obtuve este lindo Arduino UNO.

Todos los esquemas y archivos se dan en el artículo de mi sitio web:

Paso 2: Realización del proyecto

¡¡¡¡okey!!!!

suficiente sobre el Arduino. Ahora hagamos el proyecto. Para valores aleatorios, utilicé la función aleatoria en arduino ide para obtener valores de 1 a 6 cada vez que presiono el botón. Así que mira este video completo para saber cómo se hace este proyecto.

Paso 3: Código

/ * Este código está diseñado por RoboCircuits

Suscríbeme en youtube https://youtube.com/robocircuits o visita robocircuits.com Siempre tenemos que incluir la biblioteca * /

#include "LedControl.h"

/ * Ahora necesitamos un LedControl para trabajar. ***** Estos números de pin probablemente no funcionarán con su hardware ***** El pin 12 está conectado al DataIn El pin 11 está conectado al CLK El pin 10 está conectado a LOAD Solo tenemos un MAX72XX. * /

LedControl lc = LedControl (12, 11, 10, 1);

/ * siempre esperamos un poco entre las actualizaciones de la pantalla * / unsigned long delaytime = 500; byte seis [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte cinco [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte cuatro [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte tres [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte dos [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte uno [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () {/ * El MAX72XX está en modo de ahorro de energía al inicio, tenemos que hacer una llamada de activación * / lc.shutdown (0, false); / * Establece el brillo en valores medios * / lc.setIntensity (0, 8); / * y borrar la pantalla * / lc.clearDisplay (0); }

/ * Este método mostrará los caracteres (necesita al menos 7x7 leds para ver los caracteres completos) * / void one1 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra uno por uno con un pequeño retardo * / lc.setRow (0, 0, uno [0]); lc.setRow (0, 1, uno [1]); lc.setRow (0, 2, uno [2]); lc.setRow (0, 3, uno [3]); lc.setRow (0, 4, uno [4]); lc.setRow (0, 5, uno [5]); lc.setRow (0, 6, uno [6]); lc.setRow (0, 7, uno [7]); delay (delaytime); } void two2 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra uno por uno con un pequeño retraso * / lc.setRow (0, 0, two [0]); lc.setRow (0, 1, dos [1]); lc.setRow (0, 2, dos [2]); lc.setRow (0, 3, dos [3]); lc.setRow (0, 4, dos [4]); lc.setRow (0, 5, dos [5]); lc.setRow (0, 6, dos [6]); lc.setRow (0, 7, dos [7]); delay (delaytime); } void three3 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra uno por uno con un pequeño retraso * / lc.setRow (0, 0, tres [0]); lc.setRow (0, 1, tres [1]); lc.setRow (0, 2, tres [2]); lc.setRow (0, 3, tres [3]); lc.setRow (0, 4, tres [4]); lc.setRow (0, 5, tres [5]); lc.setRow (0, 6, tres [6]); lc.setRow (0, 7, tres [7]); delay (delaytime); } void four4 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra de cuatro en cuatro con un pequeño retraso * / lc.setRow (0, 0, cuatro [0]); lc.setRow (0, 1, cuatro [1]); lc.setRow (0, 2, cuatro [2]); lc.setRow (0, 3, cuatro [3]); lc.setRow (0, 4, cuatro [4]); lc.setRow (0, 5, cuatro [5]); lc.setRow (0, 6, cuatro [6]); lc.setRow (0, 7, cuatro [7]); delay (delaytime); } void five5 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra cinco por cinco con un pequeño retraso * / lc.setRow (0, 0, cinco [0]); lc.setRow (0, 1, cinco [1]); lc.setRow (0, 2, cinco [2]); lc.setRow (0, 3, cinco [3]); lc.setRow (0, 4, cinco [4]); lc.setRow (0, 5, cinco [5]); lc.setRow (0, 6, cinco [6]); lc.setRow (0, 7, cinco [7]);

delay (delaytime); } void six6 () {/ * aquí están los datos de los caracteres * / / * ahora los muestra seis por seis con un pequeño retraso * / lc.setRow (0, 0, seis [0]); lc.setRow (0, 1, seis [1]); lc.setRow (0, 2, seis [2]); lc.setRow (0, 3, seis [3]); lc.setRow (0, 4, seis [4]); lc.setRow (0, 5, seis [5]); lc.setRow (0, 6, seis [6]); lc.setRow (0, 7, seis [7]); delay (delaytime); }

bucle vacío () {int x; if (analogRead (A4) == 1000) {x = aleatorio (1, 6); } cambiar (x) {caso 1: uno1 (); rotura; caso 2: dos2 (); rotura; caso 3: tres3 (); rotura; caso 4: cuatro4 (); rotura; caso 5: cinco5 (); rotura; caso 6: six6 (); rotura;} }

Paso 4: Me gusta Compartir

Suscríbete en YouTube:

Me gusta en Facebook:

Visita -

Recomendado: