Шрифт:
Закладка:
Можем ли мы воспользоваться этим прямо сейчас? Разумеется, поскольку все микросхемы серии 74НСхх можно легко комбинировать друг с другом. На рис. 4.140 вы видите, что я добавил элемент И. Конечно, на макетной плате вам придется добавить соответствующую микросхему – 74НС08. Она содержит четыре элемента И, из которых нам нужен только один. Поэтому, помимо подвода питания, необходимо заземлить неиспользуемые входы. Это непросто, но я покажу вам, как это сделать, после того как мы реализуем несколько дополнений и улучшений. (Неиспользуемые выходы должны остаться без подключения.)
Замечание
Изменить коэффициент пересчета счетчика можно с помощью логической микросхемы (или логической комбинации микросхем), отыскав характерную конфигурацию выходных состояний и направив сигнал обратно на вывод сброса.
Рис. 4.140. Добавлен элемент И для настройки счетчика таким образом, чтобы его цикл счета состоял лишь из шести состояний вместо обычных шестнадцати
Отказ от семисегментного дисплея
Для отображения значений игральных костей я мог бы использовать семисегментный дисплей, который считает от 1 до 6. Но здесь есть проблема, поскольку счетчик считает от 0 до 5. Я не знаю простого способа преобразовать двоичное число 000 в семисегментную цифру 1, число 001 – в цифру 2, и т. д.
Можем ли мы как-то заставить счетчик пропускать двоичное значение 000? Возможно, но я не знаю в точности, как. Наверное, применив трехвходовый элемент ИЛИ, который мог бы подавать сигнал обратно на тактовый вход для перевода счетчика на следующее значение, но тогда возник бы конфликт с обычными тактовыми сигналами. Все это выглядит как нагромождение сложностей.
В любом случае, меня не воодушевляет отображение цифр на семисегментном индикаторе в данном устройстве, поскольку это не похоже на реальный кубик. Почему бы не использовать обычные светодиоды, которые выглядят как точки на настоящем игральном кубике (рис. 4.141)?
Рис. 4.141. Последовательность расположения точек, которую предстоит воспроизвести с помощью светодиодов
Можете ли вы придумать способ преобразования двоичного выходного сигнала счетчика, чтобы светодиоды горели таким образом?
Логическая схема
Я начну с самого простого случая. Если соединить выход А счетчика (см. рис. 4.134) со светодиодом, который соответствует центральной точке в игральном кубике, то все будет работать хорошо, поскольку центральная точка зажигается только для комбинаций 1,3 и 5 и не горит для 2, 4 и 6. Именно так ведет себя выход А.
Далее все немного усложняется. Мне нужно зажечь диагональную пару точек для конфигураций 4, 5 и 6, а также другую диагональную пару для конфигураций 2, 3, 4, 5 и 6. Но как?
На рис. 4.142 показано мое решение этой задачи. Вы увидите, что я добавил еще пару логических элементов: трехвходовый ИЛИ-HE и двухвходовый ИЛИ. Рядом я показал последовательность двоичных чисел и конфигурации точек, которые создают каждое число на кубике.
Рис. 4.142. Логическая схема для имитации последовательности точек на игральном кубике
Чтобы все заработало, я должен начать с комбинации 6, когда счетчик начинает отсчет с двоичного числа 000. Последовательность состояний в действительности не имеет значения, если только представлены все варианты. В любом случае они будут выбираться в случайном порядке.
На рис. 4.143 показано, как выходы счетчика включают различные конфигурации точек. Чтобы было еще понятнее, на рис. 4.144-4.146 я изобразил высокие и низкие состояния в схеме, когда счетчик считает по возрастанию от 000 к 101. Я расположил эти иллюстрации по две в каждой колонке страницы и опустил элемент И, поскольку он не делает ничего во время счета от 000 до 101. Он реагирует только тогда, когда счетчик пытается перейти к значению 110 – в этот момент элемент И сбрасывает счетчик до 000.
Если вам интересно, как я пришел к такому выбору логических элементов для перевода выходного сигнала счетчика в конфигурации точек на гранях кубика, то я не смогу вам объяснить это в точности. Путем проб и ошибок, а также догадок на интуитивном уровне, которые сопровождают создание подобных логических схем. По крайней мере, это мой путь. Существуют более строгие и формальные способы синтеза логических схем, но они намного сложнее.
Окончательный вариант схемы
Схема на рис. 4.147 получена из логической диаграммы на рис. 4.144. Макет устройства изображен на рис. 4.148.
Номиналы компонентов показаны на рис. 4.149. Обратите внимание на то, что я заменил времязадающие резистор и конденсатор для таймера 555, так что теперь он работает на частоте 5 кГц. Идея заключается в том, что вы будете останавливать таймер в произвольный момент, после того как он выполнит несколько сотен циклов. Так будет получено случайное число.
Рис. 4.143. Состояния выходов двоичного счетчика, соответствующие разным конфигурациям точек
Рис. 4.144. Логическая схема при отображении конфигураций «6» и «1»
Рис. 4.145. Логическая схема при отображении конфигураций «2» и «3»
Рис. 4.146. Логическая схема при отображении конфигураций «4» и «5»
Рис. 4.147. Завершенная схема для имитации броска игрального кубика
Рис. 4.148. Компоновка макетной платы игрального кубика
Я добавил переключатель и конденсатор емкостью 22 мкФ, чтобы уменьшать частоту таймера (до примерно 2 Гц), если вы захотите продемонстрировать работу счетчика какому-нибудь скептику.
На рис. 4.149 опущена нижняя часть макетной платы, поскольку там находятся только микросхемы. В этом состоит преимущество создания схем, основанных на логических микросхемах: вам не нужно беспокоиться о том, куда втиснуть резисторы и конденсаторы. Микросхемы и провода выполняют основную работу.
Пронумерованные выходы в нижней части схемы на рис. 4.147 и 4.148 соответствуют входам сборки светодиодов, показанной на рис. 4.150. На макетной плате нет места для добавления светодиодов, поэтому вам понадобится вторая макетная плата, либо придется просверлить несколько отверстий, чтобы смонтировать светодиоды на куске фанеры или пластика.
Рис. 4.149. Расположение и номиналы компонентов секции управления
Шесть светодиодов соединены последовательно по два, поскольку мощности логической микросхемы недостаточно для питания параллельной пары светодиодов. При последовательном подключении понадобится резистор с меньшим номиналом. Резистор можно подобрать, подав напряжение 5 В на одну пару светодиодов через мультиметр, измеряющий силу тока в миллиамперах. Попробуйте включить последовательно резистор 220 Ом и отметьте измеренную силу тока. Если