Для чего используется подтягивающий резистор при подключении тактовой кнопки
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отд – максимальный ток, отдаваемый цифровым выводом.
Подтягивающий резистор — что это такое и зачем нужен
Для организации работы Ардуино, в частности для подачи управляющего напряжения на высокоимпедансный вход кнопкой требуется использования подтягивающего резистора. Без него невозможно организовать правильное функционирование контроллера.
Принцип работы подтягивающего резистора
Для подключения различных устройств к Ардуино используются резисторы. Резисторы бывают внутренние и внешние, постоянные и переменные (внутренние переменные могут быть цифровыми).
Устройство
Резистор – от английского глагола «resistance» (сопротивление). Пассивный элемент, который создает препятствие для движения электрического тока. Часть тока преобразуется из электрической энергии в тепло.
Переменный резистор имеет еще один контакт, который называется ползунок. Он передвигается по резистивному слою и изменяет сопротивление между ползунком и контактами резистора.
Ардуино переменный резистор это резистивная линейка с электронными переключателями на каждом шаге потенциометра. В один момент времени может быть закрытым только один переключатель. От этого зависит сопротивление, которое выдает потенциометр.
Для чего используется
Они имеют разные функции:
Работа токоограничивающего резистора заключается в ограничения тока.
Пример: в Ардуино требуется ограничить ток с выходных контактов. По документации он не должен превышать 40 мА. Напряжение питания 5В. По закону Ома определяется номинал резистора R= U/I = 5В/0,04А = 125 Ом (не меньше).
Стягивающий и подтягивающий резисторы используются в схемах рядом с входными контактами логических элементов. Стягивающие – когда нужен четкий логический ноль. Подтягивающий резистор arduino – когда нужна логическая единица.
Делитель напряжения используется для получения части напряжения от целого. Например: питание автомобильной бортовой сети 12,7В. Нужно зарядить аккумулятор для смартфона, который использует напряжение 5В. Делается делитель напряжения из двух резисторов сопротивление которых относится как 5 к 7. Еще одно сопротивление для ограничения тока.
Типы подтягивающих резисторов
Вход логических элементов обычно имеет, так называемое высокоимпедансное состояние – точка имеет высокое сопротивление и не подключена ни к питанию, ни к земле. Проводник подключенный к логическому входу будет выполнять роль антенны и срабатывать от паразитных наводок. На выходе Ардуино будет выдаваться совсем не то, что требуется. Чтобы вход не оставался в подвешенном состоянии его, через пассивный резистор, подключают (подтягивают) к линии питания. Соответственно на логическом входе гарантированно будет логическая единица. Такой резистор называется подтягивающим.
Подтягивающие резисторы могут быть:
Другой характеристикой является:
Сильный
Если резистор имеет небольшое сопротивление, то через него идет больший ток и разность потенциалов между линией питания и логическим входом будет небольшая. Он будет сильнее притягивать логическую единицу к входу Ардуино.
Но с другой стороны слишком большой ток постоянно идущий через вход устройство – это больший нагрев и бесполезные потери энергии.
Слабый
Если сопротивление резистора большое, то ток, идущий через резистор, будет небольшим. Соответственно разность потенциалов между входом и линией питания будет достаточно большой (подбирается так, чтобы напряжение между землей и входом не слишком отличалась от 3,3В).
Основные характеристики подтягивающих резисторов Arduino
Основные характеристики резисторов это:
Сопротивление — это величина сопротивления проводника, к которому проложено напряжение в 1 Вольт и течет ток в 1 Ампер.
Допуск – отклонение сопротивления от номинала в результате технологической погрешности при изготовлении.
Мощность способность преобразовать в тепловую определенное количество электрической энергии при прохождении тока через резистор. Формула имеет вид: P= I 2 x R.
Расчет подтягивающего резистора
Расчет минимального сопротивления резистора достаточно прост и определяется из формулы:
Rp = (Vcc – 0,4)/3mA где:
Соответственно Rp = (5V- 0,4V)/3mA= 1,5 кОм – Это минимальное сопротивление.
Максимальное сопротивление определяется по емкости шины конкретного устройства по формуле:
1µs – время нарастания сигнала для стандартного сигнала;
Cb – емкость шины – 20 пФ.
Расчет показывает, что сопротивление будет равно 50 кОм.
Как правильно выбрать номинал
Номинал резистора лежит в пределах от 1,5 кОм до 50 кОм. Подбирается обычно подбором. Подается соответствующий сигнал с рабочей частотой. Просматриваются осциллограммы и меняя сопротивления выбирается наиболее подходящее.
Схема подключения переменных резисторов к Ардуино
Для Подключения управляющих элементов на вход Ардуино разработаны стандартные схемы.
Подключение кнопок
Подключение кнопок хорошо представлена в схемах на рисунках.
Подключение кнопки с помощью стягивающего резистора.
Стягивающий резистор подключен между землей и логическим входом устройства.
Подключение кнопки с помощью подтягивающего резистора.
Подтягивающий резистор включен между линией питания и входом устройства.
Подключение микроконтроллера
Ардуино – это популярный микроконтроллер, в который уже загружен набор базовых АТ команд (как BIOS в компьютере). Этот набор называется прошивкой. Пользователь может самостоятельно перепрошить микроконтроллер под свои задачи. Для выполнения конкретных задач пользователь может сам написать программу на специальном языке программирования, а может использовать уже написанные другими программы. Эти программы называются библиотеки и загружаются через стандартный порт в память микроконтроллера.
Как сделать осциллограф на Ардуино для компьютера, читайте здесь.
Другие
Имея Ардуино с загруженной библиотекой Вы получаете инструмент управляющей нужной системой. Достаточно подключить нужные датчики. Датчики можно подключать цифровые и аналоговые. Цифровые уже ориентированы на работу с Ардуино. Аналоговые подключаются через аналогово-цифровые преобразователи, встроенные в микроконтроллер. Если их не хватает – приходится использовать мультиплексоры.
Спектр датчиков широк и постоянно пополняется новыми. Уже сейчас широко используются в качестве датчиков различные терморезисторы, объемные датчики, фотодатчики, резистивные датчики положения.
Наличие огромного количество уже готовых библиотек также облегчает жизнь изобретателей и просто «рукастых» людей. Возможности Ардуино ограничиваются только их фантазией.
Влияние номинала подтягивающих резисторов на сигнал шины I2C. Что такое подтягивающий резистор
Что такое подтягивающий резистор, и зачем он нужен?
Резисторы являются устройствами ограничения тока, которые широко используются в электронных схемах и изделиях. Резистор – это пассивный компонент, который обеспечивает сопротивление при протекании тока через него. Сегодня существует много разных типов резисторов.
Если мы рассмотрим цифровую схему, то ее контакты всегда будут либо в состоянии логического 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 и прочих микроконтроллерных и микропроцессорных устройствах.
Обозначение переменных резисторов на схемах.
На принципиальных схемах переменные резисторы обозначаются также как и постоянные, только к основному символу добавляется стрелка, направленная в середину корпуса. Стрелка обозначает регулирование и одновременно указывает, что это средний вывод.
Иногда возникают ситуации, когда к переменному резистору предъявляются требования надежности и длительности эксплуатации. В этом случае плавное регулирование заменяют ступенчатым, а переменный резистор строят на базе переключателя с несколькими положениями. К контактам переключателя подключают резисторы постоянного сопротивления, которые будут включаться в цепь при повороте ручки переключателя. И чтобы не загромождать схему изображением переключателя с набором резисторов, указывают только символ переменного резистора со знаком ступенчатого регулирования
. А если есть необходимость, то дополнительно указывают и число ступеней.
Для регулирования громкости и тембра, уровня записи в звуковоспроизводящей стереофонической аппаратуре, для регулирования частоты в генераторах сигналов и т.д. применяются сдвоенные потенциометры
, сопротивления которых изменяется одновременно при поворотеобщей
оси (движка). На схемах символы входящих в них резисторов располагают как можно ближе друг к другу, а механическую связь, обеспечивающую одновременное перемещение движков, показывают либо двумя сплошными линиями, либо одной пунктирной линией.
Принадлежность резисторов к одному сдвоенному блоку указывается согласно их позиционному обозначению в электрической схеме, где R1.1
является первым по схеме резистором сдвоенного переменного резистора R1, аR1.2
— вторым. Если же символы резисторов окажутся на большом удалении друг от друга, то механическую связь обозначают отрезками пунктирной линии.
Промышленностью выпускаются сдвоенные переменные резисторы, у которых каждым резистором можно управлять отдельно, потому что ось одного проходит внутри трубчатой оси другого. У таких резисторов механическая связь, обеспечивающая одновременное перемещение, отсутствует, поэтому на схемах ее не показывают, а принадлежность к сдвоенному резистору указывают согласно позиционному обозначению в электрической схеме.
В переносной бытовой аудиоаппаратуре, например, в приемниках, плеерах и т.д., часто используют переменные резисторы со встроенным выключателем, контакты которого задействуют для подачи питания в схему устройства. У таких резисторов переключающий механизм совмещен с осью (ручкой) переменного резистора и при достижении ручкой крайнего положения воздействует на контакты.
Как правило, на схемах контакты включателя располагают возле источника питания в разрыв питающего провода, а связь выключателя с резистором обозначают пунктирной линией и точкой, которую располагают у одной из сторон прямоугольника. При этом имеется в виду, что контакты замыкаются при движении от точки, а размыкаются при движении к ней.
Принцип работы подтягивающего резистора
Для подключения различных устройств к Ардуино используются резисторы. Резисторы бывают внутренние и внешние, постоянные и переменные (внутренние переменные могут быть цифровыми).
Устройство
Резистор – от английского глагола «resistance» (сопротивление). Пассивный элемент, который создает препятствие для движения электрического тока. Часть тока преобразуется из электрической энергии в тепло.
Переменный резистор имеет еще один контакт, который называется ползунок. Он передвигается по резистивному слою и изменяет сопротивление между ползунком и контактами резистора.
Ардуино переменный резистор это резистивная линейка с электронными переключателями на каждом шаге потенциометра. В один момент времени может быть закрытым только один переключатель. От этого зависит сопротивление, которое выдает потенциометр.
Для чего используется
Они имеют разные функции:
Работа токоограничивающего резистора заключается в ограничения тока.
Пример: в Ардуино требуется ограничить ток с выходных контактов. По документации он не должен превышать 40 мА. Напряжение питания 5В. По закону Ома определяется номинал резистора R= U/I = 5В/0,04А = 125 Ом (не меньше).
Стягивающий и подтягивающий резисторы используются в схемах рядом с входными контактами логических элементов. Стягивающие – когда нужен четкий логический ноль. Подтягивающий резистор arduino – когда нужна логическая единица.
Делитель напряжения используется для получения части напряжения от целого. Например: питание автомобильной бортовой сети 12,7В. Нужно зарядить аккумулятор для смартфона, который использует напряжение 5В. Делается делитель напряжения из двух резисторов сопротивление которых относится как 5 к 7. Еще одно сопротивление для ограничения тока.
Принцип работы переменного резистора
Схема потенциометра
Поворотом ручки меняется длина резистора, и как результат сила тока. На рисунке показан переменный резистор с тремя выводами – потенциометр. Сопротивление между концами 1 и 3 меняется от 0 до максимума, в зависимости от положения ручки. Такая же картина между концами 2 и 3, но наоборот. То есть если сопротивление 1 – 3 растет, 2 – 3 уменьшается. Когда переменный резистор имеет два конца – имеем реостат.
На рисунке показан поворотный переменный резистор. Бывают также ползунковые, где движок перемещается по прямой. Поворотом ручки сопротивление меняется от нуля до максимума. Потенциометры широко применяются в аудиоаппаратуре.
Потенциометр
Потенциометры утапливают в цилиндрические и параллелепипедные корпуса. Внутри корпуса имеется резистивный элемент подковообразной формы. По оси детали выходит металлическая ручка, поворотом которой меняется положение токосъемника, который расположен на противоположном конце.
Пластина токосъемника надежно прижата к резистивному элементу, за счет упругой силы. Ее изготавливают из стали или из бронзы. Напряжение подается на крайние концы потенциометра. За счет вращения ручки, токосъемник скользит по резистивному элементу, меняя напряжение между крайними и средним концами.
На рисунке показан проволочный потенциометр, у которого резистивный слой изготовлен из проволоки. Провод с высоким сопротивлением наматывается на подковообразный каркас. Затем контактная поверхность кольца шлифуется и полируется. Это делается для обеспечения надежности соединения ползунка с проводящим слоем.
Изготавливают также непроволочные потенциометры. В них резистивный слой нанесен на кольцеобразную или прямоугольную основу из изоляционного материала.
Типы подтягивающих резисторов
Вход логических элементов обычно имеет, так называемое высокоимпедансное состояние – точка имеет высокое сопротивление и не подключена ни к питанию, ни к земле. Проводник подключенный к логическому входу будет выполнять роль антенны и срабатывать от паразитных наводок. На выходе Ардуино будет выдаваться совсем не то, что требуется. Чтобы вход не оставался в подвешенном состоянии его, через пассивный резистор, подключают (подтягивают) к линии питания. Соответственно на логическом входе гарантированно будет логическая единица. Такой резистор называется подтягивающим.
Подтягивающие резисторы могут быть:
Другой характеристикой является:
Сильный
Если резистор имеет небольшое сопротивление, то через него идет больший ток и разность потенциалов между линией питания и логическим входом будет небольшая. Он будет сильнее притягивать логическую единицу к входу Ардуино.
Но с другой стороны слишком большой ток постоянно идущий через вход устройство – это больший нагрев и бесполезные потери энергии.
Слабый
Если сопротивление резистора большое, то ток, идущий через резистор, будет небольшим. Соответственно разность потенциалов между входом и линией питания будет достаточно большой (подбирается так, чтобы напряжение между землей и входом не слишком отличалась от 3,3В).
Основные характеристики подтягивающих резисторов Arduino
Основные характеристики резисторов это:
Сопротивление – это величина сопротивления проводника, к которому проложено напряжение в 1 Вольт и течет ток в 1 Ампер.
Допуск – отклонение сопротивления от номинала в результате технологической погрешности при изготовлении.
Мощность способность преобразовать в тепловую определенное количество электрической энергии при прохождении тока через резистор. Формула имеет вид: P= I2 x R.
Расчет подтягивающего резистора
Расчет минимального сопротивления резистора достаточно прост и определяется из формулы:
Rp = (Vcc – 0,4)/3mA где:
Соответственно Rp = (5V- 0,4V)/3mA= 1,5 кОм – Это минимальное сопротивление.
Максимальное сопротивление определяется по емкости шины конкретного устройства по формуле:
1µs – время нарастания сигнала для стандартного сигнала;
Cb – емкость шины – 20 пФ.
Расчет показывает, что сопротивление будет равно 50 кОм.
Как правильно выбрать номинал
Номинал резистора лежит в пределах от 1,5 кОм до 50 кОм. Подбирается обычно подбором. Подается соответствующий сигнал с рабочей частотой. Просматриваются осциллограммы и меняя сопротивления выбирается наиболее подходящее.
Связанная информация
I2C – это последовательный интерфейс, допускающий наличие на шине нескольких ведущих устройств (master) и нескольких ведомых устройств (slave) и позволяющий микрочипам взаимодействовать друг с другом на стандартных скоростях 100 кГц (Standard Mode), 400 кГц (Fast Mode), 1 МГц (Fast Mode Plus) и 3,4 МГц (High-Speed Mode).
Одна из наших предыдущих статей, «Шина I2C. Подробности аппаратной реализации», подробно объясняет механизм работы шины I2C. Спецификацию шины можно найти на сайте NXP.
Аппаратная конфигурация I2C и упрощенные формы сигналов (тактового и данных)
Реальные передачи по I2C – это не прямоугольные импульсы, обычно изображаемые на рисунках. Схемы имеют собственный импеданс из-за наличия паразитной емкости и использования подтягивающих резисторов.
Переходы с высокого логического уровня на низкий связаны с током разряда через низкоимпедансный канал NMOS транзистора – эти переходы быстрые. Переходы с низкого логического уровня на высокий включают в себя ток, который должен протекать через относительно большой подтягивающий резистор. Более низкое сопротивление подтягивающих резисторов приводит к более быстрым переходам, но и к более высокому потреблению тока (когда сигнал находится в низком логическом состоянии); более высокое сопротивление подтягивающих резисторов приводит к более медленным переходам и меньшему потреблению тока. Выбор номинала резистора становится более важным на более высоких частотах.
Положительные переходы кажутся скругленными из-за подтягивающих резисторов в пути протекания тока при переходе с низкого логического уровня к высокому логическому уровню
Любое увеличение емкости шины или сопротивления увеличит время перехода к высокому логическому уровню. В какой-то момент разность потенциалов даже не достигнет порога высокого логического уровня, или она не будет оставаться на этом уровне достаточно долго, прежде чем начнется переход обратно к низкому логическому уровню.
На приведенном выше графике постоянная времени RC цепи слишком велика, и напряжение не достигает порога высокого логического уровня
Разные I2C устройства могут иметь разные пороги логических уровней. На предыдущих графиках предполагаются пороги \(V_ <лог.низ.>= 0,3 \cdot 3,3В = 1В\) и \(V_ <лог.выс.>= 0,7 \cdot 3,3В = 2,3В\), но это не всегда так. Например, ADP5062 имеет пороговые значения \(V_ <лог.низ.>= 0,5В\) и \(V_ <лог.выс.>= 1,2В\).
На одной и той же шине могут использоваться микросхемы с различными пороговыми напряжениями; когда это происходит, расчеты должны выполняться с использованием наивысшего порогового напряжения высокого логического уровня и наименьшего порогового напряжения низкого логического уровня.
Данный график показывает гипотетическое пороговое напряжение низкого логического уровня 0,7В и гипотетическое пороговое напряжение высокого логического уровня 1,3В. Эти низкие значения увеличивают время, проведенное в состоянии высокого логического уровня, без значительного изменения времени, проведенного в состоянии низкого логического уровня. Данная конфигурация позволяет работать с более высокой частотой.
Схема подключения переменных резисторов к Ардуино
Для Подключения управляющих элементов на вход Ардуино разработаны стандартные схемы.
Подключение кнопок
Подключение кнопок хорошо представлена в схемах на рисунках.
Подключение кнопки с помощью стягивающего резистора.
Стягивающий резистор подключен между землей и логическим входом устройства.
Подключение кнопки с помощью подтягивающего резистора.
Подтягивающий резистор включен между линией питания и входом устройства.
Подключение микроконтроллера
Ардуино – это популярный микроконтроллер, в который уже загружен набор базовых АТ команд (как BIOS в компьютере). Этот набор называется прошивкой. Пользователь может самостоятельно перепрошить микроконтроллер под свои задачи. Для выполнения конкретных задач пользователь может сам написать программу на специальном языке программирования, а может использовать уже написанные другими программы. Эти программы называются библиотеки и загружаются через стандартный порт в память микроконтроллера.
Как сделать осциллограф на Ардуино для компьютера, читайте здесь.
Другие
Имея Ардуино с загруженной библиотекой Вы получаете инструмент управляющей нужной системой. Достаточно подключить нужные датчики. Датчики можно подключать цифровые и аналоговые. Цифровые уже ориентированы на работу с Ардуино. Аналоговые подключаются через аналогово-цифровые преобразователи, встроенные в микроконтроллер. Если их не хватает – приходится использовать мультиплексоры.
Спектр датчиков широк и постоянно пополняется новыми. Уже сейчас широко используются в качестве датчиков различные терморезисторы, объемные датчики, фотодатчики, резистивные датчики положения.
Наличие огромного количество уже готовых библиотек также облегчает жизнь изобретателей и просто «рукастых» людей. Возможности Ардуино ограничиваются только их фантазией.
См. также
Понравилась статья про схемотехника обслуживающих элементов? Откомментируйте её Надеюсь, что теперь ты понял что такое схемотехника обслуживающих элементов,сопряжение цифровых микросхем,подтягивающий резистор,подтягивающие резисторы,стягивающие резисторы,pull-up resistor,pull-down resistor и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная схемотехника и архитектура компьютеров
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Закон Ома
Закон Ома позволяет на заданном участке цепи определить одну из величин: силу тока I, напряжение U, сопротивление R, если известны две остальные:
Для обозначения напряжения наряду с символом U используется V.
Рассмотрим простую цепь
Расчитаем силу тока, проходящего через резистор R1 и, соответственно, затем через лампу L1. Для простоты будем предполагать, что сама лампа обладает нулевым собственным сопротивлением.
Аналогично, если бы у нас был источник питания на 5 В и лампа, которая по документации должна работать при токе 20 мА, нам нужно бы было выбрать резистор подходящего номинала.
В данном случае, разница в 10 Ом между идеальным номиналом и имеющимся не играет большого значения: можно смело брать стандартный номинал — 240 или 220 Ом.
Аналогично, мы могли бы расчитать требуемое напряжение, если бы оно было не известно, а на руках были значения сопротивления и желаемая сила тока.
Что такое резистор
Как проверить резистор (сопротивление) мультиметром (универсальным прибором)
С английского резистор переводится как сопротивление. Это пассивный элемент цепи, который, благодаря своим свойствам, обеспечивает нужное напряжение и регулирует значение тока.
Чтобы понять, что такое резистор, следует обладать хотя бы самыми общими представлениями об электрике. Сопротивление измеряется в Омах. Оно связано зависимостью с напряжением и силой тока. Проводник обладает сопротивлением 1 Ом, если к концам его приложено напряжение 1 В, и по нему протекает ток силой в 1 А. Поэтому резистор является управлением другими параметрами электрической системы.
Поэтому такой элемент контролирует и ограничивает ток. В цепи резистор может делить напряжение. Характеристиками резистора являются величина номинального сопротивления и мощность, которая показывает, какое количество энергии он способен рассеять без перегрева.
Применеие на практике
Среди ролей, которые может выполнять резистор в схеме можно выделить следующие:
Токоограничивающий резистор
Пример, на котором рассматривался Закон Ома представляет собой также пример токоограничевающего резистора: у нас есть компонент, который расчитан на работу при определённом токе — резистор снижает силу тока до нужного уровня.
В случае с Ардуино следует ограничивать ток, поступающий с выходных контактов (output pins). Напряжение, в состоянии, когда контакт включен (high) составляет 5 В. Исходя из документации, ток не должен превышать 40 мА. Таким образом, чтобы безопасно увести ток с контакта в землю понадобится резистор номиналом R = U / I = 5 В / 0.04 А = 125 Ом или более.
Стягивающие и подтягивающие резисторы
Стягивающие (pull-down) и подтягивающие (pull-up) резисторы используются в схемах рядом со входными контактами логических компонентов, которым важен только факт: подаётся ноль вольт (логический ноль) или не ноль (логическая единица). Примером являются цифровые входы Ардуино. Резисторы нужны, чтобы не оставить вход в «подвешенном» состоянии. Возьмём такую схему
Мы хотим, чтобы когда кнопка не нажата (цепь разомкнута), вход фиксировал отсутствие напряжения. Но в данном случае вход находится в «никаком» состоянии. Он может срабатывать и не срабатывать хаотично, непредсказуемым образом. Причина тому — шумы, образующиеся вокруг: провода действуют как маленькие антенны и производят электричество из электромагнитных волн среды. Чтобы гарантировать отсутствие напряжения при разомкнутой цепи, рядом с входом ставится стягивающий резистор:
Теперь нежелательный ток будет уходить через резистор в землю. Для стягивания используются резисторы больших сопротивлений (10 кОм и более). В моменты, когда цепь замкнута, большое сопротивление резистора не даёт большей части тока идти в землю: сигнал пойдёт к входному контакту. Если бы сопротивление резистора было мало (единицы Ом), при замкнутой цепи произошло бы короткое замыкание.
Аналогично, подтягивающий резистор удерживает вход в состоянии логической единицы, пока внешняя цепь разомкнута:
То же самое: используются резисторы больших номиналов (10 кОм и более), чтобы минимизировать потери энергии при замкнутой цепи и предотвратить короткое замыкание при разомкнутой.
Делитель напряжения
Делитель напряжения (voltage divider) используется для того, чтобы получить из исходного напряжения лишь его часть. Например, из 9 В получить 5. Он подробно описан в отдельной статье.
Как подключить кнопку к Arduino
Кажется, что может быть проще, чем подключить кнопку? Тем не менее, и тут есть свои подводные камни. Давайте разберёмся.
Инструкция по подключению кнопки к Arduino
1 Виды кнопок
Кнопки бывают разные, но все они выполняют одну функцию – физически соединяют (или, наоборот, разрывают) между собой проводники для обеспечения электрического контакта. В простейшем случае – это соединение двух проводников, есть кнопки, которые соединяют большее количество проводников.
Виды кнопок, их внешний вид и обозначение на электрической схеме
Некоторые кнопки после нажатия оставляют проводники соединёнными (фиксирующиеся кнопки), другие – сразу же после отпускания размыкают цепь (нефиксирующиеся кнопки).
Также кнопки делят на:
Первые при нажатии замыкают цепь, вторые – размыкают.
Сейчас нашёл широкое применение тип кнопок, которые называют «тактовые кнопки». Тактовые – не от слова «такт», а от слова «тактильный», т.к. нажатие хорошо чувствуется пальцами. Но этот ошибочный термин устоялся, и теперь эти кнопки у нас повсеместно так называют. Это кнопки, которые при нажатии замыкают электрическую цепь, а при отпускании – размыкают, т.е. это нефиксирующиеся, нормально разомкнутые кнопки.
2 Дребезг контактов
Кнопка – очень простое и полезное изобретение, служащее для лучшего взаимодействия человека и техники. Но, как и всё в природе, она не идеальна. Проявляется это в том, что при нажатии на кнопку и при её отпускании возникает т.н. «дребезг» («bounce» по-английски). Это многократное переключение состояния кнопки за короткий промежуток времени (порядка нескольких миллисекунд), прежде чем она примет установившееся состояние. Это нежелательное явление возникает в момент переключения кнопки из-за упругости материалов кнопки или из-за возникающих при электрическом контакте микроискр.
Дребезг контактов в момент нажатия и отпускания кнопки
В следующей статье подробно описаны основные способы борьбы с «дребезгом» при замыкании и размыкании контактов. А пока что рассмотрим варианты подключения кнопки к Arduino.
3 Некорректное подключение кнопки
Чтобы подключить нормально разомкнутую тактовую кнопку к Arduino, можно поступить самым простым способом: один свободный проводник кнопки соединить с питанием или землёй, другой – с цифровым выводом Arduino. Но, вообще говоря, это неправильно. Дело в том, что в моменты, когда кнопка не замкнута, на цифровом выводе Ардуино будут появляться электромагнитные наводки, и из-за этого возможны ложные срабатывания.
Неправильное подключение кнопки к Arduino
Чтобы избежать наводок, цифровой вывод обычно подключают через достаточно большой резистор (10 кОм) либо к земле, либо к питанию. В первом случае это называется «схема с подтягивающим резистором», во втором – «схема со стягивающим резистором». Давайте рассмотрим каждую из них.
4 Подключение кнопки по схеме с подтягивающим резистором
Сначала подключим к Arduino кнопку по схеме с подтягивающим резистором. Для этого один контакт кнопки соединим с землёй, второй – с цифровым выходом «2». Цифровой выход «2» также подключим через резистор номиналом 10 кОм к питанию +5 В.
Схема подключения кнопки к Arduino по схеме с подтягивающим резистором
Напишем вот такой скетч для обработки нажатий на кнопку и загрузим в Arduino.
Встроенный светодиод на выводе «13» постоянно горит, пока не нажата кнопка. Т.е. на порте «2» Arduino всегда присутствует высокий логический уровень HIGH. Когда нажимаем кнопку, напряжение на «2» порте принимает состояние LOW, и светодиод гаснет.
5 Подключение кнопки по схеме со стягивающим резистором
Теперь соберём схему со стягивающим резистором. Один контакт кнопки соединим с питанием +5 В, второй – с цифровым выходом «2». Цифровой выход «2» подключим через резистор номиналом 10 кОм к земле. Скетч менять не будем.
Подключение кнопки к Arduino по схеме со стягивающим резистором
При включении схемы на цифровом порте «2» Arduino низкий уровень LOW, и светодиод не горит. При нажатии на кнопку на порт «2» поступает высокий уровень HIGH, и светодиод загорается.
Мощность резисторов
Резисторы помимо сопротивления обладают ещё характеристикой мощности. Она определяет нагрузку, которую способен выдержать резистор. Среди обычных керамических резисторов наиболее распространены показатели 0.25 Вт, 0.5 Вт и 1 Вт. Для расчёта нагрузки, действующей на резистор, используйте формулу:
При превышении допустимой нагрузки, резистор будет греться и его срок службы может сильно сократиться. При сильном превышении — резистор может начать плавиться и вызвать воспламенение. Будьте осторожны!
Емкость
В спецификации NXP указано, что максимальная общая емкость шины составляет 400 пФ для устройств режимов Standard Mode и Fast Mode и 550 пФ для устройств режима Fast Mode Plus. Вы не должны добавлять конденсаторы на линии I2C, чтобы достичь этих верхних пределов емкости – чем емкость шины меньше, тем лучше.
Диэлектрики
На общую емкость вашей шины может повлиять основной материал вашей печатной платы. Диэлектрическая постоянная для большинства базовых материалов печатных плат находится в диапазоне 2,5≲ε≲5 (ε зависит от частоты).
Данный график показывает влияние относительной диэлектрической проницаемости на емкость микрополосковой линии
Более дорогие базовые материалы имеют тенденцию к снижению общей диэлектрической проницаемости, что снижает общую емкость ваших дорожек на печатной плате, что и является целью. Можно уменьшить общую емкость дорожки на 45%, выбрав TLT (ε=2,5) вместо Policlad 370HR (εFR4=4,5).
Источники увеличения емкости шины
Источники емкости шины включают в себя микросхемы на шине, микрополосковые трассы и близлежащие сигнальные трассы и силовые полигоны. Кроме того, нельзя игнорировать емкостные эффекты краев, если в случае маленькой печатной платы дорожки микросхемы находятся близко к краю платы.
Любой метал или диэлектрик вблизи линий I2C может увеличить общую емкость, но во многих случаях этот эффект пренебрежимо мал.
Незначительные источники емкости
Паразитная связь и емкость корпусов – это не то, что вы можете контролировать. К счастью, это всего лишь 1-2 пФ на сигнальную линию. Другими словами, это не будет существенным фактором в вашей общей схеме. Эта емкость 1-2 пФ включена в оценку в следующем параграфе.
Переключение режимов с помощью кнопки
Для того, чтобы определить, была ли нажата кнопка, надо просто зафиксировать факт ее нажатия и сохранить признак в специальной переменной.
Факт нажатия мы определяем с помощью функции 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)
(цифра в скобках-это длительность задержки в миллисекундах(1/1000 секунды)). Также в цикле появился счётчик
cycle++
. Эту запись программисты называют инкрементом. При каждом выполнении этой команды переменная
cycle
увеличивается на единицу. Эту же строчку можно записать так:
cycle = cycle + 1
. Никакой ошибки не будет. Загружаю дополненный скетч в Arduino и проверяю. Теперь всё работает чётко. Задача выполнена.
Жмите кнопки) Для Вас это — щелчок мышью, а для меня — повод продолжать делиться своими наработками.
Всем Мира и правильных решений! До свидания.