Эксперимент 23. Переключение и дребезг контактов
В трех предыдущих экспериментах таймеры 555 функционировали как триггеры. Пришло время познакомиться с «реальными» триггерами и объяснить их устройство. Я также покажу, как они справляются с феноменом, о котором было кратко упомянуто в предыдущем эксперименте, — с дребезгом контактов переключателя.
Когда переключатель переводят из одного положения в другое, его контакты очень быстро вибрируют. Это дребезг, о котором я говорил, и он может стать источником проблем в схемах, где цифровые компоненты реагируют настолько быстро, что они интерпретируют любое небольшое колебание как отдельный входной сигнал. Если, например, вы подключите кнопку ко входу микросхемы счетчика, то после одного нажатия кнопки он может зарегистрировать десять и более импульсов. Пример реального дребезга переключателя показан на рис. 4.123.
Существует много способов устранения дребезга контактов, но основным является использование триггера.
Что вам понадобится
• Макетная плата, монтажный провод, кусачки, инструмент для зачистки проводов, мультиметр
• Источник питания на 9 В (батарея или сетевой адаптер)
• Логическая микросхема 74НС02 (1 шт.), логическая микросхема 74НС00 (1 шт.)
• Однополюсные ползунковые переключатели на два направления (2 шт.)
• Слаботочные светодиоды (3 шт.)
• Резисторы с номиналами 680 Ом (2 шт.), 10 кОм (2 шт.) и 2,2 кОм (1 шт.)
• Конденсаторы емкостью 0,1 мкФ (1 шт.) и 0,33 мкФ (1 шт.)
• Стабилизатор напряжения LM7805 (1 шт.)
Рис. 4.123. Колебания, созданные вибрацией контактов при замыкании переключателя (Взято из технического паспорта корпорации Maxim Integrated.)
Соберите компоненты на макетной плате, как показано на рис. 4.124. Электрическая схема этой установки приведена на рис. 4.125, а расположение и номиналы компонентов — на рис. 4.126. Когда вы подадите питание, один из светодиодов, размещенных в нижней части платы, должен включиться.
Рис. 4.124. Макет триггера на элементах ИЯИ-НЕ
Рис. 4.125. Схема триггера на элементах ИЛИ-НЕ
Рис. 4.126. Расположение и номиналы компонентов для триггера на основе элементов ИЛИ-НЕ
Теперь мне хотелось бы, чтобы вы сделали нечто странное. Пожалуйста, отключите провод, обозначенный буквой А на рис. 4.124. Просто выньте перемычку из платы. Если вы сверитесь со схемой на рис. 4.125, то увидите, что вы отключили питание от подвижного контакта переключателя, оставив входы двух элементов ИЛИ- НЕ соединенными только со своими стягивающими резисторами.
Возможно, вас удивит тот факт, что светодиод продолжает гореть.
Вставьте перемычку обратно в плату, переведите переключатель в противоположное положение, и первый светодиод должен погаснуть, а другой зажечься. Снова выньте перемычку, и опять- таки светодиод останется включенным.
Выводы:
• Триггеру необходим только начальный входной импульс, например, от переключателя.
• После этого он игнорирует сигналы на этом входе.
Как создать триггер
Триггер можно создать из двух логических элементов ИЛИ-НЕ или двух элементов И-НЕ. В любом случае, для проверки его функционирования вам потребуется переключатель на два направления.
Совет
Собирайте триггер на элементах ИЛИ-НЕ, если переключатель на два направления обеспечивает высокий уровень сигнала. Используйте элементы И-НЕ, если переключатель на два направления выдает низкий уровень.
Я уже трижды упомянул переключатель на два направления (на самом деле, четыре раза, если учесть и это предложение), поскольку по какой- то непонятной причине в большинстве книг для начинающих не акцентировано внимание на этом. Когда я только начинал изучать электронику, я чуть не сошел с ума, пытаясь понять, каким образом два элемента ИЛИ-HE или И-НЕ могут устранить дребезг простого однополюсного кнопочного переключателя на одно направление — пока я, наконец, не сообразил в чем здесь ошибка. Причина в том, что когда вы подаете питание в схему, элементам ИЛИ-HE (или И-НЕ) следует сообщить, в каком состоянии они должны начинать работу. Их начальное состояние зависит от того, в каком положении находится переключатель. Однополюсная кнопка на одно направление не может этого сделать, когда она не нажата. Поэтому для «чистоты эксперимента» нужен переключатель на два направления. (Теперь я упомянул его в пятый раз.)
Устранение дребезга с помощью элементов ИЛИ-НЕ
На рис. 4.127 и 4.128 последовательно показаны изменения, которые возникают в элементах ИЛИ-HE, когда переключатель переводится из одного положения в другое. Для удобства я привел также рис. 4.129, на котором показаны логические состояния на выходе элемента ИЛИ- НЕ для каждой комбинации входов (см. также рис. ЦВ-4.88).
Обратимся вначале к рис. 4.127. На первом шаге переключатель подает положительный потенциал на левый логический элемент, преодолевая отрицательное смещение от стягивающего резистора, и таким образом мы можем быть уверены, что на одном входе элемента ИЛИ-НЕ слева присутствует высокий логический уровень. Поскольку высокий уровень на любом входе будет приводить к появлению низкого уровня на выходе элемента ИЛИ-НЕ (как показано на рис. 4.129), то этот низкий уровень будет передаваться на вход элемента ИЛИ-НЕ справа. Оба входа этого элемента окажутся в низком состоянии, следовательно, уровень на выходе будет высоким. Этот сигнал подан на вход элемента ИЛИ-НЕ слева. Таким образом, состояние устройства остается стабильным.
Теперь перейдем к более сложной ситуации. Предположим, что на втором шаге вы передвинули переключатель так, что он не касается своих контактов (как показано на рис. 4.127 справа).
Рис. 4.127. Когда переключатель переводится в нейтральное положение, состояние элементов ИЛИ-НЕ остается неизменным
Рис. 4.128. После того как состояния элементов ИЛИ-НЕ поменяются на противоположные, они останутся такими, когда переключатель вернется в нейтральное положение
Или предположим, что хороший контакт отсутствует вследствие дребезга переключателя. Или допустим, что вы отключили переключатель полностью. При отсутствии контакта уровень сигнала на левом входе левого элемента ИЛИ- НЕ под действием стягивающего резистора сменяется с высокого на низкий. Но на правом входе этого элемента остается высокий потенциал, а одного положительного входа достаточно для того, чтобы на выходе элемента ИЛИ-HE сохранялся низкий уровень. Таким образом, ничего не меняется. Другими словами, устройство фиксируется в таком состоянии, независимо от того, был ли отключен переключатель.
Обратимся к рис. 4.128. Если переключатель переведен вправо и подает положительное напряжение на правый вывод правого элемента ИЛИ-HE, этот элемент распознает, что сейчас у него высокий логический входной сигнал, и поэтому он меняет свой логический выход на низкий. Этот сигнал передается на другой элемент ИЛИ-HE, у которого теперь оба входа с низким уровнем, поэтому его выход переходит в высокое состояние и этот уровень поступает на правый элемент ИЛИ-НЕ.
Рис. 4.129. Таблица истинности для элемента ИЛИ-НЕ
Таким образом, выходные состояния двух элементов ИЛИ-HE меняются местами. Они переключаются, а затем фиксируются, даже если контакт переключателя размыкается, как показано на четвертом шаге.
Если дребезг переключателя настолько сильный, что подвижный контакт постоянно колеблется между одним контактом и другим, то такая схема работать не будет. Она действует только в том случае, если подвижный контакт замыкается с одним из неподвижных, или если соединение полностью разрывается. Сказанное верно для однополюсного переключателя на два направления.
Устранение дребезга с помощью элементов И-НЕ
На схемах, изображенных на рис. 4.130 и 4.131, показана аналогичная последовательность событий, если переключатель соединяет входы двух элементов И-НЕ с отрицательной шиной. Чтобы освежить знания о поведении элемента И-НЕ, я добавил рис. 4.132 (см. рис. 4.87).
Если вы пожелаете проверить работу схемы с элементами И-НЕ самостоятельно, можно использовать микросхему 74НС00, указанную в перечне компонентов для этого эксперимента. Будьте, однако, внимательны: соединение элементов ИЛИ-НЕ и И-НЕ внутри микросхем различно. Вам придется изменить некоторые перемычки на макетной плате, поскольку данные микросхемы имеют разную цоколевку и не взаимозаменяемы. Для уточнения смотрите рис. 4.81 и 4.91.
Асинхронный и синхронный режимы
Схемы с элементами ИЛИ-НЕ и И-НЕ являются примерами асинхронного триггера, названного так потому, что он реагирует на мгновенное состояние переключателя и фиксируется в одном из состояний. Вы можете использовать эту схему каждый раз, когда вам надо устранить дребезг переключателя (при условии, что это переключатель на два направления).
Рис. 4.130. Два элемента И-НЕ действуют как триггер при наличии подтягивающих резисторов и переключателя, обеспечивающего низкий уровень
Рис. 4.131. Состояния элементов остаются неизменными, когда переключатель отключается от любого из них
Рис. 4.132. Таблица истинности для элемента И-НЕ
Более сложная версия — тактируемый (синхронный) триггер, который требует, чтобы вначале были заданы состояния каждого входа, а затем подан тактовый импульс, вызывающий переключение триггера. Тактовый импульс должен быть четким и точным; это означает, что если вы подаете его через переключатель, то нужно устранить его дребезг (возможно, с помощью другого триггера асинхронного типа). Учитывая эти обстоятельства, я неохотно согласился на использование тактируемых триггеров в этой книге. Они, на мой взгляд, слишком сложны для начинающих. Если вы желаете узнать о триггерах подробнее, то более детально они описаны в книге «Электроника. Логические микросхемы, усилители и датчики для начинающих» Ч. Платта. Это непростая тема.
А что если вам необходимо устранить дребезг переключателя или кнопки на одно направление? Да, это действительно проблема! Одно из решений — купить специальную микросхему, например серии 4490 («схема для устранения дребезга»), которая содержит цифровую линию задержки. Микросхема МС14490 компании On Semiconductor, например, содержит шесть цепей для шести отдельных входов, каждый с внутренним подтягивающим резистором. Однако это довольно дорогой компонент: более чем в десять раз дороже микросхемы 74НС02, содержащей элементы ИЛИ-HE. Вообще говоря, вы серьезно облегчите себе жизнь, если будете избегать переключателей на одно направление и применять переключатели (или кнопки) на два направления, у которых проще устранить дребезг.
Можно также воспользоваться таймером 555, работающим в режиме триггера. Мое предпочтение этого варианта теперь выглядит более логичным.