Все мы знакомы с кубиками и часто играем в игры LUDO или SANP SIDI (Змея и лестницы), используя кубики. Игральные кости представляют собой сплошную коробку типа «оруженосец», на каждой стороне которой находятся 6 различных чисел. Мы бросаем кости на поверхность, чтобы получить случайное число во время игры. В этом проекте мы попытались воспроизвести это с помощью цифровых игральных костей, используя плату arduino uno. Вместо того, чтобы бросать кости, здесь нам нужно нажать кнопку, чтобы получить случайное число от 0 до 6.
Необходимые компоненты
- Arduino UNO
- Семисегментный дисплей (общий анод)
- Нажмите на кнопки
- Соединительные провода
- Хлебная доска
- Резистор 1 кОм
- Источник питания
Принципиальная схема и объяснение
Как показано в приведенной выше схеме цифровых игральных костей, Arduino используется для управления всем процессом. В схеме используются две кнопки - одна для запуска игральных костей, а другая для сброса игральных костей. Ардуино считывает эти две кнопки и выполняет операцию. Семисегментный дисплей используется для отображения результата игры в кости.
Arduino постоянно выполняет функцию rand () и сохраняет ее значение во временной переменной. При нажатии кнопки игральных костей сохраненное значение рассчитывается и отображается на семи сегментах с помощью соответствующего метода (см. Программную часть статьи).
Здесь, в этой схеме игральных костей, общий семисегментный анодный дисплей используется для отображения номеров игральных костей, который напрямую подключен к цифровым выводам Arduino с номерами 6, 5, 4, 3, 2, 1, 0. А общий анодный вывод семи сегментов - это подключен с помощью резистора +5 В 220 Ом. Также подключены две кнопки, а именно кнопка игры в кости и кнопка сброса, которые подключены к цифровым контактам 14 (A0) и 15 (A1) относительно земли.
Код Пояснение
Программная часть этого проекта играет очень важную роль для отображения случайного числа цифровых игральных костей на семисегментном дисплее. Arduino не содержит библиотеки для семисегментного дисплея. поэтому мы создали весь код без использования какой-либо библиотеки.
Прежде всего, мы выбираем цифровой вывод для семисегментного дисплея.
int pin = {6,5,4,3,2,1,0};
После этого мы создаем массив из 6 цифр игральных костей, а именно 1, 2, 3, 4, 5 и 6.
цифра символа = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Теперь мы дали указание использовать вывод Arduino в качестве вывода.
void setup () {для (int я = 0; я <7; я ++) pinMode (контакт, ВЫХОД); pinMode (игральные кости, ВХОД); pinMode (сброс, ВХОД); digitalWrite (игральные кости, ВЫСОКИЙ); digitalWrite (сбросить, ВЫСОКИЙ);
По умолчанию мы отправляем код для отображения нуля на семисегментном дисплее.
int temp = 0x40; для (int я = 0; я <7; я ++) {int temp1 = temp & 0x01; digitalWrite (контакт, temp1); temp = temp >> 1; }
Теперь мы запускаем функцию rand (), чтобы получить случайное число.
интервал темп = ранд ();
И когда мы нажимаем кнопку игральных костей, программа сначала отображает это случайное число, а затем отправляет число на семисегментный дисплей с помощью побитового оператора.
если (digitalRead (dice) == 0) {int k = temp% 6; temp = цифра; Подождите(); для (int я = 0; я <7; я ++) {int temp1 = temp & 0x01; digitalWrite (контакт, temp1); temp = temp >> 1; } задержка (200); }
То же самое для кнопки сброса.
В этой программе мы отправляем по одному биту за раз. Здесь мы применяем цикл for, который выполняется 7 раз для отправки данных в каждый сегмент один за другим.