Съдържание:

Зарове Arduino за настолни игри: 4 стъпки
Зарове Arduino за настолни игри: 4 стъпки

Видео: Зарове Arduino за настолни игри: 4 стъпки

Видео: Зарове Arduino за настолни игри: 4 стъпки
Видео: CS50 Live, серия 003 2024, Юли
Anonim

От RoboCircuits_com Следвайте още от автора:

Електронни зарове с UTSOURCE
Електронни зарове с UTSOURCE
Електронни зарове с UTSOURCE
Електронни зарове с UTSOURCE
Превключвател за нивото на водата с помощта на D882
Превключвател за нивото на водата с помощта на D882
Превключвател за нивото на водата с помощта на D882
Превключвател за нивото на водата с помощта на D882
Околен часовник в реално време
Околен часовник в реално време
Околен часовник в реално време
Околен часовник в реално време

За: YouTuber, Производител на дронове Повече за RoboCircuits_com »

Може би сте използвали тези зарове, докато играете LUDO и други настолни игри. Но като електронен ентусиаст трябва да променя тази тенденция.

Затова реших да направя електронно зарче. Използвах Arduino за моята цел.

Стъпка 1: Направи си сам Arduino

Това arduino е направено от мен с помощта на микроконтролер atmega 328p. Печатната платка за това се поръчва от „jlcpcb.com“, тъй като те предлагат най -добрите в класа платки за ниски цени. След това запоявах всички части и най -накрая получих този сладко изглеждащ Arduino UNO.

Всички схеми и файлове са дадени в статията на моята уеб страница -

Стъпка 2: Изготвяне на проект

добре!!!!

достатъчно за Arduino. Сега нека направим проекта. За случайни стойности използвах произволна функция в arduino ide, за да получа стойности от 1 до 6 всеки път, когато натисна бутона. Така че гледайте този пълен видеоклип, за да разберете как е направен този проект.

Стъпка 3: Код

/* Този код е проектиран от RoboCircuits

Запишете ме в youtube https://youtube.com/robocircuits или посетете robocircuits.com Винаги трябва да включим библиотеката*/

#include "LedControl.h"

/* Сега имаме нужда от LedControl, с който да работим. ***** Тези пинови номера вероятно няма да работят с вашия хардуер ***** пин 12 е свързан към DataIn пин 11 е свързан към CLK пин 10 е свързан към LOAD Имаме само един MAX72XX. */

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

/ * винаги чакаме малко между актуализациите на дисплея */ unsigned long delaytime = 500; шест байт [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; байт пет [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; байт четири [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; байт три [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; байт два [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; байт един [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () { / * MAX72XX е в режим на пестене на енергия при стартиране, трябва да направим повикване за събуждане * / lc.shutdown (0, false); / * Задайте яркостта на средни стойности */ lc.setIntensity (0, 8); / * и изчистете дисплея */ lc.clearDisplay (0); }

/* Този метод ще показва символите (имате нужда от поне 7x7 светодиоди, за да видите цели символи)* /void one1 () { /* ето данните за знаците* / /* сега ги показвайте един по един с малка забавяне */ lc.setRow (0, 0, един [0]); lc.setRow (0, 1, един [1]); lc.setRow (0, 2, един [2]); lc.setRow (0, 3, един [3]); lc.setRow (0, 4, един [4]); lc.setRow (0, 5, един [5]); lc.setRow (0, 6, един [6]); lc.setRow (0, 7, един [7]); забавяне (забавяне); } void two2 () { / * ето данните за знаците * / / * сега ги извеждат един по един с малко закъснение * / lc.setRow (0, 0, два [0]); lc.setRow (0, 1, две [1]); lc.setRow (0, 2, два [2]); lc.setRow (0, 3, два [3]); lc.setRow (0, 4, два [4]); lc.setRow (0, 5, два [5]); lc.setRow (0, 6, два [6]); lc.setRow (0, 7, две [7]); забавяне (забавяне); } void three3 () { / * ето данните за знаците * / / * сега ги извеждат един по един с малко закъснение * / lc.setRow (0, 0, три [0]); lc.setRow (0, 1, три [1]); lc.setRow (0, 2, три [2]); lc.setRow (0, 3, три [3]); lc.setRow (0, 4, три [4]); lc.setRow (0, 5, три [5]); lc.setRow (0, 6, три [6]); lc.setRow (0, 7, три [7]); забавяне (забавяне); } void four4 () { / * ето данните за знаците * / / * сега ги показват четири по четири с малко закъснение * / lc.setRow (0, 0, четири [0]); lc.setRow (0, 1, четири [1]); lc.setRow (0, 2, четири [2]); lc.setRow (0, 3, четири [3]); lc.setRow (0, 4, четири [4]); lc.setRow (0, 5, четири [5]); lc.setRow (0, 6, четири [6]); lc.setRow (0, 7, четири [7]); забавяне (забавяне); } void five5 () { / * ето данните за знаците * / / * сега ги показват пет по пет с малко закъснение * / lc.setRow (0, 0, пет [0]); lc.setRow (0, 1, пет [1]); lc.setRow (0, 2, пет [2]); lc.setRow (0, 3, пет [3]); lc.setRow (0, 4, пет [4]); lc.setRow (0, 5, пет [5]); lc.setRow (0, 6, пет [6]); lc.setRow (0, 7, пет [7]);

забавяне (забавяне); } void six6 () { / * ето данните за знаците * / / * сега ги показват шест по шест с малко закъснение * / lc.setRow (0, 0, шест [0]); lc.setRow (0, 1, шест [1]); lc.setRow (0, 2, шест [2]); lc.setRow (0, 3, шест [3]); lc.setRow (0, 4, шест [4]); lc.setRow (0, 5, шест [5]); lc.setRow (0, 6, шест [6]); lc.setRow (0, 7, шест [7]); забавяне (забавяне); }

void loop () {int x; if (analogRead (A4) == 1000) {x = случаен (1, 6); } превключвател (x) {случай 1: one1 (); прекъсване; случай 2: two2 (); прекъсване; случай 3: три3 (); прекъсване; случай 4: four4 (); прекъсване; случай 5: five5 (); прекъсване; случай 6: six6 (); почивка;}}

Стъпка 4: Харесайте Споделяне

Абонирайте се за нас в YouTube -

Харесайте ни във Facebook -

Посетете -

Препоръчано: