Подтягивающие резисторы для чего

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Что такое подтягивающий резистор: pull-up и pull-down, расчет подтягивающего резистора

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

Резисторы являются устройствами ограничения тока, которые широко используются в электронных схемах и изделиях. Резистор – это пассивный компонент, который обеспечивает сопротивление при протекании тока через него. Сегодня существует много разных типов резисторов.

Если мы рассмотрим цифровую схему, то ее контакты всегда будут либо в состоянии логического 0, либо в состоянии логической 1. В некоторых случаях нам нужно изменить состояние с 0 на 1 или с 1 на 0. В любом случае нам нужно удерживать цифровой контакт либо в 0 и затем изменить состояние на 1, либо нам нужно удерживать его на 1, а затем изменить на 0. В обоих случаях нам нужно сделать цифровой вывод либо «высоким», либо «низким», но его нельзя оставлять плавающим.

Таким образом, в каждом случае состояние меняется, как показано ниже.

Теперь, если мы заменим значение High и Low фактическим значением напряжения, то High будет логическим уровнем 1 (скажем, 5V), а Low будет заземлением или 0 В.

Pull-up резистор используется, чтобы сделать состояние по умолчанию цифрового вывода высоким, то есть High (на изображении выше это 5 В), а Pull-Down резистор делает в точности наоборот, он делает состояние по умолчанию цифрового контакта низким, то есть Low (0 В).

Но зачем нам нужны эти резисторы, вместо этого мы могли бы подключить цифровые логические выводы непосредственно к напряжению уровня логики или к земле, как показано на рисунке ниже?

Так делать нельзя. Поскольку цифровая схема работает при слабом токе, подключение логических контактов непосредственно к напряжению питания или заземлению не является хорошим вариантом. Поскольку прямое соединение в конечном итоге увеличивает ток, как и короткое замыкание, это может привести к повреждению чувствительной логической схемы. Чтобы контролировать ток, нам нужны резисторы с понижением или повышением напряжения. Подтягивающий к питанию (pull-up) резистор позволяет контролировать поток тока от источника напряжения питания к цифровым входным контактам, а подтягивающие к земле (pull-down) резисторы могут эффективно управлять током от цифровых контактов к земле. В то же время оба резистора, повышающий и понижающий, поддерживают цифровое состояние низкого или высокого логического уровня.

Где и как использовать подтягивающие резисторы

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

Использование pull-up резистора

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

Цифровой логический входной контакт P0.5 может переключаться с логической 1 или High на логическую 0 или Low с помощью переключателя SW1. Резистор R1 действует как подтягивающий резистор. Он связан с логическим напряжением от источника питания 5В. Таким образом, когда переключатель не нажат, на контакт логического входа всегда подается напряжение по умолчанию 5 В, если контакт не закорочен на землю, то логический уровень станет низким (Low).

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

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

Использование pull-down резистора

То же самое верно и для резистора с понижением напряжения. Рассмотрим нижеследующее соединение, где показан pull-down резистор в цепи.

На изображении выше происходит прямо противоположное предыдущему варианту с pull-up резистором. Здесь мы имеем понижающий резистор R1, который связан с землей или 0В. Таким образом, вывод цифрового логического уровня P0.3 по умолчанию равен 0 до тех пор, пока не будет нажат переключатель, и вывод логического уровня не станет высоким. В этом случае небольшое количество тока протекает от источника 5 В через замкнутый переключатель и pull-down резистор, что предотвращает замыкание линии с источником 5 В.

Таким образом, для различных схем логического уровня мы можем использовать резисторы Pull-up и Pull-down. Это наиболее часто встречается в различном встроенном оборудовании, однопроводной системе протоколов, периферийных соединениях, Raspberry Pi, Arduino и прочих микроконтроллерных и микропроцессорных устройствах.

Расчет подтягивающего резистора

Теперь, когда мы знаем, как использовать подтягивающие резисторы Pull-up и Pull-down, возникает вопрос, как рассчитать номинал этих резисторов? Хотя во многих схемах цифрового логического уровня мы видим повышающие или понижающие резисторы в диапазоне от 2 кОм до 4,7 кОм. Но каково будет действительное номинальное значение?

Читайте также:  Противительный союз это что

Чтобы понять это, нам нужно знать, что такое логическое напряжение. Какое напряжение является низким логическим уровнем, а какое – высоким? Для различных логических уровней различные микроконтроллеры используют разные диапазоны напряжения для высокого логического уровня и низкого логического уровня. Если мы рассмотрим вход уровня транзисторно-транзисторной логики (TTL), ниже на графике будет показано минимальное логическое напряжение для высокого логического сигнала и максимальное логическое напряжение для обнаружения низкого логического сигнала.

Как мы видим, для логики TTL максимальное напряжение логического 0 составляет 0,8 В. Таким образом, если мы предоставим менее 0,8 В, логический уровень будет принят как 0. С другой стороны, если мы обеспечим более 2 В до максимума 5,25 В, сигнал будет распознан как высокий логический уровень. Но при напряжении от 0,8 до 2 В это пустая область, при этом напряжении нельзя гарантировать, что логика будет принята High или Low. Итак, для безопасности, в архитектуре TTL мы принимаем от 0 В до 0,8 В как низкий уровень и от 2 В до 5 В как высокие, что гарантирует, что 0 и 1 будут распознаваться логическими микросхемами при этом предельном напряжении.

Для определения значения подтягивающего резистора по формуле используется простой закон Ома:

В случае подтягивающего pull-up резистора, V будет напряжением источника. И ток будет максимальным током, потребляемым логическими линиями.

Rpull-up = (Vпит – Vвыс(min)) / Iпотр

Здесь Vпит – это напряжение питания, Vвыс(min) – это минимальное допустимое напряжение высокого логического уровня, а Iпотр – максимальный ток, потребляемый цифровым выводом.

То же самое относится и к pull-down резистору. Но формула имеет небольшое изменение.

Здесь Vниз(max) – максимальное напряжение низкого логического уровня, а Iотд – максимальный ток, отдаваемый цифровым выводом.

Источник

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

Применеие на практике

Среди ролей, которые может выполнять резистор в схеме можно выделить следующие:

Токоограничивающий резистор (current-limiting resistor)

Стягивающий, подтягивающий резистор (pull-down / pull-up resistor)

Делитель напряжения (voltage divider)

Токоограничивающий резистор

Пример, на котором рассматривался Закон Ома представляет собой также пример токоограничевающего резистора: у нас есть компонент, который расчитан на работу при определённом токе — резистор снижает силу тока до нужного уровня.

В случае с Ардуино следует ограничивать ток, поступающий с выходных контактов (output pins). Напряжение, в состоянии, когда контакт включен (high) составляет 5 В. Исходя из документации, ток не должен превышать 40 мА. Таким образом, чтобы безопасно увести ток с контакта в землю понадобится резистор номиналом R = U / I = 5 В / 0.04 А = 125 Ом или более.

Стягивающие и подтягивающие резисторы

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

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

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

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

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

Делитель напряжения

Делитель напряжения (voltage divider) используется для того, чтобы получить из исходного напряжения лишь его часть. Например, из 9 В получить 5. Он подробно описан в отдельной статье.

Видео

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

Для подключения различных устройств к Ардуино используются резисторы. Резисторы бывают внутренние и внешние, постоянные и переменные (внутренние переменные могут быть цифровыми).

Устройство

Резистор – от английского глагола «resistance» (сопротивление). Пассивный элемент, который создает препятствие для движения электрического тока. Часть тока преобразуется из электрической энергии в тепло.

Переменный резистор имеет еще один контакт, который называется ползунок. Он передвигается по резистивному слою и изменяет сопротивление между ползунком и контактами резистора.

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

Для чего используется

Они имеют разные функции:

Работа токоограничивающего резистора заключается в ограничения тока.

Пример: в Ардуино требуется ограничить ток с выходных контактов. По документации он не должен превышать 40 мА. Напряжение питания 5В. По закону Ома определяется номинал резистора R= U/I = 5В/0,04А = 125 Ом (не меньше).

Читайте также:  сокол как зовут актера

Стягивающий и подтягивающий резисторы используются в схемах рядом с входными контактами логических элементов. Стягивающие – когда нужен четкий логический ноль. Подтягивающий резистор arduino – когда нужна логическая единица.

Делитель напряжения используется для получения части напряжения от целого. Например: питание автомобильной бортовой сети 12,7В. Нужно зарядить аккумулятор для смартфона, который использует напряжение 5В. Делается делитель напряжения из двух резисторов сопротивление которых относится как 5 к 7. Еще одно сопротивление для ограничения тока.

Типы подтягивающих резисторов

Вход логических элементов обычно имеет, так называемое высокоимпедансное состояние – точка имеет высокое сопротивление и не подключена ни к питанию, ни к земле. Проводник подключенный к логическому входу будет выполнять роль антенны и срабатывать от паразитных наводок. На выходе Ардуино будет выдаваться совсем не то, что требуется. Чтобы вход не оставался в подвешенном состоянии его, через пассивный резистор, подключают (подтягивают) к линии питания. Соответственно на логическом входе гарантированно будет логическая единица. Такой резистор называется подтягивающим.

Подтягивающие резисторы могут быть:

Другой характеристикой является:

Сильный

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

Но с другой стороны слишком большой ток постоянно идущий через вход устройство – это больший нагрев и бесполезные потери энергии.

Слабый

Если сопротивление резистора большое, то ток, идущий через резистор, будет небольшим. Соответственно разность потенциалов между входом и линией питания будет достаточно большой (подбирается так, чтобы напряжение между землей и входом не слишком отличалась от 3,3В).

Как подключить кнопку к Arduino

Кажется, что может быть проще, чем подключить кнопку? Тем не менее, и тут есть свои подводные камни. Давайте разберёмся.

Инструкция по подключению кнопки к Arduino

Основные характеристики подтягивающих резисторов Arduino

Основные характеристики резисторов это:

Сопротивление – это величина сопротивления проводника, к которому проложено напряжение в 1 Вольт и течет ток в 1 Ампер.

Допуск – отклонение сопротивления от номинала в результате технологической погрешности при изготовлении.

Мощность способность преобразовать в тепловую определенное количество электрической энергии при прохождении тока через резистор. Формула имеет вид: P= I2 x R.

Переключение режимов с помощью кнопки

Для того, чтобы определить, была ли нажата кнопка, надо просто зафиксировать факт ее нажатия и сохранить признак в специальной переменной.

Факт нажатия мы определяем с помощью функции digitalRead(). В результате мы получим HIGH (1, TRUE) или LOW(0, FALSE), в зависимости от того, как подключили кнопку. Если мы подключаем кнопку с помощью внутреннего подтягивающего резистора, то нажатие кнопки приведет к появлению на входе уровня 0 (FALSE).

Для хранения информации о нажатии на кнопку можно использовать переменную типа boolean:

boolean keyPressed = digitalRead(PIN_BUTTON)==LOW;

Почему мы используем такую конструкцию, а не сделали так:

boolean keyPressed = digitalRead(PIN_BUTTON);

Все дело в том, что digitalRead() может вернуть HIGH, но оно не будет означать нажатие кнопки. В случае использования схемы с подтягивающим резистором HIGH будет означать, что кнопка, наоборот, не нажата. В первом варианте (digitalRead(PIN_BUTTON)==LOW ) мы сразу сравнили вход с нужным нам значением и определили, что кнопка нажата, хотя и на входе сейчас низкий уровень сигнала. И сохранили в переменную статус кнопки. Старайтесь явно указывать все выполняемые вами логические операции, чтобы делать свой код более прозрачным и избежать лишних глупых ошибок.

Как переключать режимы работы после нажатия кнопки?

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

Логика работы программы очень проста:

Как определить нажатие нескольких кнопок?

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

Доброго времени суток!

Продолжаю рассказывать вам о своем опыте знакомства с микроконтроллерами на примере Arduino. Ранее я рассказал, как управлять светодиодом при помощи тактовой кнопки. Задача была в следующем: нажали кнопку светодиод загорелся, отпустили — погас. Однако, на практике чаще стоит задача зафиксировать действие кнопки, т.е. нажал кнопку — светодиод загорелся, нажал еще раз — погас. Если описать алгоритм человеческим языком, то получится следующее: если кнопка нажималась и светодиод горит, то погасить светодиод, если кнопка нажималась и светодиод не горит, то зажечь светодиод.

if (условие) else на примере моего скетча это выглядит так:if (0 == onOff) // если светодиод не горит, … else // … иначе … Загружаем скетч в Arduino и пробуем понажимать кнопку. Иногда всё работает верно. Иногда светодиод еле заметно моргнет и погаснет. Иногда ничего не происходит. Почему такая разница в результате, при выполнении одной и той же программы? Вроде бы делаем всё правильно… Виной тому явление, в электронике называемое «дребезгом контактов».

Читайте также:  Скидка вип вайлдберриз промокод телеграм

Для реализации такой задержки в пустой цикл ожидания отпускания кнопки я добавил команду задержки delay(1)

Жмите кнопки) Для Вас это — щелчок мышью, а для меня — повод продолжать делиться своими наработками.

Всем Мира и правильных решений! До свидания.

Источник

Резисторы: последовательное и параллельное соединение, токоограничивающие и подтягивающие сопротивления

Резистор (сопротивление) — один из наиболее распространённых компонентов в электронике. Его назначение — простое: сопротивляться течению тока, преобразовывая его часть в тепло.

Основной характеристикой резистора является сопротивление. Единица измерения сопротивления — Ом (Ohm, Ω). Чем больше сопротивление, тем большая часть тока рассеивается в тепло. В схемах, питаемых небольшим напряжением (5 – 12 В), наиболее распространены резисторы номиналом от 100 Ом до 100 кОм.

Закон Ома

Закон Ома позволяет на заданном участке цепи определить одну из величин: силу тока I, напряжение U, сопротивление R, если известны две остальные:

Для обозначения напряжения наряду с символом U используется V.

Рассмотрим простую цепь

Расчитаем силу тока, проходящего через резистор R1 и, соответственно, затем через лампу L1. Для простоты будем предполагать, что сама лампа обладает нулевым собственным сопротивлением.

Аналогично, если бы у нас был источник питания на 5 В и лампа, которая по документации должна работать при токе 20 мА, нам нужно бы было выбрать резистор подходящего номинала.

В данном случае, разница в 10 Ом между идеальным номиналом и имеющимся не играет большого значения: можно смело брать стандартный номинал — 240 или 220 Ом.

Аналогично, мы могли бы расчитать требуемое напряжение, если бы оно было не известно, а на руках были значения сопротивления и желаемая сила тока.

Соединение резисторов

При последовательном соединении резисторов, их сопротивление суммируется:

При параллельном соединении, итоговое сопротивление расчитывается по формуле:

Если резистора всего два, то:

В частном случае двух одинаковых резисторов, итоговое сопротивление при параллельном соединении равно половине сопротивления каждого из них.

Таким образом можно получать новые номиналы из имеющихся в наличии.

Применеие на практике

Среди ролей, которые может выполнять резистор в схеме можно выделить следующие:

Токоограничивающий резистор

Пример, на котором рассматривался Закон Ома представляет собой также пример токоограничевающего резистора: у нас есть компонент, который расчитан на работу при определённом токе — резистор снижает силу тока до нужного уровня.

В случае с Ардуино следует ограничивать ток, поступающий с выходных контактов (output pins). Напряжение, в состоянии, когда контакт включен (high) составляет 5 В. Исходя из документации, ток не должен превышать 40 мА. Таким образом, чтобы безопасно увести ток с контакта в землю понадобится резистор номиналом R = U / I = 5 В / 0.04 А = 125 Ом или более.

Стягивающие и подтягивающие резисторы

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

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

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

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

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

Делитель напряжения

Делитель напряжения (voltage divider) используется для того, чтобы получить из исходного напряжения лишь его часть. Например, из 9 В получить 5. Он подробно описан в отдельной статье.

Мощность резисторов

Резисторы помимо сопротивления обладают ещё характеристикой мощности. Она определяет нагрузку, которую способен выдержать резистор. Среди обычных керамических резисторов наиболее распространены показатели 0.25 Вт, 0.5 Вт и 1 Вт. Для расчёта нагрузки, действующей на резистор, используйте формулу:

При превышении допустимой нагрузки, резистор будет греться и его срок службы может сильно сократиться. При сильном превышении — резистор может начать плавиться и вызвать воспламенение. Будьте осторожны!

Источник

Онлайн портал