Главная » Микроконтроллеры
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Экономичные игральные кости на PIC12F629

Эта поделка реализует электронную версию двух стандартных игральных костей с помощью 14 светодиодов, образующих при свечении аналог двух игральных костей и микроконтроллере PIC12F629. Как и в обычных не электронных костях, например, для игры в "нарды", выдаются два случайных и независимых значения от 1 до 6 одновременно. Расположение светодиодов стилизовано под стандартные кости.

При нажатии на кнопку, в течении 3 сек. выдается очередная комбинация, потом светодиоды гаснут до следующего нажатия кнопки. Если кнопка не нажата в течении 15 секунд, прибор переходит в спящий режим с током потребления не более 1 мкА по тестеру. При последующем нажатии на кнопку, работа устройства продолжается в обычном режиме. У прибора нет выключателя питания, он всегда готов к применению и включается сразу при нажатии кнопки. Простой расчет показывает, что при питании от трех дешевых солевых батареек, заряда хватит на 10000 "бросаний" костей (средний ток при свечении светодиодов - 15 мА). А в спящем режиме он может находиться годы...

В силу ограниченного числа выводов, применена динамическая индикация - каждая "кость" зажигается в течении 10 мс попеременно с другой. Каждая "кость" состоит из светодиодов, собранных в три группы (1, 2 и 4 светодиода), комбинацией свечения которых получаются все шесть значений. Одноименные группы соединены вместе и подключены к портам GP0 - GP2 микроконтроллера через токоограничительные резисторы R2-R4. Все светодиоды, кроме D4 и D11, включены попарно последовательно. В цепи D4, D11 (здесь не два последовательных, а один светодиод в группе) для выравнивания яркости свечения разных групп при напряжении питания 3.5 - 4.7 В, введены диоды VD1 и VD2. С той же целью сопротивление резистора R2 уменьшена в два раза (в группе две параллельных цепочки светодиодов). Объединенные катоды светодиодов, образующих каждую "кость", подключены соответственно к портам GP4 и GP5. Частота динамической индикации - 50 Гц. Кнопка S1 подключена к входу GP3, сконфигурированному как обычный вход.

Случайность выдаваемых значений обеспечивается следующим образом. Таймер TMR1 тактируется частотой 1 Мгц, а значит переполняется раз в 0.065 сек. При нажатии кнопки, фиксируется состояние таймера и оно абсолютно случайно из-за субъективного характера периодичности нажатия кнопки. Значение одной "кости" вычисляется из младшего байта таймера, а другой - из старшего.

Прибор питается от трех элементов АА, напряжением 4.5 В. Свечение светодиодов остается достаточно ярким до напряжения батареи в 3.5 В. Из-за дороговизны и дефицитности стабилизаторов с собственным потреблением в единицы микроампер, было решено применить непосредственное подключение прибора к батарее питания. Это приводит к некоторому снижению яркости в конце срока ее службы, но позволяет получить сверхнизкое потребление тока в режиме ожидания.

Прибор собран на печатной плате размерами 50мм на 60мм.

Светодиоды применены диаметром 3 мм, так как они визуально ярче и больше похожи на точки игральных костей. VD1, VD2 типа КД521. На плате предусмотрено место для непосредственного впаивания тактовой кнопки. В случае применения выносной кнопки, она подключается к плате двумя отрезками проводов.

Исходный код написан и откомпилирован в среде MikroC. Исходный код, прошивка, проект Proteus и чертеж платы в формате LAY приведены во вложении.

P.S. Всякие моргания на видео - результат биений частот камеры и ДИ. В реале все стабильно.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 МК PIC 8-бит
PIC12F629
1 Поиск в FivelВ блокнот
VD1, VD2 Диод
КД521Д
2 КД522Поиск в FivelВ блокнот
D1-D14 СветодиодКрасный 3мм14 Поиск в FivelВ блокнот
R1 Резистор
10 кОм
1 0.125ВтПоиск в FivelВ блокнот
R2 Резистор
100 Ом
1 Поиск в FivelВ блокнот
R3 Резистор
200 Ом
1 Поиск в FivelВ блокнот
R4 Резистор
220 Ом
1 Поиск в FivelВ блокнот
C1 Электролитический конденсатор47мкФ 10В1 Поиск в FivelВ блокнот
S1 КнопкаKAN-06111 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (8) | Я собрал (0) | Подписаться

0
RGB #
Понравился подход реализации RND - довольно классно.
Ответить
0

[Автор]
arhimed #
Спасибо. Правда, при получении из случайного числа от 0 до 255 искомого числа от 1 до 6 ((X%6)+1) возникает такой нюанс, что 5 и 6 выпадают примерно на 2.5% реже, чем остальные числа (на 42 выпадания 5 и 6 , остальные числа выпадут в среднем 43 раза). Но все равно, я думаю, такой метод гораздо лучше чем псевдослучайная последовательность.
Отредактирован 01.03.2015 13:46
Ответить
0
Андрей #
Схему собрал, автору спасибо... Платку под один кубик нарисовал попробую как оно
Ответить
0
Константин #
При первом нажатии на одном "кубике" всегда высвечивается единица, на втором числа случайные. Потом на нём выпадают разные цифры. Но если прошло 15 сек то при нажатии на кнопку на этом кубике опять единица. Можно ли это исправить в прошивке (сделать время засыпания более 15 сек). Например 5 минут. Самому сделать прошивку в микро Си по исходнику не получилось (не хватает данных, которые надо ввести в пункте Edit Project).
Прикрепленный файл: Настройки проекта.png
Ответить
0

[Автор]
arhimed #
Вот. Все исправил. Не случайних значений нет и засыпает через 10 мин. Бонус - проверка светодиодов при первом включении пока нажата кнопка.
Прикрепленный файл: ZARIK_pic629.rar
Ответить
0
Константин #
Спасибо! Свечение светодиодов вполне устраивает. Я применяю АЛ307 красного свечения. Залил новую прошивку. Тестирую. Пока не пойму: хорошо это или плохо: засвечивание всех светодиодов при первом запуске. А если засвечивание убрать, то опять при первом запуске (или после 10 минут простоя) будут проблемы со "случайностью"?
Ответить
0

[Автор]
arhimed #
Нет. Проблем не будет. Просто счел это полезным. Вы можете эту часть кода ( при этом цикл ожидания отжатия кнопки будет пустым) просто удалить. Если нажать "edit progect" в ранее приложенном проекте до каких-то изменений, все настройки должны быть правильные. Удачи!
Ответить
0

[Автор]
arhimed #
Для более равномерного свечения vd1, vd2 лучше заменить одним светодиодом такого же типа, что и остальные, но покрытым черной краской.
Отредактирован 08.01.2017 11:07
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Ветрогенератор 200 Вт усилитель класса D на IRS2092
вверх