В этой статье мы поговорим о резисторах. Подтягивающем (стягивающем) резисторе и о токоограничивающем резисторе.
Зачем они нужны, для чего используются, почему нам все это надо и что со всем этим делать.
Статья как всегда для "чайников", для тех кто хочет разобраться со всем этим и понять зачем, почему именно так и вообще как это работает
Написано простыми славами для непрофессионалов.
Подтягивающий (стягивающий) резистор — резистор, включённый между проводником, по которому распространяется электрический сигнал, и питанием или землей.
Обычно говорят подтягивающий резистор для всех случаев, стягивающий резистор употребляется мало.
Бывают
подтягивающий (подтягивающий вверх, подтягивающий к питанию, pull-up resistor)
стягивающий (подтягивающий вниз, подтягивающий к земле, pull-down resistor)
Сейчас, да и раньше то же, активно используется цифровая техника, а техника на то и цифровая, что бы любить цифру. А их у техники всего две 0 и 1, ноль и один, высокий и низкий уровни, HIGH или LOW, есть сигнал, нет сигнала, белое и черное, холодное и горячее, доброе и злое, тьфу не туда понесло. Так в мире цифры принято, там все просто и дискретно, но вмешивается во все это подлый, реальный мир. И появляется не то и не другое, состояние неопределенности, третье состояние, состояние Z. Провод свободно висящий в воздухе ловит электромагнитные помехи, в него попадают лучи из глубин космоса и так далее и тому подобное и на нем хаотически то появляются, то пропадают различные потенциалы. Формируется неопределённое состояние - состояние Z, не то и не другое, третье состояние, но у нас тут не квантовая физика, мы любим определенность. Так вот, такого состояния не должно быть!
Рассмотрим простейшие примеры как убрать это плохое, неопределенное соcтояния Z.
Подсоединим кнопку к одному из пинов, неважно к какому.
И вот тогда на пине при замыкании кнопки появится +5 вольт, все хорошо.
Или так, тогда на пине при замыкании кнопки будет земля, отлично.
Но! Провода помеченные стрелочками довольно длинные и выступаю в роли антенн ловя на себя электромагнитные помехи и на них формируется потенциал, но вот какой сказать никто не может, он не определен и постоянно меняется, ни то ни се - состояние Z
Для того что бы было определенное состояние присоединим провода к плюсу или к минусу и на проводах будет постоянство положительный или отрицательный заряд.
Вот так (внимание эти схемы не правильные не повторяйте их!)
Или так
Все хорошо на проводах сформировалось постоянный потенциал плюс или минус. В одном случае минимальные токи которые формируются из за наводок в проводе стекают в землю, на проводе, а значит и на пине появляется однозначно минус и это хорошо. В другом случае при подключении к плюсу полностью заглушаются, нивелируются большим потенциалом положительного напряжение и на проводе, а значит и на пине однозначно появляется напряжение, плюс, что есть хорошо.
Но посмотрим, что произойдет при замыкании кнопки - а произойдет короткое замыкание между минусом (землей ) и плюсом.
Не делайте так! Короткое замыкание хоть оно и короткое, но это плохо!
Что же сделать что бы его, этого короткого замыкания не было? Правильно, подключить сопротивление, что бы оно - сопротивлялось. Сопротивление подключим между землей и 5 вольтами. Тогда при замыкании кнопки сопротивление начнет, правильно, сопротивляется протеканию тока и ток пойдет по пути наименьшего сопротивления т. е. на пин.
Выглядеть это будет так
Или так
В первом случае мы подтянули к земле.
Во втором подтянули к питанию или стянули к питанию.
Какое же резистор выбрать, как рассчитать?
А расчёт ведется исходя из максимально протекающего тока через пин.
Например, для:
ESP это 12 мА (0,012А) по закону великого и ужасного Ома R=U/I; R=3.3/0.012=275 Om
Arduino Uno это 50 мА (0,05А)R=5/0.05=100 Om
В то же время, чтобы стягивающий или подтягивающий резистор, не оказывал влияния на остальные участки цепи при замыкании (эффект делителя напряжения), рекомендуется выбирать намного больший номинал 1 кОм-10 кОм.
Итак подтягивающий резистор должен быть в районе 1кОм-10 кОм.
Токоограничивающий резистор
Служит для защиты входа/выхода микроконтроллера по току
Сопротивление этого резистора таково, что падение напряжения на нем не влияет на напряжение на входе контроллера. Этот резистор и входной резистор микроконтроллера образуют делитель напряжения, следовательно, его значение может быть довольно большим. Для большинства входов можно использовать значения от 100 Ом и до 10 кОм.
Я использовал резистор от 200 Oм до 2 кОм
Подключаем этот резистор вот так
Общая схема будет такая
Или такая
Встроенные резисторы
Подтягивающие резисторы могут быть встроены в микроконтроллеры и называются они внутрисхемные подтягивающие резисторы
Программирование осуществляется следующим образом.
//двумя командами
pinMode(pin, INPUT); // настроить пин на ввод
digitalWrite(pin, HIGH); // включить подтягивающий резистор
// или одной командой
pinMode(pin,INPUT_PULLUP); // назначаем режим работы пина- вход с подтяжкой
Ардуино
Микроконтроллер Atmega имеет программируемые встроенные подтягивающие к питанию резисторы 20 кОм.
ESP8266
На самом (в самом) чипе подтягивающих резисторов нет
Они есть на отдельных модулях, например:
WeMos D1 Mini Pro
D3 и D4 подтянуты к плюсу, D8 стянут на минус
NODEMCU (на основе 12E)
Adafruit Feather Huzzah ESP8266
Подтягивающие резисторы GPIO: 0, 2, 4, 5, 12, 13, 14, 15