Как узнать сопротивление внутреннего подтягивающего резистора?
У меня есть плата SparkFun ESP8266 Thing Dev, к которой я хочу выполнить digitalRead()
на одном из портов GPIO. Я использую D15
и настраиваю его для ввода вот так
pinMode(15, INPUT_PULLUP);
Кажется, он работает так, как задумано, и я могу отключить его, подключив к земле через резистор сопротивлением 4,7 кОм.
Но как мне узнать, какой на самом деле будет «правильный» резистор? Я не могу найти в Интернете характеристики внутреннего подтягивающего резистора. Кстати, сначала я попробовал использовать D0
, но, похоже, у него не было внутреннего подтягивающего резистора, поскольку даже использование INPUT_PULLUP
не включило его.
Возможно, в Интернете есть спецификации, и я просто не могу их найти, но есть ли другой способ (измерить?) узнать, какие контакты будут работать с INPUT_PULLUP
, и если да, то какой их внутреннее сопротивление?
@Magnus W, 👍2
Обсуждение2 ответа
Лучший ответ:
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
"Сопротивление внутреннего (встроенного) подтягивающего резистора находится в диапазоне от 30 до 100 кОм."
Источник: https://bbs.espressif.com/viewtopic.php?t=1079#p4097
вы прочитали принятый ответ?, @Juraj
- Как изменить вывод VCC на 3,3В на 5V Arduino Pro Micro?
- WS2812 — сначала белые, а затем ближе к концу становятся красными/желтыми/оранжевыми.
- Минимальное значение I2C-подтягивающий резистор для arduino
- Как определить, какой номинал резистора использовать для светодиодной ленты
- digitalRead не читает входной контакт ESP8266-01
- Пытаюсь прошить ESP8266 с помощью Arduino UNO
- Несколько подчиненных устройств I2C на Arduino — Pull-up значения
- Как избежать электромагнитных помех на входе ESP32
Что заставляет вас думать, что вам вообще нужен резистор?, @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