Taula de continguts:

Daus Arduino per a jocs de taula: 4 passos
Daus Arduino per a jocs de taula: 4 passos

Vídeo: Daus Arduino per a jocs de taula: 4 passos

Vídeo: Daus Arduino per a jocs de taula: 4 passos
Vídeo: Seminari PC Desendollat 2024, De novembre
Anonim

Per RoboCircuits_com Segueix-ne més per l'autor:

Daus electrònics amb UTSOURCE
Daus electrònics amb UTSOURCE
Daus electrònics amb UTSOURCE
Daus electrònics amb UTSOURCE
Interruptor de nivell d'aigua mitjançant D882
Interruptor de nivell d'aigua mitjançant D882
Interruptor de nivell d'aigua mitjançant D882
Interruptor de nivell d'aigua mitjançant D882
Rellotge ambient en temps real
Rellotge ambient en temps real
Rellotge ambient en temps real
Rellotge ambient en temps real

Quant a: YouTuber, Drone Manufaturer Més informació sobre RoboCircuits_com »

És possible que hàgiu utilitzat aquests daus mentre jugàveu a LUDO i altres jocs de taula. Però en ser un entusiasta de l’electrònica he de canviar aquesta tendència.

Així que vaig decidir fer un dau electrònic. He utilitzat Arduino per al meu propòsit.

Pas 1: Arduino de bricolatge

Aquest arduino el faig jo amb un microcontrolador atmega 328p. El PCB per a això es demana a "jlcpcb.com" perquè ofereixen els millors ordinadors de la categoria a preus baixos. Després vaig soldar totes les peces i, finalment, vaig aconseguir aquest bonic Arduino UNO.

Tots els esquemes i fitxers es donen a l'article del meu lloc web:

Pas 2: elaboració del projecte

bé!!!!

prou sobre l'Arduino. Ara fem el projecte. Per als valors aleatoris he utilitzat la funció aleatòria en arduino ide per obtenir valors de l'1 al 6 sempre que premo el botó. Mireu, doncs, aquest vídeo complet per saber com es fa aquest projecte.

Pas 3: Codi

/ * Aquest codi està dissenyat per RoboCircuits

Subscriu-me a youtube https://youtube.com/robocircuits o visita robocircuits.com Sempre hem d’incloure la biblioteca * /

#include "LedControl.h"

/ * Ara necessitem un LedControl per treballar. ***** Aquests números de pin probablement no funcionaran amb el vostre maquinari ***** el pin 12 està connectat al DataIn el pin 11 està connectat al CLK El pin 10 està connectat a LOAD. Només tenim un únic MAX72XX. * /

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

/ * sempre esperem una mica entre les actualitzacions de la pantalla * / retard llarg sense signar = 500; byte six [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte five [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte four [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte three [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte two [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte one [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () {/ * El MAX72XX està en mode d'estalvi d'energia en iniciar, hem de fer una trucada de despertador * / lc.shutdown (0, false); / * Estableix la brillantor en valors mitjans * / lc.setIntensity (0, 8); / * i esborreu la pantalla * / lc.clearDisplay (0); }

/ * Aquest mètode mostrarà els caràcters (necessiteu almenys leds de 7x7 per veure els caràcters sencers) * / void one1 () {/ * aquí teniu les dades dels caràcters * / / * ara els mostrarà un per un amb un petit delay * / lc.setRow (0, 0, un [0]); lc.setRow (0, 1, un [1]); lc.setRow (0, 2, un [2]); lc.setRow (0, 3, un [3]); lc.setRow (0, 4, un [4]); lc.setRow (0, 5, un [5]); lc.setRow (0, 6, un [6]); lc.setRow (0, 7, un [7]); retard (delaytime); } void two2 () {/ * aquí teniu les dades dels caràcters * / / * que ara es mostren un per un amb un petit retard * / lc.setRow (0, 0, dos [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]); retard (delaytime); } void three3 () {/ * aquí teniu les dades dels caràcters * / / * que ara es mostren un per un amb un petit retard * / lc.setRow (0, 0, three [0]); lc.setRow (0, 1, three [1]); lc.setRow (0, 2, three [2]); lc.setRow (0, 3, three [3]); lc.setRow (0, 4, three [4]); lc.setRow (0, 5, tres [5]); lc.setRow (0, 6, three [6]); lc.setRow (0, 7, three [7]); retard (delaytime); } void four4 () {/ * aquí teniu les dades dels caràcters * / / * que ara es mostren de quatre en quatre amb un petit retard * / lc.setRow (0, 0, quatre [0]); lc.setRow (0, 1, quatre [1]); lc.setRow (0, 2, quatre [2]); lc.setRow (0, 3, quatre [3]); lc.setRow (0, 4, quatre [4]); lc.setRow (0, 5, quatre [5]); lc.setRow (0, 6, quatre [6]); lc.setRow (0, 7, quatre [7]); retard (delaytime); } void five5 () {/ * aquí teniu les dades dels caràcters * / / * que ara es mostren de cinc en cinc amb un petit retard * / lc.setRow (0, 0, cinc [0]); lc.setRow (0, 1, cinc [1]); lc.setRow (0, 2, five [2]); lc.setRow (0, 3, five [3]); lc.setRow (0, 4, five [4]); lc.setRow (0, 5, cinc [5]); lc.setRow (0, 6, five [6]); lc.setRow (0, 7, cinc [7]);

retard (delaytime); } void six6 () {/ * aquí teniu les dades dels caràcters * / / * que ara es mostren de sis en sis amb un petit retard * / lc.setRow (0, 0, sis [0]); lc.setRow (0, 1, six [1]); lc.setRow (0, 2, six [2]); lc.setRow (0, 3, six [3]); lc.setRow (0, 4, six [4]); lc.setRow (0, 5, sis [5]); lc.setRow (0, 6, six [6]); lc.setRow (0, 7, six [7]); retard (delaytime); }

bucle buit () {int x; if (analogRead (A4) == 1000) {x = random (1, 6); } switch (x) {cas 1: one1 (); trencar; cas 2: dos (); trencar; cas 3: three3 (); trencar; cas 4: four4 (); trencar; cas 5: five5 (); trencar; cas 6: six6 (); trencar;} }

Pas 4: m'agrada Compartir

Subscriviu-nos a YouTube:

Com nosaltres a Facebook:

Visita -

Recomanat: