Зачем нужен подтягивающий резистор

В курсе цифровой электроники можно встретить понятие "подтягивающий резистор" обычно он применяется во входных цепях микроконтроллеров или у логических микросхем. Их смысл использования заложен в определении логического уровня. Так как логический уровень характеризуется некоторым диапазоном напряжений. Между логическими уровнями идет зона неопределенности. Свободный вход микроконтроллера может, под воздействием различных внешних и внутренних помех оказаться в непредсказуемом состоянии. Так напряжение вызванное помехой может быть понято как "1" или "0", или попасть в зону неопределенности. Подобное может создать сбои в работе схемы. Поэтому неиспользуемые входы микросхем необходимо подключать с помощью сопротивлений к минусу или плюсу источника питания, или "подтягивать" их.

В зарубежных источниках их называют pull-up (стягивающий резистор) или pull-down (подтягивающий резистор) сопротивлениями.

Такое сопротивление как-бы "подтягивает" потенциал вывода до потенциала питания или корпуса. При этом, кроме функции фиксации потенциала, подтягивающий резистор дает возможность использовать вывод микросхемы по своему прямому назначению.

Принцип работы подтягивающего резистора

Следует выбирать подтягивающий резистор таким образом, чтобы протекающий через него ток был очень низкий. Такой ток принято нызывать слабым сигналом. И если вывод микроконтроллера будет "подтянут" с помощью сопротивления, а затем на него подать полезный (сильный) сигнал, то соотношение между мощностями будет велико, и слабый сигнал будет полностью не виден на фоне сильного. Т.е. на вывод микросборки через подтягивающий резистор поступают оба сигнала, но главную роль играет только сильный сигнал.

Таким простым способом решается задача защиты цифровой микросхем и микроконтроллеров от случайных срабатываний. Точнее можно сказать, что эти сопротивления чётко задают или определяют логический уровень на высокоомных входах цифровых микросхем.

Подтягивающий и стягивающий резистор в Arduino

Стягивающие и подтягивающие резисторы применяются в модулях Ардуино со входными контактами логических компонентов, которым важен только один факт: поступает ноль вольт (логический ноль) или не ноль (логическая единица). Подтягивающие резисторы здесь нужны, чтобы не оставить вход Arduino в «подвешенном» состоянии. Рассмотрим такую схему подключения подтягивающего резистора.

Нам надо, чтобы когда кнопка не нажата, вход платы фиксировал полное отсутствие напряжения. Но в данном примере выше вход находится в «никаком» состоянии. Он может срабатать и нет, случайным образом. Причина тому различные шумы, образующиеся вокруг провода и действуют как антенны и генерирующие небольшой потенциал из электромагнитных волн. Чтобы полностью гарантировать отсутствие напряжения при разомкнутой схеме, рядом с входом Arduino необходимо добавить стягивающий резистор, как на схеме ниже.

Теперь наведенный ток будет утекать через стягивающий компонент в землю. Для стягивания применяются радио элементы больших сопротивлений (10 кОм и выше). В моменты, когда схема замкнута, большое сопротивление не дает основной части тока попасть на землю: сигнал следует к входному контакту Ардуино. Если бы сопротивление было низким (единицы Ом), при замкнутой цепи случилось бы короткое замыкание.

Аналогичным образом, подтягивающий резистор удерживает сигнальный вход в состоянии логической единицы, пока внешняя цепь находится в разомкнутом состоянии:

Также применяются подтягивающие резисторы больших номиналов (10 кОм и выше), чтобы минимизировать потери энергии при замкнутойсхеме и исключить короткое замыкание при разомкнутой цепи.