В учебнике Arduino Digital Read Serial вы найдете простую кнопку. Мои вопросы сосредоточены вокруг резистора.
Зачем нужен резистор?
Я думаю, что понимаю это, но поправьте меня, если я ошибаюсь. Чтобы входной контакт считывал низкий сигнал и не плавал, мы должны подключить контакт к земле, когда кнопка не нажата. Когда кнопка будет нажата, у нас будет сигнал 5 В, поступающий как на контакт, так и на землю. Закон напряжения Кирхгофа гласит, что полное напряжение в замкнутом контуре должно равняться нулю, поэтому нам приходится иметь дело с этим 5 В, которое течет прямо на землю. Вот почему мы помещаем резистор между кнопкой и землей.
Как было выбрано значение резистора?
Это то, что мне неясно. Закон Ома гласит, что ...
resistance = voltage / current
Это источник питания 5 В, и спецификация Arduino Uno гласит, что этот вывод обеспечивает 40 мА постоянного тока. Так..
resistance = 5V / 0.04A = 125 Ohms
В последовательном цифровом чтении учебника, почему у нас резистор 10K Ома? Это слишком излишне, верно? Что приводит к другому вопросу: можете ли вы когда-нибудь создать слишком большое сопротивление, если ваша единственная цель - стереть напряжение?
Заранее спасибо за любые отзывы!
источник
Входы Arduino имеют очень высокое сопротивление. Datasheed Atmega328 говорит 100 МОм для АЦП. Такие высокие значения хороши, но также имеют недостаток для борьбы с паразитными эффектами (сопротивление, индуктивность, емкость). Такие эффекты также могут быть использованы в качестве емкостных датчиков .
Резистор должен иметь произвольное значение, которое меньше входного сопротивления. 10k и выше хороши для отключения утечки на входе.
Однако вы также можете пропустить резистор при использовании внутренних подтягивающих резисторов. В этом случае вы имеете дело с негативной логикой:
На контакте 3 вы будете измерять,
HIGH
и кнопка должна быть подключена к контакту и заземлению. Внутренний подтягивающий резистор I / 0 имеет значение 50 кОм.источник
Вы уже получили пару хороших ответов о том, зачем нужен понижающий резистор.
Подводя итог, вам необходимо подключить вход к земле, чтобы предотвратить случайное плавное поступление входа между высоким и низким значениями. Вы используете резистор, чтобы при замыкании переключателя не создавать короткого замыкания между источником + 5 В и землей.
Другой момент, хотя. Входы Arduino включают дополнительный внутренний, управляемый программным обеспечением подтягивающий резистор. Если вы сначала настроили вывод в качестве входа, а затем записали значение HIGH в этот порт, он активирует подтягивающий резистор. Это приводит к тому, что вывод отображается как ВЫСОКИЙ, когда к нему ничего не подключено.
Затем вы можете подключить ваш переключатель к земле вместо + 5V. Затем вам нужно изменить логику кода, чтобы обработать значение HIGH как не нажатое, а значение LOW - как нажатое. Это позволяет немного упростить проводку, поскольку вам не нужен внешний резистор.
источник