Во-первых, забудьте про резистор 100 Ом. Это не требуется для работы кнопки, оно просто для защиты на случай ошибки программирования.
- Если кнопка нажата, P2 будет напрямую подключен к +5 В, так что это будет выглядеть как высокий уровень, равный «1».
- Если кнопка отпущена, +5 В больше не считается, между портом и землей есть всего 10 кОм.
×
Теперь резистор 100 Ом. Если вы случайно сделали вывод вывода и установили его низким, то нажатие кнопки вызовет короткое замыкание: микроконтроллер установит 0 В на выводе, а переключатель +5 В на этом же выводе. Микроконтроллеру это не нравится, и микросхема может быть повреждена. В этих случаях резистор 100 Ом должен ограничивать ток до 50 мА. (Что все еще слишком много, резистор на 1 кОм был бы лучше.)
Поскольку на входной вывод не будет течь ток (кроме малой утечки), на резисторе вряд ли будет падение напряжения.
10 кОм является типичным значением для подъема или опускания. Более низкое значение даст вам еще меньшее падение напряжения, но 10 мВ или 1 мВ не имеют большого значения. Но есть кое-что еще: если нажать кнопку, на резисторе будет 5 В, поэтому будет течь ток 5 В / 10 кОм = 500 мкА. Это достаточно низко, чтобы не вызывать никаких проблем, и вы все равно не будете долго удерживать кнопку нажатой. Но вы можете заменить кнопку переключателем, который может быть закрыт в течение длительного времени. Тогда, если бы вы выбрали опускание 1 кОм, у вас было бы 5 мА через резистор, пока выключатель замкнут, и это немного напрасно. 10 кОм - это хорошее значение.
Обратите внимание, что вы можете перевернуть это вверх дном, чтобы получить подтягивающий резистор, и переключаться на землю при нажатии кнопки.
Это изменит вашу логику: нажатие кнопки даст вам «0» вместо «1», но работа такая же: нажатие кнопки сделает вход 0 В, если вы отпустите кнопку, резистор подключит вход до уровня +5 В (с незначительным падением напряжения).
Это обычно так, и производители микроконтроллеров учитывают это: большинство микроконтроллеров имеют внутренние подтягивающие резисторы, которые вы можете активировать или деактивировать в программном обеспечении. Если вы используете внутреннее подтягивание, вам нужно только подключить кнопку к заземлению, вот и все. (Некоторые микроконтроллеры также имеют настраиваемые раскрывающиеся списки, но они встречаются гораздо реже.)