Sommario:

Arduino Dice per giochi da tavolo: 4 passaggi
Arduino Dice per giochi da tavolo: 4 passaggi

Video: Arduino Dice per giochi da tavolo: 4 passaggi

Video: Arduino Dice per giochi da tavolo: 4 passaggi
Video: Quando provi a fare un complimento a una ragazza... 2024, Luglio
Anonim

Di RoboCircuits_comSegui di più dell'autore:

Dadi elettronici con UTSOURCE
Dadi elettronici con UTSOURCE
Dadi elettronici con UTSOURCE
Dadi elettronici con UTSOURCE
Interruttore del livello dell'acqua utilizzando D882
Interruttore del livello dell'acqua utilizzando D882
Interruttore del livello dell'acqua utilizzando D882
Interruttore del livello dell'acqua utilizzando D882
Orologio ambientale in tempo reale
Orologio ambientale in tempo reale
Orologio ambientale in tempo reale
Orologio ambientale in tempo reale

Informazioni su: YouTuber, produttore di droni Ulteriori informazioni su RoboCircuits_com »

Potresti aver usato questi dadi mentre giocavi a LUDO e ad altri giochi da tavolo. Ma essendo un appassionato di elettronica devo cambiare questa tendenza.

Così ho deciso di fare un dado elettronico. Ho usato Arduino per il mio scopo.

Passaggio 1: Arduino fai da te

Questo arduino è stato realizzato da me utilizzando un microcontrollore atmega 328p. Il PCB per questo è ordinato da "jlcpcb.com" perché forniscono i migliori PCB della categoria a prezzi bassi. Poi ho saldato tutte le parti e finalmente ho ottenuto questo Arduino UNO dall'aspetto carino.

Tutti gli schemi e i file sono riportati nell'articolo del mio sito Web -

Passaggio 2: realizzazione del progetto

va bene!!!!

basta con Arduino. Ora facciamo il progetto. Per i valori casuali ho usato la funzione random in arduino ide per ottenere valori da 1 a 6 ogni volta che premo il pulsante. Quindi guarda questo video completo per sapere come è fatto questo progetto.

Passaggio 3: codice

/* Questo codice è stato progettato da RoboCircuits

Iscriviti su youtube https://youtube.com/robocircuits o visita robocircuits.com Dobbiamo sempre includere la libreria*/

#include "LedControl.h"

/* Ora abbiamo bisogno di un LedControl con cui lavorare. ***** Questi numeri di pin probabilmente non funzioneranno con il tuo hardware ***** il pin 12 è collegato al DataIn il pin 11 è collegato al CLK il pin 10 è collegato a LOAD Abbiamo solo un singolo MAX72XX. */

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

/* aspettiamo sempre un po' tra gli aggiornamenti del display */ unsigned long delaytime=500; byte sei[8]={B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte cinque[8]={B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte quattro[8]={B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte tre[8]={B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte due[8]={B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte uno[8]={B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup() { /* Il MAX72XX è in modalità di risparmio energetico all'avvio, dobbiamo fare una sveglia */ lc.shutdown(0, false); /* Imposta la luminosità a valori medi */ lc.setIntensity(0, 8); /* e cancella il display */ lc.clearDisplay(0); }

/* Questo metodo visualizzerà i caratteri (sono necessari almeno 7x7 led per vedere tutti i caratteri) */ void one1() { /* ecco i dati per i caratteri */ /* ora visualizzali uno per uno con un piccolo ritardo */ 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]); ritardo (ritardo); } void two2() { /* ecco i dati per i caratteri */ /* ora li mostra uno per uno con un piccolo ritardo */ lc.setRow(0, 0, two[0]); lc.setRow(0, 1, due[1]); lc.setRow(0, 2, due[2]); lc.setRow(0, 3, due[3]); lc.setRow(0, 4, due[4]); lc.setRow(0, 5, due[5]); lc.setRow(0, 6, due[6]); lc.setRow(0, 7, due[7]); ritardo (ritardo); } void three3() { /* ecco i dati per i caratteri */ /* ora li mostra uno per uno con un piccolo ritardo */ lc.setRow(0, 0, three[0]); lc.setRow(0, 1, tre[1]); lc.setRow(0, 2, tre[2]); lc.setRow(0, 3, tre[3]); lc.setRow(0, 4, tre[4]); lc.setRow(0, 5, tre[5]); lc.setRow(0, 6, tre[6]); lc.setRow(0, 7, tre[7]); ritardo (ritardo); } void four4() { /* ecco i dati per i caratteri */ /* ora li mostra quattro per quattro con un piccolo ritardo */ lc.setRow(0, 0, four[0]); lc.setRow(0, 1, quattro[1]); lc.setRow(0, 2, quattro[2]); lc.setRow(0, 3, quattro[3]); lc.setRow(0, 4, quattro[4]); lc.setRow(0, 5, quattro[5]); lc.setRow(0, 6, quattro[6]); lc.setRow(0, 7, quattro[7]); ritardo (ritardo); } void five5() { /* ecco i dati per i caratteri */ /* ora li mostra cinque per cinque con un piccolo ritardo */ lc.setRow(0, 0, five[0]); lc.setRow(0, 1, cinque[1]); lc.setRow(0, 2, cinque[2]); lc.setRow(0, 3, cinque[3]); lc.setRow(0, 4, cinque[4]); lc.setRow(0, 5, cinque[5]); lc.setRow(0, 6, cinque[6]); lc.setRow(0, 7, cinque[7]);

ritardo (ritardo); } void six6() { /* ecco i dati per i caratteri */ /* ora li mostra sei per sei con un piccolo ritardo */ lc.setRow(0, 0, six[0]); lc.setRow(0, 1, sei[1]); lc.setRow(0, 2, sei[2]); lc.setRow(0, 3, sei[3]); lc.setRow(0, 4, sei[4]); lc.setRow(0, 5, sei[5]); lc.setRow(0, 6, sei[6]); lc.setRow(0, 7, sei[7]); ritardo (ritardo); }

void loop() { int x; if(analogRead(A4)==1000) { x = random(1, 6); } switch(x){ case 1: one1(); rottura; caso 2: due2(); rottura; caso 3: tre3(); rottura; caso 4: quattro4(); rottura; caso 5: cinque5(); rottura; caso 6: sei6(); rottura;} }

Passaggio 4: Mi piace Condividi

Iscriviti su YouTube -

Metti mi piace su Facebook -

Visita -

Consigliato: