Indholdsfortegnelse:

Arduino terninger til brætspil: 4 trin
Arduino terninger til brætspil: 4 trin

Video: Arduino terninger til brætspil: 4 trin

Video: Arduino terninger til brætspil: 4 trin
Video: Dice Theory 101: 1d12 vs 2d6 #dnd #dice #learning #dungeonsanddragons #ttrpg 2024, November
Anonim

Af RoboCircuits_comFølg mere af forfatteren:

Elektroniske terninger med UTSOURCE
Elektroniske terninger med UTSOURCE
Elektroniske terninger med UTSOURCE
Elektroniske terninger med UTSOURCE
Vandstandskontakt ved hjælp af D882
Vandstandskontakt ved hjælp af D882
Vandstandskontakt ved hjælp af D882
Vandstandskontakt ved hjælp af D882
Ambient Real Time Ur
Ambient Real Time Ur
Ambient Real Time Ur
Ambient Real Time Ur

Om: YouTuber, Drone Manufaturer Mere om RoboCircuits_com »

Du har måske brugt disse terninger, mens du spillede LUDO og andre brætspil. Men som elektronisk entusiast må jeg ændre denne trend.

Så jeg besluttede mig for at lave en elektronisk terning. Jeg brugte Arduino til mit formål.

Trin 1: DIY Arduino

Denne arduino er lavet af mig ved hjælp af en atmega 328p mikrokontroller. PCB'et til dette er bestilt fra "jlcpcb.com", fordi de leverer bedste pc'er i klassen til lave priser. Derefter lodde jeg alle dele og fik endelig denne søde Arduino UNO.

Alle skemaer og filer er angivet i artiklen på min webiste -

Trin 2: Udarbejdelse af projekt

okay!!!!

nok om Arduino. Lad os nu lave projektet. Til tilfældige værdier brugte jeg tilfældig funktion i arduino ide til at få værdier fra 1 til 6, når jeg trykker på knappen. Så se denne fulde video for at vide, hvordan dette projekt er lavet.

Trin 3: Kode

/* Denne kode er designet af RoboCircuits

Tilmeld mig på youtube https://youtube.com/robocircuits eller besøg robocircuits.com Vi skal altid inkludere biblioteket*/

#include "LedControl.h"

/* Nu har vi brug for en LedControl at arbejde med. ***** Disse pin numre vil sandsynligvis ikke fungere med din hardware ***** pin 12 er forbundet til DataIn pin 11 er forbundet til CLK pin 10 er forbundet til LOAD Vi har kun en enkelt MAX72XX. */

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

/ * vi venter altid lidt mellem opdateringer af displayet */ usigneret lang forsinkelse = 500; byte seks [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte fem [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte fire [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte tre [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte to [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte en [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () { / * MAX72XX er i energibesparende tilstand ved opstart, vi skal foretage et wakeup call * / lc.shutdown (0, false); / * Indstil lysstyrken til et medium værdier */ lc.setIntensity (0, 8); / * og ryd displayet */ lc.clearDisplay (0); }

/* Denne metode viser tegnene (du skal mindst 7 x 7 lysdioder for at se hele tegningerne)* /void one1 () { /* her er dataene for tegnene* / /* vis dem nu en efter en med en lille forsinkelse */ lc.setRow (0, 0, en [0]); lc.setRow (0, 1, en [1]); lc.setRow (0, 2, en [2]); lc.setRow (0, 3, en [3]); lc.setRow (0, 4, en [4]); lc.setRow (0, 5, en [5]); lc.setRow (0, 6, en [6]); lc.setRow (0, 7, en [7]); forsinkelse (forsinkelse); } void two2 () { / * her er dataene for tegnene * / / * vis dem nu en efter en med en lille forsinkelse * / lc.setRow (0, 0, to [0]); lc.setRow (0, 1, to [1]); lc.setRow (0, 2, to [2]); lc.setRow (0, 3, to [3]); lc.setRow (0, 4, to [4]); lc.setRow (0, 5, to [5]); lc.setRow (0, 6, to [6]); lc.setRow (0, 7, to [7]); forsinkelse (forsinkelse); } void three3 () { / * her er dataene for tegnene * / / * vis dem nu en efter en med en lille forsinkelse * / 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]); forsinkelse (forsinkelse); } void four4 () { / * her er dataene for tegnene * / / * vis dem nu fire for fire med en lille forsinkelse * / lc.setRow (0, 0, fire [0]); lc.setRow (0, 1, fire [1]); lc.setRow (0, 2, fire [2]); lc.setRow (0, 3, fire [3]); lc.setRow (0, 4, fire [4]); lc.setRow (0, 5, fire [5]); lc.setRow (0, 6, fire [6]); lc.setRow (0, 7, fire [7]); forsinkelse (forsinkelse); } void five5 () { / * her er dataene for tegnene * / / * vis dem nu fem for fem med en lille forsinkelse * / lc.setRow (0, 0, fem [0]); lc.setRow (0, 1, fem [1]); lc.setRow (0, 2, fem [2]); lc.setRow (0, 3, fem [3]); lc.setRow (0, 4, fem [4]); lc.setRow (0, 5, fem [5]); lc.setRow (0, 6, fem [6]); lc.setRow (0, 7, fem [7]);

forsinkelse (forsinkelse); } void six6 () { / * her er dataene for tegnene * / / * vis dem nu seks for seks med en lille forsinkelse * / lc.setRow (0, 0, six [0]); lc.setRow (0, 1, seks [1]); lc.setRow (0, 2, seks [2]); lc.setRow (0, 3, seks [3]); lc.setRow (0, 4, seks [4]); lc.setRow (0, 5, seks [5]); lc.setRow (0, 6, seks [6]); lc.setRow (0, 7, seks [7]); forsinkelse (forsinkelse); }

void loop () {int x; hvis (analogRead (A4) == 1000) {x = tilfældig (1, 6); } switch (x) {case 1: one1 (); pause; sag 2: two2 (); pause; sag 3: three3 (); pause; sag 4: four4 (); pause; sag 5: five5 (); pause; sag 6: six6 (); pause;} }

Trin 4: Synes godt om Del

Abonner os på YouTube -

Synes godt om os på Facebook -

Besøg -

Anbefalede: