Шрифт:
Интервал:
Закладка:
Рис. 4.110. Триггер теперь блокирует все кнопки
Есть, однако, одно серьезное упущение: необходим переключатель сброса, который возвращает систему в исходное состояние после того, как игроки нажмут кнопки и увидят кто победил. Также мне нужен способ предотвратить преждевременное нажатие кнопки до того, как ведущий закончит задавать вопрос. Возможно, я смогу скомбинировать эти функции в одном из переключателей, который будет под управлением ведущего.
Посмотрите на рис. 4.111. В положении «Сброс» переключатель ведущего может сбросить систему и отключить питание кнопок. В положении «Игра» переключатель прекращает удерживать систему в режиме сброса и подает питание на кнопки. Я вернулся к демонстрации версии для двух игроков, чтобы сделать все как можно проще, но концепцию по-прежнему легко расширить.
Теперь я должен решить логическую проблему. В том виде, как нарисована схема, на ней все соединено вместе. Я показал направление сигналов стрелками, но пока не знаю, каким образом остановить прохождение сигнала в неправильном направлении. Если я не решу эту проблему, сигнал любого игрока будет зажигать оба светодиода. Как можно избежать этого?
Рис. 4.111. Теперь ведущий может управлять игрой
Я мог бы поставить диоды в идущие «наверх» провода, чтобы ток не мог спускаться «вниз». Но у меня есть более элегантная идея: добавить элемент ИЛИ, потому что его входы электрически отделены друг от друга. Предлагаемое решение продемонстрировано на рис. 4.112.
Базовый логический элемент ИЛИ имеет только два входа. Ограничит ли это меня в увеличении количества игроков? Нет, поскольку можно купить элемент ИЛИ с тремя, четырьмя или даже с восьмью входами. Если хотя бы на одном из них окажется высокий уровень, то и на выходе будет высокий уровень. Если игроков меньше, чем входов, вы заземляете неиспользуемые входы и игнорируете их.
Рис. 4.112. Добавление элемента ИЛИ изолирует цепь одного игрока от другого
Теперь у меня есть четкое представление о том, каким должен быть блокиратор кнопки. Я думаю, что это должен быть еще один логический элемент. Он действует так: «Если есть только один входной сигнал, от кнопки, я его пропущу. Но если будут и другие входные сигналы, я не позволю им пройти».
Прежде чем я начну выбирать логические элементы, следует решить, каким должен быть триггер с фиксацией. Можно купить готовый триггер, который включается, если получает один сигнал, и выключается, если получает другой, однако микросхемы, содержащие триггеры, имеют множество дополнительных функций, которые не нужны для такой простой схемы, как эта. Поэтому я снова собираюсь использовать таймеры 555 в бистабильном режиме. Они требуют малого количества соединений, работают очень просто и могут обеспечивать ток достаточной силы, чтобы зажечь светодиоды. Единственная проблема заключается в том, что в бистабильном режиме таймерам 555 необходим:
• низкий уровень на входе запуска, чтобы создать высокий уровень на выходе.
• низкий уровень на входе сброса, чтобы обеспечить низкий уровень на выходе.
Получается, что кнопка каждого игрока должна будет генерировать отрицательный импульс вместо положительного. Это будет удовлетворять требованиям таймеров.
Вот, наконец, упрощенная схема (рис. 4.113). Я хочу показать контакты таймеров 555 в их правильном положении, поэтому пришлось немного передвинуть компоненты, чтобы уменьшить количество пересечений проводов, но вы поймете, что логически это та же самая схема.
Мне не хватило места для добавления символов плюса и минуса, чтобы показать, в каких состояниях находятся выводы таймера, и поэтому красный кружок означает, что вывод находится в высоком состоянии, а синий означает низкое состояние. Черные кружки означают, что состояние вывода может меняться. Белые кружки означают, что состояние этих выводов не имеет значения, и они могут оставаться неподключенными.
Прежде чем вы попробуете собрать предлагаемую схему, проверьте ее работоспособность теоретически, поскольку на конечном этапе ошибок не должно возникнуть. Важный момент, который следует учесть: таймеру 555 необходим отрицательный уровень на запускающем выводе, чтобы создать положительный уровень на выходе. Это означает, что когда любой из игроков нажимает кнопку, она должна выдавать инверсный сигнал.
Это немного трудно для интуитивного понимания, поэтому я привожу четыре рисунка (рис. 4.114–4.117), демонстрирующие работу схемы.
Рис. 4.113. Предварительная логическая схема. Синие выводы таймеров находятся в низком состоянии, красные – в высоком, белые выводы не используются
На первом шаге переключатель ведущего находится в положении сброса. Низкое напряжение на выводах сброса таймеров обеспечивает низкие уровни на их выходах. Выходы соединены со светодиодами (которые выключены) и входами логического элемента ИЛИ1. Поскольку на его входах низкий уровень, то и на выходе тоже низкий уровень. Однако элементы ИЛИ2 и ИЛИ3 игнорируют этот сигнал, поскольку один вход у каждого из этих элементов находится в высоком состоянии, которое обеспечивают подтягивающие резисторы рядом с кнопками. Вспомните о том, что если любой из входов элемента ИЛИ высокий, то выход тоже высокий. А пока запускающий вход таймера, работающего в бистабильном режиме, находится под высоким потенциалом, таймер запускаться не будет. Схема находится в стабильном состоянии.
На втором шаге ведущий задал вопрос и переместил свой переключатель вправо, соединяя кнопки игроков с отрицательной шиной. Тем не менее, никто из игроков еще не ответил, поэтому подтягивающие резисторы поддерживают схему в стабильном состоянии и уровни на выходах таймеров низкие.
Рис. 4.114. Шаг 1. Состояние сброса
На третьем шаге игрок 1 нажал кнопку слева. Это посылает низкий импульс к элементу ИЛИ2. Теперь на обоих входах этого элемента присутствует низкий уровень и его выход становится низким. Этот сигнал поступает на запускающий вход таймера, находящегося слева. Но компоненты не реагируют мгновенно, и таймер еще не обработал сигнал.
На четвертом шаге, спустя несколько микросекунд, таймер сработал и выдал положительный выходной сигнал, который включает светодиод и поступает на вход элемента ИЛИ1. Теперь на входе этого элемента высокий уровень, следовательно, такой же уровень будет и на выходе. Этот сигнал поступает к входам элементов ИЛИ2 и ИЛИ3, после чего на их выходах устанавливается высокий уровень. В результате на запускающих входах обоих таймеров теперь тоже высокий потенциал. Нажатие кнопки любым из игроков теперь будет проигнорировано, поскольку на выходе элемента ИЛИ1 продолжает сохраняться высокий уровень.
Рис. 4.115. Шаг 2. Кнопки игроков активны, но ни один из них еще