В своем стремлении понять электротехнику я наткнулся на этот урок:
http://www.ladyada.net/learn/arduino/lesson5.html
Я понял схемы, пока не добрался до переключателей. Я не уверен, как переключатели работают на макете или диаграммах. Это конкретный вопрос, о котором я думаю (это резистор понижающего напряжения):
Реализация:
Основываясь на диаграмме, я думаю, что происходит: питание переключателя, если кнопка нажата, то цепь не завершена. Если кнопка нажата, ток идет по пути наименьшего сопротивления к контакту 2, потому что он имеет большее напряжение (100 Ом <10 кОм).
То, как это описано в руководстве, звучит так, как когда кнопка нажата, цепь все еще завершена, но резистор на 10 кОм подает питание на землю. Я не уверен, как или почему, если и 10 кОм, и 100 Ом получают одинаковый ток, ток будет притягиваться к земле через более высокое сопротивление, чем при разомкнутом контакте 2.
Ответы:
Во-первых, забудьте про резистор 100 Ом. Это не требуется для работы кнопки, оно просто для защиты на случай ошибки программирования.
Теперь резистор 100 Ом. Если вы случайно сделали вывод вывода и установили его низким, то нажатие кнопки вызовет короткое замыкание: микроконтроллер установит 0 В на выводе, а переключатель +5 В на этом же выводе. Микроконтроллеру это не нравится, и микросхема может быть повреждена. В этих случаях резистор 100 Ом должен ограничивать ток до 50 мА. (Что все еще слишком много, резистор на 1 кОм был бы лучше.)
Поскольку на входной вывод не будет течь ток (кроме малой утечки), на резисторе вряд ли будет падение напряжения.
10 кОм является типичным значением для подъема или опускания. Более низкое значение даст вам еще меньшее падение напряжения, но 10 мВ или 1 мВ не имеют большого значения. Но есть кое-что еще: если нажать кнопку, на резисторе будет 5 В, поэтому будет течь ток 5 В / 10 кОм = 500 мкА. Это достаточно низко, чтобы не вызывать никаких проблем, и вы все равно не будете долго удерживать кнопку нажатой. Но вы можете заменить кнопку переключателем, который может быть закрыт в течение длительного времени. Тогда, если бы вы выбрали опускание 1 кОм, у вас было бы 5 мА через резистор, пока выключатель замкнут, и это немного напрасно. 10 кОм - это хорошее значение.
Обратите внимание, что вы можете перевернуть это вверх дном, чтобы получить подтягивающий резистор, и переключаться на землю при нажатии кнопки.
Это изменит вашу логику: нажатие кнопки даст вам «0» вместо «1», но работа такая же: нажатие кнопки сделает вход 0 В, если вы отпустите кнопку, резистор подключит вход до уровня +5 В (с незначительным падением напряжения).
Это обычно так, и производители микроконтроллеров учитывают это: большинство микроконтроллеров имеют внутренние подтягивающие резисторы, которые вы можете активировать или деактивировать в программном обеспечении. Если вы используете внутреннее подтягивание, вам нужно только подключить кнопку к заземлению, вот и все. (Некоторые микроконтроллеры также имеют настраиваемые раскрывающиеся списки, но они встречаются гораздо реже.)
источник
Обратите внимание, что коммутатор не является необычным устройством, которое потребляет энергию и создает некоторый выходной сигнал - вместо этого думайте о нем как о проводе, который вы просто добавляете или удаляете из цепи, нажимая кнопку.
Если выключатель отключен (не нажат), единственный возможный путь для тока -
P2
через оба резистора на землю. Таким образом, микроконтроллер будет читать НИЗКИЙ.Если переключатель подключен (нажат):
Ток проходит от источника питания через выключатель
Некоторый ток проходит через резистор 100 Ом до
P2
. Микроконтроллер будет читать HIGH.Небольшое количество тока будет протекать через резистор 10 кОм на землю. Это в основном потраченная впустую власть.
Обратите внимание, что резистор 100 Ом предназначен для ограничения максимального входного тока
P2
. Обычно он не включен в схему, подобную этой, потому чтоP2
вход микроконтроллера уже имеет высокое сопротивление и не будет потреблять большой ток. Тем не менее, включение резистора 100 Ом полезно в том случае, если в вашем программном обеспечении есть ошибка или логическая ошибка, которая заставляет егоP2
вместо этого пытаться использовать его в качестве выхода. В этом случае, если микроконтроллер пытается перейти наP2
низкий уровень, но переключатель замкнут и подключен к высокому уровню, вы, возможно, повредите контакт микроконтроллера. В целях безопасности резистор 100 Ом будет ограничивать максимальный ток в этом случае.источник
Когда вы нажимаете кнопку, вы помещаете логический высокий уровень (+5 В) на вход. Но если вы опустите резистор и кнопка отпустится, то входной контакт будет просто плавающим, что в HCMOS означает, что уровень не определен. Это то, что вы не хотите, поэтому вы подтягиваете вход на землю с помощью резистора. Резистор необходим, потому что в противном случае нажатие кнопки вызовет короткое замыкание.
Вход имеет высокий импеданс, что означает, что через него вряд ли будет течь ток. Нулевой ток через резистор означает нулевое напряжение на нем (закон Ома), поэтому 0 В на одной стороне также будет 0 В (или очень близко) на входном выводе.
Это один из способов подключения кнопки, но вы также можете поменять местами резистор и кнопку, чтобы резистор перешел на +5 В, а кнопка на землю. Затем логика инвертируется: нажатие кнопки приведет к низкому уровню на входном контакте. Это часто делается, однако, потому что большинство микроконтроллеров имеют встроенные подтягивающие резисторы, так что вам нужна только кнопка, тогда внешний резистор можно опустить. Обратите внимание, что вам, возможно, придется включить внутреннее подтягивание.
Смотрите также этот ответ .
источник
Резистор на 10 кОм называется понижающим резистором, потому что, когда «зеленый» узел (при подключении резисторов на 100 Ом и 10 кОм) не подключен к + 5 В переключателем, этот узел притягивается к земле (при условии низкого тока через эту ветвь очевидно). Когда переключатель замкнут, этот узел получает потенциал + 5В.
Это используется для управления входами логических микросхем (И-вентилей, ИЛИ-вентилей и т. Д.), Поскольку эти схемы будут работать беспорядочно, если на их входах нет определенного значения (значение 0 или 1). Если вы оставите вход логического вентиля плавающим, выход не может быть надежно определен, поэтому рекомендуется всегда применять определенный вход (снова 0 или 1) к входу вентиля. В этом случае P2 будет входом для конкретного логического элемента, и когда переключатель разомкнут, он имеет входное значение 0 (GND); когда переключатель замкнут, он имеет входное значение 1 (+ 5 В).
источник
Я не уверен, откуда берется это общее заблуждение, но оно действительно неверно, поскольку оно прямо противоречит закону Ома. Ток проходит все возможные пути , обратно пропорциональные их сопротивлению. Если вы подаете 5 В на резистор 10 кОм, через него будет протекать 0,5 мА, независимо от того, сколько альтернативных каналов (низкое сопротивление или другое) вы предоставите.
Кстати, этот путь через резистор 100 Ом не обязательно является «наименьшим сопротивлением», поскольку резистор не подключен к земле . Обычно вы подключаете этот резистор к входу MCU с импедансом> 10 МОм, что делает резистор 10 кОм траекторией наименьшего сопротивления.
источник
Причина, по которой требуется понижающий резистор, заключается в том, что микроконтроллер является CMOS-устройством и, таким образом, входной вывод в конечном итоге является затвором MOSFET.
Если ваша кнопка управляет лампой, светодиодом или реле, вам не понадобится понижающий резистор, потому что разомкнутая цепь будет «выключена». Когда кнопка отпущена, лампочка выключится, потому что ток не будет течь.
Если бы ваше устройство представляло собой настоящую часть TTL, как и оригинальные логические микросхемы серии 7400, вам не понадобился бы понижающий резистор, потому что эти входы были бы биполярными транзисторами, и когда кнопка была отпущена, ток не проходил бы через переход база-эмиттер, и вход был бы «выключено».
Напротив, вход вашего микроконтроллера представляет собой затвор MOSFET, который действует как конденсатор. Когда напряжение на затворе достаточно высокое, вход «включен». Это происходит, когда вы нажимаете кнопку и ток протекает через резистор 100R в микроконтроллер. Затвор заряжается (очень быстро), как конденсатор, и вход становится «включенным». Что происходит, когда вы отпускаете кнопку? Нет больше текущих потоков. Но что это значит для ввода? Если нет понижающего резистора, заряд на затворе некуда девать. Напряжение будет просто находиться около 5 В, а вход по-прежнему будет включен. Понижающий резистор истощает заряд затвора, поэтому его напряжение падает ниже уровня «включено». Это то, что вы хотите, чтобы цифровой вход считался выключенным.
Вы можете поэкспериментировать с этим, подключив две кнопки к входному контакту. Привяжите один к 5V и один к земле. Когда вы нажимаете кнопку 5V, вход включается. Когда вы отпустите его, он останется включенным, пока вы не нажмете тот, который подключен к GND.
источник