Что делать если вам нужно поиграть в настольную игру, требующую игральную кость, а под рукой только Arduino? Не страшно, вы сможете сделать свой собственный кубик менее чем за 15 минут! Вам просто нужно немного терпение и Arduino.
Шаг 1: Необходимые детали
Теперь давайте остановимся на том что нам пригодится для создания аналога игрального кубика на нашем Ардуино.
- 16 проводов перемычек
- Кнопка
- Arduino
- Макетная плата
- Кабель USB
- 6 светодиодов (цвет не имеет значения)
- 6 резисторов на 220 Ом
- Резистор 10 кОм
Шаг 2: Подключение кнопки
Во-первых, давайте начнем с кнопки. При каждом нажатии вы как бы «бросаете кубики» (генерируя случайное число и подсвечивая соответствующее количество светодиодов).
Возьмите кнопку и вставьте ее в макет, выберите одну из сторон. Вы увидите 2 контакта. Тот, который находится слева (вы можете поменять их), соединяется с землей (GND) Arduino (через макет) с резистором 10 кОм.
Подключите ту же строку к цифровому выходу 13 Arduino (определенному в коде, можно изменить). Разъем (пин) в левой части кнопки подключается к питанию 5 В. Вы можете использовать приведенное выше изображение для примера.
Шаг 3: Подключение светодиодов
Вы уже вставили светодиоды в макет. Если нет, теперь это идеальный момент. Мы не знаем как вы будете позиционировать их, но в основном, следуйте общему правилу - все 6 катодов должны быть соединены вместе, а затем заземлены (GND). Смотрите фотографии выше, если у вас возникли проблемы.
Теперь нам нужно подключить аноды. Позвольте объяснить вам: вам нужно подключить другой провод каждого светодиода к соответствующему цифровому выходу Arduino, каждый из которых использует резистор 220 Ом! Перенаправляем другие концы резисторов на несколько пустых строк макета, которые затем подключаются к контактам с помощью перемычек.
Мы начали соединять их с левого нижнего уровня, чтобы привести к выводу 2, затем - к выводу 4, справа - к выводу 6 и над указанной строкой, начиная справа налево.
Шаг 4: Код для Arduino
Подключите шину питания макета к вашему Arduino.
Затем подключите плату и загрузите код:
// Arduino LED Dice // Made by Aleksandar Tsvetkov // Using button debouncing logic from the Internet! // Available on Instructables, just search it :) const int pins[6] = {2, 4, 6, 8, 10, 12}; int buttonPin = 13, buttonStatus, randNum, lastNum, i, lastDebounceTime, debounceDelay = 150; void draw(int randN); void setup() { for (i = 0; i <= 5; i++) { pinMode(pins[i], OUTPUT); } pinMode(buttonPin, INPUT); } void loop() { buttonStatus = digitalRead(buttonPin); if (buttonStatus == HIGH && (millis() - lastDebounceTime) > debounceDelay) { do { randNum = random(1, 6); } while (lastNum == randNum); draw(randNum); lastDebounceTime = millis(); lastNum = randNum; } delay(100); } void draw(int randN) { for (i = 0; i <= 5; i++) { digitalWrite(pins[i], LOW); } for (i = 0; i <= randN; i++) { digitalWrite(pins[i], HIGH); } }
Шаг 5: Итоговый результат
Имейте в виду, ничто в мире, в котором мы живем, не случайно. Даже «случайные» числа. Таким образом, получение одинаковых номеров подряд очень вероятно. Мы пробовали исправить это в коде, но он не может быть идеальным. Ждем ваших корректировок и пожеланий в комментариях.