Я довольно новичок в электронике, и мне трудно понять принцип "подтягивающего резистора". Я прочитал много статей об этом, и я думаю, что получил, но я не уверен на 100%, поэтому у меня есть вопрос. В этой статье после первого изображения написано:
При нажатии мгновенной кнопки он соединяет вывод ввода / вывода с Vcc, и микроконтроллер регистрирует вход как высокий.
Но я не понимаю. Где находится VCC? Из того, что я вижу, в этой схеме нет источника питания, только микроконтроллер, подключенный к кнопке, оба заземлены, так как вообще может быть какое-либо напряжение в этой цепи?
Ответы:
Статья кажется довольно запутанной: текст и цифры не совпадают. Я постараюсь представить здесь те же три схемы, что и там, с, надеюсь, более подходящим объяснением.
Предположим, что U1 - ваш микроконтроллер, а P1 - вывод ввода / вывода, настроенный как вход. (Это может быть любой логический элемент, на самом деле.) Другие подключения к U1 не так важны, поэтому они не изображены, но предполагают, что у него есть подключения питания и другие необходимые компоненты.
(1) Если кнопка нажата, порт P1 подключен к земле и будет определять низкий логический уровень. Но когда кнопка отпущена, порт нигде не подключен, а находится в плавающем состоянии . Нет определенного напряжения, поэтому даже незначительный шум может привести к переключению цифрового входа с одного значения на другое. Это может также колебаться и вызывать повышенное энергопотребление. Не хорошо.
(2) Теперь, когда кнопка не нажата, порт будет воспринимать высокий уровень, так как он подключен напрямую к Vcc. Но если кнопка нажата, Vcc замкнут накоротко на землю, и источник питания, вероятно, сгорит и погибнет. Еще хуже.
(3) Здесь, если кнопка не нажата, порт снова будет ощущать высокий логический уровень: он поднимается высоко через резистор. (Отсутствует потеря напряжения на резисторе, поскольку полное сопротивление цифрового входа очень высокое, и поэтому ток на порт приблизительно равен нулю.)
Когда кнопка нажата, порт подключается напрямую к земле, поэтому он чувствует низкий уровень. Теперь ток будет течь от Vcc к земле, но резистор ограничит его до чего-то разумного. Это хорошо.
В этой схеме, нажатая кнопка имеет высокое значение (1), а нажатая кнопка - низкое значение (0). Это называется логикой активного низкого уровня . Замена резистора и переключателя приведет к инвертированию, так что для нажатой кнопки будет отображаться низкий уровень (0), а для нажатой кнопки высокий уровень (1). ( Активно-высокая логика.)
смоделировать эту схему - схема, созданная с использованием CircuitLab
источник
Подтягивающий или понижающий резистор «удерживает» вход на определенном уровне, когда на входе нет входа, вместо того, чтобы позволить входу плавать.
Если рассмотреть рисунок 1 на чертеже, то, что переключатель разомкнут, не обеспечивает электрического соединения с выводом, что позволяет случайным помехам, внутренним утечкам и т. Д. Влиять на напряжение на входном выводе. Эти внешние воздействия могут привести к тому, что входной сигнал будет интерпретироваться как колеблющееся значение, вызывая нежелательные колебания или неожиданный выходной сигнал.
Таким образом, чтобы убедиться, что вывод удерживается в «известном» состоянии, его необходимо всегда подключать к VCC или GND. См. Рисунок 2. Однако есть проблема: если вы подключите контакт к VCC, чтобы удерживать его в «высоком» состоянии, затем подключите свой переключатель к GND и нажмите на переключатель, вы создадите прямое короткое замыкание! Вы можете перегореть предохранитель, повредить блок питания, сжечь что-нибудь и т. Д.
Таким образом, вместо того, чтобы подключать вход непосредственно к VCC или GND, вы можете подключить вход через подтягивающий / понижающий резистор. На рисунке 3 они используют подтягивающий резистор, соединяющий вход с VCC.
Когда на выводе нет другого входа, через нагрузочный резистор протекает практически нулевой ток. Таким образом, очень небольшое падение напряжения на нем. Это позволяет увидеть все напряжение VCC на входном контакте. Другими словами, входной контакт удерживается «высоким».
Когда ваш переключатель замкнут, вход и подтягивающий резистор подключены к заземлению. Некоторый ток начинает течь через подтягивание. Но так как это сопротивление намного выше, чем у провода, ведущего к GND, почти все напряжение падает на нагрузочном резисторе, в результате чего на входном выводе присутствует ~ 0 вольт.
Вы бы выбрали резистор с относительно высоким значением, чтобы ограничить поток тока разумным значением, но не слишком высоким, чтобы превышать внутреннее сопротивление входа.
Подтягивающие резисторы позволяют удерживать вход в известном состоянии, когда его нет, но при этом дают гибкость для ввода сигнала без создания короткого замыкания.
источник
Статья сбивает с толку, но вот суть. Инвертор имеет высокий входной импеданс и не должен оставаться плавающим, поскольку он может принимать логический 0 или логический 1 или колебаться между ними.
смоделировать эту схему - схема, созданная с использованием CircuitLab
Расположение в (b) более распространено, так как многие логические устройства IC имеют внутренние подтягивающие резисторы, что приводит к меньшему количеству компонентов и площади печатной платы при использовании этого устройства.
Обратите внимание, что мощность и земля предполагаются во многих схемах. Например, в случае логических вентилей имеется общее соединение Vss и заземления для 2, 4 или 6 логических вентилей. Не имеет смысла показывать их для каждого затвора, поэтому они предполагаются или показываются отдельно с соответствующими развязывающими конденсаторами в других местах схемы.
источник
Что ж, это НЕ вентиль, поэтому я предполагаю, что мы должны представить вывод ввода / вывода, где этот светодиод неправильно показан без последовательного резистора. Когда вы подключаете вход к земле, выход должен идти в Vcc (который также может называться Vdd, что является другой историей).
Вполне нормально не показывать выводы питания на логических элементах. Это просто для того, чтобы уменьшить беспорядок в схеме. Обратите внимание, что вывод заземления на логическом элементе также не показан.
Это немного сбивает с толку (прячет контакты), когда у вас на одной плате смешанные логические напряжения, такие как 1,8, 3,3 и 5 В, поэтому я обычно не делаю это сам, но это сэкономило кучу беспорядка в безмятежные дни когда все бежало от 5V.
смоделировать эту схему - схема, созданная с использованием CircuitLab
источник
Подъемный или понижающий резистор предназначен для фиксации логического уровня (0 на GND или 1 на VCC). Резистор имеет более высокое сопротивление, чем кнопка. При нажатии на кнопку уровень может измениться (при наличии правильной проводной связи).
«Не гейт», представляющий MCU на рисунках, является очень простым, и автор опускает поставки VCC. Конечно, на рисунках 2 и 3 Vcc присутствует и хорошо связан.
Вы выбрали предложение, чтобы объяснить логику «активного максимума». Тот, который соответствует рисунку 1,
источник
Поскольку плавающие входы на CMOS могут просачиваться к ложным уровням входа, они подвержены случайным помехам, либо скрытое подтягивание входа R во входном порте uC с переключателем на землю, либо внешнее смещение R на одну шину питания Vdd или Vss и переключение на противоположный рельс.
источник