Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Игрушки

Генератор Случайных Чисел для проведения лотерей

Автор: Ермаков Алексей
Опубликовано 27.08.2015.
Создано при помощи КотоРед.

Генератор Случайных Чисел для проведения лотерей и розыгрышей призов.

          На работе мы каждую неделю разыгрываем ценный приз, (не спрашивайте, что за работа и что за приз, к данной статье это отношение не имеет). Среди нескольких претендентов надо выбрать одного, который и получит приз. Начинали с простого варианта, тянуть бумажки, спички, шарики от настольного тенниса, но всё это выглядело как-то не солидно. Потом стали возникать вопросы о счастливой и не счастливой руке, одинаковости бумажек и спичек, в общем, в хорошую идею конкурса попадала ложка дегтя сомнений, и я решил розыгрыш приза предоставить электронике. То, что получилось, коллективу понравилось. Этот прибор можно использовать в разных конкурсах и розыгрышах, а также выяснять, кто моет сегодня посуду, идёт за ребёнком в садик, выносит мусор и.т.д.

         Источником случайных чисел выступает человек, точнее сам момент нажатия кнопки. В микроконтроллере непрерывно, с частотой 4МГц инкрементируется Timer 1, в момент нажатия кнопки  аппаратная схема захвата записывает в регистр текущее состояние Timer 1, счет таймера при этом не останавливается. Так как считывание текущего состояния Timer 1 происходит аппаратными средствами, решается проблема не одинаковых задержек при выборке и соответственно неравномерности получаемого вероятностного распределения.

         В программе реализовано два режима работы с одной и тремя выборками. Режим с одной выборкой интуитивно понятен, жмёшь кнопку во время бегущей двухцветной змейки по индикатору, получаешь случайное число  от 1 до 64 отображаемое красным цветом. Режим с тремя выборками был придуман для того, чтобы сделать розыгрыш ещё азартнее. Претенденту на приз необходимо три раза нажать на кнопку во время бегущей двухцветной змейки, цифра текущей выборки (от 1 до 32) отображается зелёным цветом, также зелёной точкой отображается номер выборки. Правая точка – сделана первая выборка, левая – вторая, обе – третья.  После отображения цифры полученной в третьей выборке, красным цветом отображается сумма трёх выборок. Побеждает тот, у кого сумма цифр больше. Во время каждого нажатия кнопки градус эмоций повышается.  Почему число выборок в режиме с одной выборкой сделано от 1 до 64, потому что аппаратный режим захвата есть только у Timer 1, но в режиме захвата этот таймер  считает до переполнения т.е. до 65535 . Чтобы не делать программное увеличение разрядности таймера до 64, а потом не вычислять остаток от деления на 100, я принял решение считать от 1 до 64, тогда никаких дополнительных мер предпринимать не надо, достаточно наложить маску 0x3F на младший байт регистра захвата и прибавить единичку. В режиме с тремя выборками счёт идет от 1 до 32, соответственно маска накладывается 0x1F. В этом случае сумма трёх цифр при выпадении каждый раз цифры 32 получается 96, и не выходит за рамки 2-х разрядов.

         Осталось добавить, что переключение между режимами происходит, если при включении питания кнопку  удерживать нажатой. Режим с одной выборкой отображается одной зажженной   точкой, режим с тремя выборками – двумя зажженными точками. Как только отпустите кнопку, по экрану побежит двухцветная змейка, можно начинать розыгрыш. Выбранный режим сохраняется в EEPROM и устройство при следующем включении, будет работать в выбранном режиме.

На этом рисунке изображена схема устройства.

         В приборе использован двухцветный светодиодный индикатор большого размера с общим анодом, информация выводиться на него в режиме динамической индикации. Сегменты индикатора управляются микросхемой TPIC6B595. Она представляет из себя сдвиговый регистр с памятью 74HC595 с выходами на высоковольтных полевых транзисторах с открытым стоком, в случае её отсутствия, её можно заменить на микросхему 74HC595 установив на выходе ключи на полевых или биполярных транзисторах.  Питать устройство можно от любого 5V источника питания с максимальным  током 1А. Для питания индикатора в устройстве применена стандартная схема повышающего преобразователя на микросхеме MC33063A или  MС34063A. Индуктивность RLB0914-101KL 100uH с током насыщения 1А.

         Печатная плата и разработана в программе Eagle, при изготовлении, слой TOP разведён проводами. Плата разводилась под корпус GAINTA G1816. В качестве кнопки я использовал кнопку с датчиком Холла от древнего терминала, кнопку можно применить любого типа, подкорректировав печатную плату. Резистор R27 и конденсатор C3, в случае с механической кнопкой, устанавливать не нужно. Кнопка должна замыкать вывод 5 микроконтроллера на землю.

         И в конце, небольшое видео, что бы посмотреть как это всё работает.

      



Файлы:
Исходники +hex


Все вопросы в Форум.


ID: 2401

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

28 22 8
1
Подробно