Дребезг контактов часто задает ложное срабатывание множества устройств (таймеры, реле и т.д.). Значит с этой проблемой необходимо научится бороться различными схематическими дополнениями.
Итак, можем ли мы устранить дребезг контактов переключателя или кнопки, используя триггер? И поскольку некоторые микросхемы в серии 74НСхх могут иметь в своем составе триггер, можем ли мы его использовать?
Ответы будут «да» и «да», хотя это не так-то легко сделать, как кажется.
Вам понадобятся:
- Логическая микросхема 74НС02, содержащая 4 двухвходовых логических элемента ИЛИ-НЕ. Логическая микросхема 74НС00, содержащая 4 двухвходовых логических элемента И-НЕ. Количество — по 1 шт. каждой микросхемы.
- Однополюсный двухпозиционный переключатель. Количество — 1 шт.
- Светодиоды с низким потреблением тока. Количество — 2 шт.
- Резисторы с сопротивлением 10 кОм и 1 кОм. Количество — по 2 шт. каждого номинала.
Выполните монтаж компонентов на вашей макетной плате в соответствии со схемой, которая показана на рис. 1. Когда вы подаете напряжение питания (с помощью стабилизированного источника питания напряжением 5 В), должен загореться один из светодиодов.
Теперь я хочу сделать нечто странное. Пожалуйста, отсоедините однополюсный двухпозиционный переключатель, отделив провод, который подключает плюс источника питания к полюсу переключателя, а также вытяните конец провода из макетной платы. Когда вы сделаете это, то будете немного удивлены, что светодиод останется гореть.
Вставьте провод обратно в макетную плату, переключите переключатель и первый светодиод должен погаснуть, в то время как загорится другой. Теперь опять извлеките провод, и светодиод будет продолжать гореть.
Далее следуют вопросы, которые предназначены для самостоятельной проработки.
- Триггер требует только начальный импульс.
- После этого триггер игнорирует состояния на входе.
Как это работает
Два логических элемента ИЛИ-НЕ или два элемента И-НЕ могут функционировать в режиме триггера.
- Используйте элементы ИЛИ-НЕ, когда у вас на полюс переключателя поступает сигнал высокого логического уровня.
- Используйте элемент И-НЕ, когда у вас на полюс переключателя поступает сигнал низкого логического уровня.
В любом случае вы должны использовать двухпозиционный переключатель.
Я уже упоминал двухпозиционный переключатель три раза (на самом деле четыре раза, если учесть и это предложение!), поскольку по какой-то странной причине большинство книг, которые относятся к введению в область электроники, забывают осветить этот момент. Когда я начинал изучать электронику, я чуть не сошел с ума пытаясь понять каким образом два логических элемента ИЛИ-НЕ или И-НЕ могли бы устранить дребезг контактов простой однополюсной двухпозиционной кнопки — до тех пор, пока не понял, что этого они не могут. Причина заключается в том, что когда в схему подается напряжение питания, элементам ИЛИ-НЕ (или И-НЕ) нужно указать каково должно быть их начальное состояние. Они требуют исходной определенности, которая задается переключателем, который, в свою очередь, может быть в одном или в другом состоянии. Поэтому переключатель должен быть двухпозиционным.
Я применил другую упрощенную многошаговую схему, рис. 2, чтобы показать изменения, которые происходят в двух элементах ИЛИ-НЕ, когда переключатель переключают то в одно, то в другое положение. Чтобы освежить вашу память, я добавил таблицу истинности, где показаны выходные сигналы элемента ИЛИ-НЕ для каждой комбинации сигналов на входах.
Предположим, что переключатель установлен в левое по схеме положение. В этом случае он передает сигнал высокого уровня на левую часть схемы, подавляя низкий логический уровень сигнала, формируемого с помощью подтягивающего резистора. Поэтому мы можем быть уверены, что на вход левого элемента ИЛИ-НЕ поступает хотя бы один сигнал высокого логического уровня. Поскольку любой сигнал высокого логического уровня на входе элемента ИЛИ-НЕ будет заставлять его выдавать на выходе сигнал низкого уровня (что следует из таблицы истинности), который, согласно схеме, передается на вход правого элемента ИЛИ-НЕ. Таким образом, в данном случае на входах элемента будут уже два сигнала низкого логического уровня, что приведет к формированию на его выходе сигнала высокого уровня. Этот сигнал поступает на вход левого элемента ИЛИ-НЕ. Таким образом, такая конфигурация элементов всегда стабильна.
Теперь перейдем к следующему, более «заумному» варианту схемы. Предположим, что подвижный контакт переключателя переместили таким образом, что полюс переключателя не соединяется ни с одним из его контактов. (Или можно предположить, что контакты переключателя находятся в состоянии «дребезга» и нет хорошего качества контакта, или же, что мы полностью отсоединили переключатель). В отсутствие высокого логического уровня сигнала на левом входе левого логического элемента ИЛИ-НЕ сигнал на его входе перейдет с высокого уровня на низкий, поскольку его будет задавать подтягивающий резистор, соединенный с общим выводом источника питания. Но правом входе этого элемента будет все еще высокий логический уровень, а этого вполне достаточно для продолжения формирования на выходе левого элемента ИЛИ-НЕ сигнала низкого логического уровня — таким образом, в состоянии схемы никаких изменений не произошло. Другими словами, схема осталась в предыдущем состоянии (она его «помнит»).
Если же теперь переключатель перевести в крайнее правое положение, т. е. подать высокий логический уровень сигнала (плюс источника питания) на правый вход правого по схеме элемента ИЛИ-НЕ, то этот элемент очень быстро распознает, что теперь на одном его входе присутствует сигнал высокого логического уровня, а поэтому он изменит свой выходной сигнал с высокого на низкий логический уровень. Этот же сигнал поступит на вход другого левого элемента ИЛИ-НЕ, который теперь будет иметь уже два входных сигнала низкого уровня, поэтому на его выходе появится сигнал высокого уровня, который вернется обратно на вход правого элемента ИЛИ-НЕ.
Таким образом, выходные сигналы двух логических элементов ИЛИ-НЕ поменялись местами. Эти состояния сначала изменились, а потом остались без изменения, даже после того как у подвижного контакта переключателя разрывается контакт. Вторая группа схем на рис. 3 показывает, как работает похожая схема, выполненная на двух элементах И-НЕ и при подаче на полюс переключателя сигнала низкого логического уровня. Для проверки схемы вы можете воспользоваться микросхемой 74НС00, которая приведена в списке необходимых покупок для данного эксперимента.
Оба варианта схем являются примерами триггеров (англ. flip-flop), которые остаются в переключенном состоянии; они так называются именно потому, что под воздействием входных сигналов способны мгновенно переключаться и оставаться в новом состоянии (помнить его). Вы можете использовать эти схемы каждый раз, когда вам необходимо устранить дребезг контактов переключателя (в том случае, если это двухпозиционный переключатель).
Более сложная версия триггера — это триггер с синхронизирующим (тактовым) входом, для работы с которым сначала требуется задать определенные сигналы на каждом его входе, а затем, для изменения состояния триггера, нужно подать на соответствующий вход синхронизирующий (тактовый) импульс. Импульс должен быть четким и определенным, что означает, что если вы подаете его от переключателя, то для этого предварительно необходимо устранить дребезг его контактов, возможно за счет использования другого триггера!
Что нужно, если у вас возникла необходимость устранить дребезг контактов у обычной кнопки или переключателя? Хорошо, допустим у вас есть проблема! Одно из решений это приобрести специальную микросхему, например, 4490, которая называется «ликвидатором дребезга» и содержит цифровую схему подавления. Специальный номер детали это MC14490PG от компании Semiconductor. Он содержит шесть схем для шести раздельных входов, каждая из которых содержит внутренний нагрузочный резистор. Это достаточно дорого, — более чем в 10 раз по сравнению с ценой микросхемы 74HC02, которая содержит элементы ИЛИ-НЕ. На самом деле это можно сделать проще, используя двухпозиционные переключатели, у которых можно легко устранить дребезг контактов так, как это было описано ранее.