В этой статье мы поговорим о резисторах. Подтягивающем (стягивающем) резисторе и о токоограничивающем резисторе. Зачем они нужны, для чего используются, почему нам все это надо и конечно, что со всем этим делать. Статья как всегда для "чайников", для тех кто хочет разобраться со всем этим и понять зачем, почему именно так и вообще как это все работает. Написано простыми словами для непрофессионалов и не так как в учебниках.
Подтягивающий (стягивающий) резистор — резистор, включённый между проводником, по которому распространяется электрический сигнал, и питанием или землей.
Обычно говорят подтягивающий резистор для всех случаев, слово стягивающий резистор употребляется мало.
Бывают
- подтягивающий (подтягивающий вверх, подтягивающий к питанию, pull-up resistor)
- стягивающий (подтягивающий вниз, подтягивающий к земле, pull-down resistor)
Сейчас, да и раньше то же, активно используется цифровая техника, а техника на то и цифровая, что бы любить цифру. А их у техники всего две 0 и 1, ноль и один, высокий и низкий уровни, HIGH или LOW, есть сигнал, нет сигнала, белое и черное, холодное и горячее, доброе и злое, тьфу не туда понесло. Так в мире цифры принято, там все просто и дискретно, но как всегда, вмешивается во все это подлый, реальный мир. И появляется не то и не другое, состояние неопределенности, третье состояние. Провод свободно висящий в воздухе ловит электромагнитные помехи, в него попадают лучи из глубин космоса и так далее и тому подобное и на нем хаотически то появляются, то пропадают различные потенциалы. Формируется неопределённое состояние то плюс то минус, то высокий потенциал то низкий, не то и не сё, непонятное состояние, но у нас тут не квантовая физика, мы любим определенность. Так вот, такого состояния не должно быть! А давайте его отключим вовсе? Но тогда разорвётся наша цепь, ток перестанет протекать и все перестанет работать. Но на самом деле в больших схемах так и делают просто отключают участки цепи и такое состояние называют состояние-Z.
Состояние - Z это высокоимпедансное состояние или высокоомное состояние, или состояние «Выключено» Или другими словами это отключенный проводник. А отключают его для того что бы не было короткого замыкания, что бы на линию (проводник) не подавался одновременно сигнал и "0" и "1" и собственно, что бы и не было этого короткого Zамыкания (Z). Кстати, это состояние "ничего" или "выключено" используют много где, ну например, в кодировки для RF пультов, кодировка Tri-State, в понятие шины (USB, SPI, IIP) реализуется это через транзистор который работает как ключ (открыт, закрыт). Это было отступление, а мы перейдем дальше и рассмотрим простейшие примеры как убрать это плохое, неопределенное соcтояния.
Подсоединим кнопку к одному из пинов, неважно к какому.
И вот тогда на пине при замыкании кнопки появится +5 вольт, все хорошо.
Или так, тогда на пине при замыкании кнопки будет земля, отлично.
Но! Провода помеченные стрелочками довольно длинные и выступаю в роли антенн ловя на себя электромагнитные помехи и на них формируется потенциал, но вот какой сказать никто не может, он не определен и постоянно меняется, ни то ни се.
Для того что бы было определенное состояние, присоединим провода к плюсу или к минусу и на проводах будет постоянство положительный или отрицательный заряд.
Вот так (внимание эти схемы не правильные, не повторяйте их!)
Или так
Все хорошо на проводах сформировалось постоянный потенциал плюс или минус.
В одном случае минимальные токи которые формируются из за наводок в проводе стекают в землю, на проводе, а значит и на пине появляется однозначно минус и это хорошо.
В другом случае при подключении к плюсу полностью заглушаются, нивелируются большим потенциалом положительного напряжение и на проводе, а значит и на пине однозначно появляется напряжение, плюс, что есть хорошо.
Но посмотрим, что произойдет при замыкании кнопки - а произойдет короткое замыкание между минусом (землей ) и плюсом.
Не делайте так! Короткое замыкание хоть оно и короткое, но это плохо!
Что же сделать что бы его, этого короткого замыкания не было?
Можно отключить участок схемы ну например через реле или транзистор (см. выше Z-состояние) или подключить сопротивление, что бы оно - сопротивлялось. Сопротивление подключим между землей и 5 вольтами. Тогда при замыкании кнопки сопротивление начнет, правильно, сопротивляется протеканию тока и ток пойдет по пути наименьшего сопротивления т. е. на пин.
Выглядеть это будет так:
I. Подтягивающий вниз или подтягивающий к земле резистор или стягивающий резистор к земле (pull-down resistor)
Или так
Подтягивающий резистор вверх или подтягивающий резистор к питанию (pull-up resistor)
Итак:
В первом случае мы подтянули к земле.
- I. Подтягивающий вниз или подтягивающий к земле резистор или стягивающий резистор к земле (pull-down resistor)
- II. Подтягивающий резистор вверх или подтягивающий резистор к питанию (pull-up resistor)
Какое же резистор выбрать, как его рассчитать?
Резистор должен обладать некоторыми требованиями, такими как:
- Его сопротивление должно быть не очень низким (единицы Ом), при замкнутой цепи "ток потечет и на землю" в конечном итоге при замкнутой кнопке произойдет короткое замыкание.
- Его сопротивление должно быть не очень высоким (МОм), в конечном итоге это будет эквивалентно разрыву цепи и смысл всей затеи пропадает.
Формулы для расчета.
Расчет минимального сопротивления резистора
Формулы для расчета будут несколько различается (но по сути одно и то же):
- Для подтягивающего вверх к питанию pull-up резистора
Rpull-up = (Vпит – Vвыс(min)) / Iпотр
Где:
- Vпит – это напряжение питания.
- Vвыс(min) – это минимальное допустимое напряжение логического уровня.
- Iпотр – максимальный ток, потребляемый цифровым выводом.
- Для подтягивающего вниз к земле pull-down резистору
Rpull-up = (Vниз(max) – 0) / Iотд
Где:
- Vниз(max) – максимальное напряжение логического уровня.
- Iотд – максимальный ток, отдаваемый цифровым выводом.
Как узнать максимальное и минимальное напряжение логического уровня? А для Вас у меня есть целая статья, которой я очень горжусь: "Логические уровни или где заканчивается ноль и начинается единица."
Рассчитаем для ESP Vвыс(min) возьмём 3 вольта, из статьи выше.
Максимально протекающий ток через пин для:
- ESP это 12 мА (0,012А)
- Arduino Uno это 50 мА (0,05А)
Rpull-up = (3.3-3)/ 0,012 = 25R - 25 Ом, очень мало получается!
Максимальное сопротивление резистора.
Определяется по емкости шины конкретного устройства и больше относится к нарастанию и спаду фронта импульса.
Rp = 1µs/Cb где:
1µs – время нарастания сигнала для стандартного сигнала;
Cb – емкость шины – 20 пФ.
Из этой формулы у меня получился R=1МОм.
Итак исходя из выше приведенных расчетов резистор может быть в пределах от 25RОм до1МОм, что является довольно большим разбросом. Если кто укажет на ошибки или может предложит другие расчеты резисторов с радостью его послушаю и дополню статью.
Из практики я знаю подтягивающий резистор должен быть в районе 1кОм-10 кОм и пользуюсь этими значениями
Подтягивающий резистор должен быть в районе 1кОм-10 кОм
Токоограничивающий резистор
Служит для защиты входа/выхода микроконтроллера по току. Сопротивление этого резистора таково, что падение напряжения на нем не влияет на напряжение на входе контроллера. Этот резистор и входной резистор микроконтроллера образуют делитель напряжения, следовательно, его значение может быть довольно большим. Для большинства входов можно использовать значения от 100 Ом и до 10 кОм. Про расчёте помним о максимально протекающем токе через PIN, например, для:
- 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
Я использовал резистор от 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
Ну вот на сегодня все, но как всегда...
Продолжение следует...
Подписывайтесь на мой канал TehnoZet-2, там много интересного! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх!
Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"
Статьи по теме
Исполнительные устройства
- Подключаем кнопку и светодиод и настраиваем их в прошивке ESP Easy
- Адресная светодиодная лента из Леруа
Про кнопки
- Подключаем кнопку и светодиод и настраиваем их в прошивке ESP Easy
Другое
- Оптрон строение, назначение, подключение к ESP8266
Тэги
#простоосложном
#длямаленьких
#щасспаяю
#подключаемся