Как узнать сопротивление внутреннего подтягивающего резистора?

У меня есть плата SparkFun ESP8266 Thing Dev, к которой я хочу выполнить digitalRead() на одном из портов GPIO. Я использую D15 и настраиваю его для ввода вот так

pinMode(15, INPUT_PULLUP);

Кажется, он работает так, как задумано, и я могу отключить его, подключив к земле через резистор сопротивлением 4,7 кОм.

Но как мне узнать, какой на самом деле будет «правильный» резистор? Я не могу найти в Интернете характеристики внутреннего подтягивающего резистора. Кстати, сначала я попробовал использовать D0, но, похоже, у него не было внутреннего подтягивающего резистора, поскольку даже использование INPUT_PULLUP не включило его.

Возможно, в Интернете есть спецификации, и я просто не могу их найти, но есть ли другой способ (измерить?) узнать, какие контакты будут работать с INPUT_PULLUP, и если да, то какой их внутреннее сопротивление?

, 👍2

Обсуждение

Что заставляет вас думать, что вам вообще нужен резистор?, @Majenko

Однако вы можете найти это поучительным: https://majko.co.uk/blog/measuring-arduino-internal-pull-resistors., @Majenko

Внутренний подтягивающий резистор дает выводу определенное входное значение (ВЫСОКИЙ), только если он плавающий. Если контакт подключен к земле, то на нем будет отображаться НИЗКИЙ уровень, независимо от того, используется подтягивающий резистор или нет., @gandalf61

@ gandalf61 Разве это не будет зависеть от соотношения между подтягивающим и понижающим резисторами? Конечно, если он подключен напрямую к земле, то он определенно будет низким..., @Magnus W

@Majko Хм... безопасно ли подключать вход GPIO напрямую к +5 В или земле, без какого-либо резистора? Не будет ли он потреблять неоправданно высокий ток и/или не приведет ли к повреждению чего-либо в устройстве?, @Magnus W

D0 — это io 16. у него есть внутреннее понижение. Я знаю это из онлайн-документации пакета Arduino esp8266., @Juraj

@Маженко Думаю, я немного беспокоился о подключении чего-либо непосредственно к контактам, поскольку некоторые из них, похоже, используются для разных целей, а некоторые (по крайней мере, внутренний светодиод, D5), кажется, инвертированы (установлено значение HIGH светодиод погаснет, а LOW включит его)... на обычном Arduino все кажется более простым., @Magnus W

Вы можете нанести ущерб только в том случае, если штифт установлен на выход. При вводе ничего не повредится. Обычно на всякий случай добавляют очень маленький (около 100 Ом) резистор последовательно с выходом, чтобы защитить его., @Majenko

@Juraj Хм, под «D0» я имею в виду контакт с меткой «0» на плате, который на изображении с обзором контактов от SparkFun обозначен как «0» и «D0». Откуда именно вы взяли «16»? В любом случае, я не могу заставить этот вывод работать должным образом, возможно, это потому, что в документации написано, что он «Используется при сбросе»..., @Magnus W

верно, io 0 — это контакт конфигурации загрузки. на плате должно быть внешнее подтягивающее устройство (NodeMcu и Wemos/Lolin имеют контакты с маркировкой Dx. Вы меня перепутали с D), @Juraj

@MagnusW напрямую к +5 В на ESP8266, я бы ограничил это до +3,3 В - насколько бы я ни читал, что GPIO "толерантны к 5 В", я бы придерживался 3,3 В., @Jaromanda X


2 ответа


Лучший ответ:

1

io 0 и io 15 относятся к контактам конфигурации загрузки io 2 esp8266. Платы разработки esp8266 имеют внешнее подтягивание на io 0 и io 2 и понижение на io 15.

,

Спасибо. Где я могу найти эту информацию? В [Руководстве по подключению](https://learn.sparkfun.com/tutorials/esp8266-thing-development-board-hookup-guide/all), которое я обнаружил, мало что говорится о контактах 0, 4 и 15... и собственные примеры SparkFuns, похоже, в основном используют контакт 12 как INPUT_PULLUP, и это единственный контакт, с которым я могу работать., @Magnus W

лучший источник — сайт Espressif (esp8266_hardware_design_guidelines_en.pdf). но информация о загрузочных контактах есть на многих веб-страницах, посвященных esp8266., @Juraj

Хм, теперь я чувствую себя немного глупо... когда я говорю «pinMode(12, INPUT)» — относится ли «12» к GPIO12 или к «контакту 12», который в [Espressif Hardware Design Guidelines]( https://www.espressif.com/sites/default/files/documentation/esp8266_hardware_design_guidelines_en.pdf) означает GPIO13? Ситуация становится еще более запутанной, когда [рекомендация по контактам SparkFun](https://cdn.sparkfun.com/assets/learn_tutorials/4/4/5/esp8266-thing-pinout.png) называет контакт 12 D12... Что из всего этого меня действительно интересует при вызове pinMode()??, @Magnus W

в Sparkfun Thing метки и номера контактов (даже если с префиксом D) соответствуют номерам gpio, используемым Espressif. (Платы NodeMcu и Wemos/Lolin имеют константы и метки Dx), @Juraj


0

"Сопротивление внутреннего (встроенного) подтягивающего резистора находится в диапазоне от 30 до 100 кОм."

Источник: https://bbs.espressif.com/viewtopic.php?t=1079#p4097

,

вы прочитали принятый ответ?, @Juraj