Электронные игральные кости на Atmega8
Светодиоды и резисторы использовал красного и синего цвета SMD1206. Рандомные числа получаются непредсказуемыми, результат на практике в настольных играх порадовал!
При нажатии на кнопку “Reset” МК выходит из глубокого сна (Power-Down) по средствам прерывания, генерирует случайные независимые рандомные числа для обоих кубиках и выводит значения на панели. Через 20 секунд бездействия МК уходит в глубокий сон.
Во время бездействия можно выбрать одну из трёх настроек нажатием кнопки Setting:
- Откл./Вкл. звука с бузера по X1 нажатию кнопки с сохранением флага в EEPROM;
- Откл./Вкл. синего кубика по X2 нажатию кнопки с сохранением флага в EEPROM;
- Проверка заряда аккумулятора по X3 нажатию кнопки, один горящей LED равен 0,1V: {14 горящих LED = 4,2V(100%), 1 горящий LED = 2,9V (7%)}.
Потребление всей схемы при горящих 12 светодиодах:
- При 4,2V: 73 мА Потребление всей схемы в режиме глубокого сна:
- При 4,2V: 16 мкА
Использовал Arduino IDE ver. 1.8.19 Плата: MiniCore (Atmega8) Clock: 8 MHz internal osc. - внутренний генератор BOD: 2.7V - (напряжение отсечки по питанию на 2,7V) так как использую Li-ion аккумулятор EEPROM: Retained - что бы не стирался EEPROM после перепрошивки USBasp’ом Compiler LTO: LTO Disabled - (оптимизация кода), делает код меньше по объёму, но медленнее, отключаем. Bootloader: No bootloader - (Откл. загрузчик, он не потребуется, код будет меньше и выполняться чуточку быстрее).
После всех настроек нужно обязательно прошить загрузчик в Arduino IDE через USBasp.
P.S. Скетч “battery_Atmega8” - проверка напряжения МК (использовал для отладки). Скетч “Proverka_vsex_LED” - проверка всех LED на корректное включение методом обращения через регистры. Скетч “Double_kosti” - основной исходник для двойных электронных игральных костей на Atmega8.
Автор: Otto Версия: 1.3 Дата: 12.04.2022г.
Ссылки: На плату: https://github.com/MCUdude/MiniCore
Объяснение работы с регистрами: https://www.youtube.com/watch?v=HJH6j9JJkSM
Пробуждение при нажатии кнопки, уход в сон по таймауту: https://tsibrov.blogspot.com/2018/02/arduino-power-down.html
Описание
Электронные игральные кости на Atmega8