Оглавление:

Arduino Dice для настольных игр: 4 шага
Arduino Dice для настольных игр: 4 шага

Видео: Arduino Dice для настольных игр: 4 шага

Видео: Arduino Dice для настольных игр: 4 шага
Видео: Электронные кубики для настольных игр — Arduino проекты для начинающих 2024, Июль
Anonim

Подписаться Еще от автора:

Электронные кости с UTSOURCE
Электронные кости с UTSOURCE
Электронные кости с UTSOURCE
Электронные кости с UTSOURCE
Реле уровня воды с использованием D882
Реле уровня воды с использованием D882
Реле уровня воды с использованием D882
Реле уровня воды с использованием D882
Окружающие часы реального времени
Окружающие часы реального времени
Окружающие часы реального времени
Окружающие часы реального времени

About: 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, one [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]); delay (время задержки); } void two2 () {/ * вот данные для символов * / / * теперь отображают их один за другим с небольшой задержкой * / lc.setRow (0, 0, two [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]); delay (время задержки); } void three3 () {/ * вот данные для символов * / / * теперь отображают их один за другим с небольшой задержкой * / lc.setRow (0, 0, three [0]); lc.setRow (0, 1, три [1]); lc.setRow (0, 2, three [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, three [7]); delay (время задержки); } void four4 () {/ * вот данные для символов * / / * теперь отображаются четыре на четыре с небольшой задержкой * / lc.setRow (0, 0, four [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]); delay (время задержки); } void five5 () {/ * вот данные для символов * / / * теперь отображаются пять на пять с небольшой задержкой * / lc.setRow (0, 0, five [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]);

delay (время задержки); } void six6 () {/ * вот данные для символов * / / * теперь отображаются шесть на шесть с небольшой задержкой * / lc.setRow (0, 0, six [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]); delay (время задержки); }

void loop () {int x; если (analogRead (A4) == 1000) {х = случайный (1, 6); } switch (x) {case 1: one1 (); перерыв; case 2: two2 (); перерыв; case 3: three3 (); перерыв; case 4: four4 (); перерыв; case 5: five5 (); перерыв; case 6: six6 (); перерыв;} }

Шаг 4: Нравится Поделиться

Подпишитесь на нас на YouTube -

Поставьте нам лайк на Facebook -

Посетите -

Рекомендуемые: