INHOUDSOPGAWE:

Arduino Dice vir bordspeletjies: 4 stappe
Arduino Dice vir bordspeletjies: 4 stappe

Video: Arduino Dice vir bordspeletjies: 4 stappe

Video: Arduino Dice vir bordspeletjies: 4 stappe
Video: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, November
Anonim

Deur RoboCircuits_com Volg meer deur die skrywer:

Elektroniese dobbelstene met UTSOURCE
Elektroniese dobbelstene met UTSOURCE
Elektroniese dobbelstene met UTSOURCE
Elektroniese dobbelstene met UTSOURCE
Waterpeilskakelaar met behulp van D882
Waterpeilskakelaar met behulp van D882
Waterpeilskakelaar met behulp van D882
Waterpeilskakelaar met behulp van D882
Ambient real -time horlosie
Ambient real -time horlosie
Ambient real -time horlosie
Ambient real -time horlosie

About: YouTuber, Drone Manufaturer Meer oor RoboCircuits_com »

U het moontlik hierdie dobbelsteen gebruik terwyl u LUDO en ander bordspeletjies gespeel het. Maar as 'n elektroniese entoesias, moet ek hierdie tendens verander.

Daarom het ek besluit om 'n elektroniese dobbelsteen te maak. Ek het Arduino vir my doel gebruik.

Stap 1: DIY Arduino

Hierdie arduino word deur my gemaak met behulp van 'n atmega 328p -mikrobeheerder. Die PCB hiervoor word bestel by "jlcpcb.com" omdat dit die beste PCB's in die klas bied teen lae pryse. Toe soldeer ek alle dele en kry uiteindelik hierdie oulike Arduino UNO.

Alle skema's en lêers word in die artikel van my webiste gegee -

Stap 2: Die maak van 'n projek

goed !!!!

genoeg oor die Arduino. Laat ons nou die projek maak. Vir ewekansige waardes gebruik ek ewekansige funksie in arduino ide om waardes van 1 tot 6 te kry wanneer ek op die knoppie druk. Kyk dus na die volledige video om te weet hoe hierdie projek gemaak word.

Stap 3: Kodeer

/* Hierdie kode is ontwerp deur RoboCircuits

Sluit my aan op YouTube https://youtube.com/robocircuits of besoek robocircuits.com Ons moet altyd die biblioteek insluit*/

#sluit "LedControl.h" in

/* Nou het ons 'n LedControl nodig om mee te werk. ***** Hierdie speldnommers werk waarskynlik nie met u hardeware nie ***** pen 12 is gekoppel aan die DataIn pen 11 is gekoppel aan die CLK pen 10 is gekoppel aan LOAD Ons het slegs 'n enkele MAX72XX. */

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

/ * ons wag altyd 'n bietjie tussen opdaterings van die skerm */ ongetekende lang vertraging = 500; greep ses [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; greep vyf [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; greep vier [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; greep drie [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; greep twee [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; greep een [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

ongeldige opstelling () { / * Die MAX72XX is in die spaarmodus tydens die aanvang; ons moet 'n wekroep * / lc.stop (0, vals) doen; / * Stel die helderheid op 'n medium waardes */ lc.setIntensity (0, 8); / * en maak die skerm */ lc.clearDisplay (0) skoon; }

/* Hierdie metode sal die karakters vertoon (jy benodig ten minste 7x7 LED's om die hele tekens te sien)* /void one1 () { /* hier is die data vir die karakters* / /* vertoon dit nou een vir een met 'n klein vertraging */ lc.setRow (0, 0, een [0]); lc.setRow (0, 1, een [1]); lc.setRow (0, 2, een [2]); lc.setRow (0, 3, een [3]); lc.setRow (0, 4, een [4]); lc.setRow (0, 5, een [5]); lc.setRow (0, 6, een [6]); lc.setRow (0, 7, een [7]); vertraging (vertragingstyd); } void two2 () { / * hier is die data vir die karakters * / / * vertoon dit nou een vir een met 'n klein vertraging * / lc.setRow (0, 0, twee [0]); lc.setRow (0, 1, twee [1]); lc.setRow (0, 2, twee [2]); lc.setRow (0, 3, twee [3]); lc.setRow (0, 4, twee [4]); lc.setRow (0, 5, twee [5]); lc.setRow (0, 6, twee [6]); lc.setRow (0, 7, twee [7]); vertraging (vertragingstyd); } void three3 () { / * hier is die data vir die karakters * / / * vertoon dit nou een vir een met 'n klein vertraging * / lc.setRow (0, 0, drie [0]); lc.setRow (0, 1, drie [1]); lc.setRow (0, 2, drie [2]); lc.setRow (0, 3, drie [3]); lc.setRow (0, 4, drie [4]); lc.setRow (0, 5, drie [5]); lc.setRow (0, 6, drie [6]); lc.setRow (0, 7, drie [7]); vertraging (vertragingstyd); } nietig four4 () { / * hier is die data vir die karakters * / / * vertoon dit nou vier vir vier met 'n klein vertraging * / lc.setRow (0, 0, vier [0]); lc.setRow (0, 1, vier [1]); lc.setRow (0, 2, vier [2]); lc.setRow (0, 3, vier [3]); lc.setRow (0, 4, vier [4]); lc.setRow (0, 5, vier [5]); lc.setRow (0, 6, vier [6]); lc.setRow (0, 7, vier [7]); vertraging (vertragingstyd); } void five5 () { / * hier is die data vir die karakters * / / * wys dit nou vyf vir vyf met 'n klein vertraging * / lc.setRow (0, 0, five [0]); lc.setRow (0, 1, vyf [1]); lc.setRow (0, 2, vyf [2]); lc.setRow (0, 3, vyf [3]); lc.setRow (0, 4, vyf [4]); lc.setRow (0, 5, vyf [5]); lc.setRow (0, 6, vyf [6]); lc.setRow (0, 7, vyf [7]);

vertraging (vertragingstyd); } nietig six6 () { / * hier is die data vir die karakters * / / * vertoon dit nou ses vir ses met 'n klein vertraging * / lc.setRow (0, 0, six [0]); lc.setRow (0, 1, ses [1]); lc.setRow (0, 2, ses [2]); lc.setRow (0, 3, ses [3]); lc.setRow (0, 4, ses [4]); lc.setRow (0, 5, ses [5]); lc.setRow (0, 6, ses [6]); lc.setRow (0, 7, ses [7]); vertraging (vertragingstyd); }

leemte lus () {int x; as (analogRead (A4) == 1000) {x = ewekansig (1, 6); } skakelaar (x) {geval 1: one1 (); breek; saak 2: two2 (); breek; saak 3: three3 (); breek; saak 4: four4 (); breek; saak 5: five5 (); breek; saak 6: six6 (); breek;} }

Stap 4: Like Deel

Teken ons in op YouTube -

Hou van ons op Facebook -

Besoek -

Aanbeveel: