INPUT_PULLUP для кнопок

Jake
Offline
Зарегистрирован: 07.02.2019

Читаю, смотрю видео-уроки, но не очень понимаю INPUT_PULLUP: Когда он включен (pinMode(BUTTON_PIN, INPUT_PULLUP);), то внутри ардуино этот пин уже подключен к GND через внутренний резистор, правильно я понимаю?

И почему INPUT_PULLUP не пользуют в серьёзных проектах, вроде как? Неужели лучше обвешаться соплями-резисторами, так сказать?

 

Расскажите об INPUT_PULLUP что-нибудь для лучшего понимания, пожалуйста.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Jake пишет:

уже подключен к GND через внутренний резистор, правильно я понимаю?

к питанию он подключен, а внешний резистор для надежности еще припаивают параллельно внутреннему фактически. говорят внутрение иногда умирают.

 

https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%82%D1%8F%D0%B3%D0%B8...

Jake
Offline
Зарегистрирован: 07.02.2019

andycat пишет:
к питанию он подключен

Т.е. вот так, получается?

 

andycat пишет:
а внешний резистор для надежности еще припаивают параллельно внутреннему фактически. говорят внутрение иногда умирают.
Интересно, поясните, пожалуйста:

1) Насколько это реально повышает надёжность (как часто умирают внутренние)?

2) Какие именно внешние резисторы используют?

3) Куда (на схеме выше, если она верна) припаивают внешние, чтобы паралельно внутренним получилось?

4) Если внутренний умер (а внешнего нет), то что тогда происходит с устройством? пин тоже выгорает или просто перестаёт реагировать на кнопку?

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017
negavoid
Offline
Зарегистрирован: 09.07.2016

1) как повезёт, у меня не происходило ни разу за 5 лет

2) 5к-10к - 50к - 100к, на 0.125/0.25 Вт

3) между PIN и PIN +5V

4) Пин переходит в Hi-Z state и на нём начинает рандомно скакать напряжение. Кнопка может начать "нажиматься" сама по себе, поднесли девайс поближе к розетке - отжалась, отдалили - "самонажалась". А может и не начать, смотря какая около девайса электромагнитная обстановка.

Jake
Offline
Зарегистрирован: 07.02.2019

andycat, negavoid, спасибо, интересно, кое-что из этого я уже читал - остальное скоро прочитаю.

Но вкратце скажите, пожалуйста, моя схема верна или где-то ошибка?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Где-то ошибка

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ты ее не видишь, мы ее не видим, а она есть...   :-)

negavoid
Offline
Зарегистрирован: 09.07.2016

вкратце схема верна :)

rygoravich
Offline
Зарегистрирован: 04.05.2016

Jake пишет:

1) Насколько это реально повышает надёжность (как часто умирают внутренние)?

Насколько я понимаю, это из области легенд - у кого-то однажды умер встроенный резистор, он эту инфу распространил - и с тех пор часть народа стала ставить внешние... А по факту - именно для такого применения и реализованы в МК внутренние подтягивающие резисторы. Лично я считаю внешние ненужным усложнением схемы - если некуда резисторы девать, то лучше подвесить последовательно кнопке - это хотя бы защищает от ошибок при программировании - без этого если случайно перепутать, настроить пин на вывод и подать плюс - то нажатие кнопки уничтожит порт. Но это уже от внимательности и аккуратности зависит. Разумеется, для такого применения надо номинал пониже брать - например, 1K.

Ну и еще следует учитывать, что требования к надежности разные бывают - одно дело, когда кнопка включает/выключает светодиод, другое - когда перемещает стержни замедлителей нейтронов в ядерном реакторе. Сами понимаете, в последнем случае все следует делать максимально надежно, все системы дублировать многократно.

Jake
Offline
Зарегистрирован: 07.02.2019

Прочитал все вышеприведённые статьи - спасибо! Теперь с INPUT_PULLUP понятно.

Но стало не понятно с INPUT: почему внутренний резистор сам сразу не включается при объявлении пина на вход? Неужели смысл этого только в том, что кто-то может захотеть использовать более сильный резистор (внешний, соответственно) и/или подтягивать непременно на землю, а не на питание (как это сделано в МК ардуины)??

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Jake, надежность понимается в несколько другом смысле.

Чем ниже сопротивление, тем выше помехоустойчивость, но одновременно увеличивается энергопоребление и нагрев. 

Встроенные резисторы 20к-50к, их хватает, если кнопка расположена рядом с контроллером. А вот если кнопка вынесена на десятки см или метры, лучше поставить внешний резистор поменьше - от сотен Ом до кОма. А то и зашунтировать его еще конденсатором.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Jake пишет:
Но стало не понятно с INPUT: почему внутренний резистор сам сразу не включается при объявлении пина на вход? Неужели смысл этого только в том, что кто-то может захотеть использовать более сильный резистор (внешний, соответственно) и/или подтягивать непременно на землю, а не на питание (как это сделано в МК ардуины)??

Очень часто надо притягивать к земле. И не всегда на вход только кнопки подключают. И тогода вообще никаких резисторов может не требоваться.

sadman41
Offline
Зарегистрирован: 19.10.2016

Они ещё (унутре которые), пишут, слишком большого номинала . Могут не перетянуть помеху в полевых условиях.

Jake
Offline
Зарегистрирован: 07.02.2019

asam пишет:

Jake пишет:
Но стало не понятно с INPUT: почему внутренний резистор сам сразу не включается при объявлении пина на вход? Неужели смысл этого только в том, что кто-то может захотеть использовать более сильный резистор (внешний, соответственно) и/или подтягивать непременно на землю, а не на питание (как это сделано в МК ардуины)??

Очень часто надо притягивать к земле. И не всегда на вход только кнопки подключают. И тогода вообще никаких резисторов может не требоваться.

Приведите по примеру к каждой из ситуаций (когда к земле, когда не кнопку), пожалуйста - так мне будет понятнее

Jake
Offline
Зарегистрирован: 07.02.2019

sadman41 пишет:

Они ещё (унутре которые), пишут, слишком большого номинала . Могут не перетянуть помеху в полевых условиях.

Но внешние ведь можно спокойно подключать вдобавок к внутренним, правильно?

sadman41
Offline
Зарегистрирован: 19.10.2016

Jake пишет:

sadman41 пишет:

Они ещё (унутре которые), пишут, слишком большого номинала . Могут не перетянуть помеху в полевых условиях.

Но внешние ведь можно спокойно подключать вдобавок к внутренним, правильно?

Несомненно. Однако нужно правильно рассчитать их номинал, как минимум. А если уж будете ставить дополнительные, то нужны ли внутренние - вопрос исключительно персональных пристрастий.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sadman41 пишет:

А если уж будете ставить дополнительные, то нужны ли внутренние - вопрос исключительно персональных пристрастий.

Ну да: INPUT_PULLUP и внешний 1 кОм к земле.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Внутрений резистор умирает вместе с кристаллом микросхемы. Только так и не иначе.

Jake
Offline
Зарегистрирован: 07.02.2019

Понятно, спасибо.

Цитата:
Очень часто надо притягивать к земле. И не всегда на вход только кнопки подключают.
Так может кто-нибудь привести по примеру к каждой из ситуаций (когда к земле, когда не кнопку), пожалуйста?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Jake пишет:
Так может кто-нибудь привести по примеру к каждой из ситуаций (когда к земле, когда не кнопку), пожалуйста?

Да легко . Например коллектор транзистора или выход с открытым коллектором. Если Вы знаете что это такое. ;))