В приложениях управления микроконтроллерам часто приходится считывать состояние переключателей. В типичной конфигурации к обоим переключателям подключены подтягивающие резисторы, чтобы задать высокие или низкие уровни сигналов для считывания микроконтроллером. В схеме на Рисунке 1 к управляющему выходу подключены два переключателя. Когда оба переключателя разомкнуты, резисторы R1 и R2 задают на входе неопределенный уровень напряжения между низким и высоким, который при напряжении питания 5 В составляет 1.5 В. Таким образом, здесь аналоговый вход предпочтительнее цифрового. При показанных на рисунке номиналах компонентов через резисторы протекает ток 0.5 мА, даже когда оба переключателя разомкнуты. Чтобы получить общий ток, нужно умножить это значение на количество используемых входов.
![]() |
|
Рисунок 1. | В этой схеме к управляющему выходу подключены два переключателя. |
На Рисунке 2 показана альтернативная схема. В ней добавлен инвертирующий логический элемент, который изменяет полярность сигнала управляющего выхода на противоположную на входах микроконтроллера. Инвертор имеет четко определенные уровни входных порогов. Это дает возможность использовать обычные логические входы вместо аналоговых. Сопротивления резисторов можно выбрать настолько высокими, насколько позволяют входные характеристики, но при этом они должны оставаться достаточно низкими, чтобы не ухудшить помехоустойчивость. Когда оба переключателя разомкнуты, или управляющий выход находится в высокоимпедансном состоянии, ток, протекающий через резистор, представляет собой только тот ток, который поступает на вход микроконтроллера.
![]() |
|
Рисунок 2. | Инвертор изменяет полярность сигнала управляющего выхода на противоположную на входах микроконтроллера. |
На переключение состояний сигнала расходуется энергия, поэтому изменяйте состояния только при считывании переключателей. В противном случае оставляйте входы и выходы в высокоимпедансном состоянии. Если в конструкции есть кулачковые переключатели, которые никогда не замыкаются одновременно, обратиться к схеме на Рисунке 3, чтобы уменьшить количество входов, кодирующих переключатели. Возможные состояния представлены в Таблице 1 (таблице истинности).
Таблица 1. | Таблица истинности возможных состояний | ||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
![]() |
|
Рисунок 3. | Эту схему можно использовать, чтобы уменьшить количество входов, кодирующих переключатели. |
Эту схему можно расширить до любого количества переключателей и входов. С помощью трех переключателей можно считывать состояние 12 входов. Можно также смешать схемы, показанные на Рисунках 2 и 3, на одном микроконтроллере, разделив независимые переключатели (Рисунок 2) и «сцепленные» переключатели (Рисунок 3) на разных входах.