Использует ли подтягивающий резистор меньше энергии батареи, чем подтягивающий резистор?

Я разрабатываю схему, подключенную к простому датчику открытия-закрытия, например к выключателю. Для простоты конструкции схема с переключателем датчика замыкается на землю и использует подтягивающий резистор 1 МОм к Vcc для подачи сигнала HIGH, когда переключатель разомкнут.

Я понимаю, что питание подается все время, пока переключатель разомкнут, что может (а может и не) разрядить батарею. Было бы более эффективно использовать подтягивающий резистор для заземления и разомкнуть переключатель на Vcc?

Кроме того, должен ли быть резистор на соединении с Vcc? Либо уменьшить ток (сохранить заряд батареи), либо предотвратить повреждение ATmega328?

Спасибо!

, 👍0


3 ответа


2

Входной ток не зависит от уровня контакта. Взгляните на это обсуждение от avrfreaks. Входное сопротивление цифрового контакта чрезвычайно велико. Упомянутый ток утечки Atmega328P (здесь в качестве примера микросхемы) составляет 1 мкА для обоих состояний контактов. Таким образом, с обычной точки зрения этот поток неизбежен и им можно пренебречь.

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

Поэтому не имеет значения, подтягиваете вы или опускаете. Основное потребление тока будет происходить в моменты, когда переключатель активирован, так как тогда ток течет через подтягивающий/подтягивающий резистор к земле.

Кроме того, должен ли быть резистор на соединении с Vcc?

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

,

Подтягивающий или подтягивающий резистор вызывает протекание тока в дополнение к току, которым можно пренебречь, на входной контакт. и уровень напряжения имеет значение, конечно., @DataFiddler

Дополнительный ток протекает только в том случае, если переключатель активирован, то есть с подтягивающим резистором, когда переключатель соединяет контакт с землей. В противном случае у вас есть последовательное сопротивление подтягивания плюс входное сопротивление, которым также можно пренебречь. Обычно подтягивающий резистор для переключателя достаточно велик, так что током также можно пренебречь., @chrisl


2

Я понимаю, что питание подается все время, пока переключатель разомкнут, что может (а может и не) разрядить батарею.

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

Кроме того, должен ли быть резистор на соединении с Vcc? Либо уменьшить ток (сохранить заряд батареи), либо предотвратить повреждение ATmega328?

Абсолютно нет. Текущая ничья MCU не статична. Это означает, что ток через такой резистор не будет статичным, и поэтому падение напряжения на этом резисторе также будет колебаться — это означает, что если потребляемый ток превысит определенную точку, микросхема будет испытывать недостаток энергии и «погаснет».

Резистор нужен только для ограничения тока, если у вас есть устройство, которое не может контролировать ток само по себе, например светодиод или другое «нелинейное» устройство.

,

Спасибо. Означает ли это, что [учебник по кнопкам](https://www.arduino.cc/en/tutorial/pushbutton) на официальном сайте Arduino неверен в том, что между Vcc и входным контактом установлен резистор?, @dotancohen

@dotancohen Нет, потому что это подтягивающий резистор. Вы говорите о резисторе между источником питания и контактом VCC (я полагаю), который полностью отличается от того, что есть в этом руководстве., @Majenko

А, я вижу, где путаница. Когда я сказал «подключение к Vcc», я имел в виду соединение между входным контактом и Vcc. Я не имел в виду мощность ATmega 328. Как это перефразировать, чтобы было понятно? Большое спасибо за вашу помощь, как в обучении правильной проводке, так и в улучшении формулировки моего вопроса., @dotancohen

Я не совсем уверен, что вы спрашиваете в этом вопросе сейчас. Если у вас есть подтягивающий резистор, то у вас есть подтягивающий резистор. Если у вас есть подтягивающий резистор, то у вас есть подтягивающий резистор. О чем на самом деле вы спрашиваете, когда спрашиваете о резисторе для vcc? Это подтягивающий резистор. Если он у вас есть, то он у вас есть. Что вы спрашиваете "Так же?"...?, @Majenko


2

Если датчик обеспечивает два определенных уровня напряжения, вам не нужен подтягивающий или подтягивающий резистор, но если это всего лишь переключатель: либо (замкнутый), подключенный к Vcc или GND, либо (открытый), не подключенный, вам нужен подтягивающий или подтягивающий резистор, чтобы получить определенный уровень напряжения на случай, если «ничего другого» (кроме провода к переключателю, улавливающему шум из воздуха) не подключено к контакту цифрового входа.

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

Когда этот переключатель замкнут, через этот резистор будет протекать некоторый ток в соответствии с законом Ома. Вы должны оптимизировать между этим током и риском поймать шумовой сигнал. Как правило, микроконтроллеры, такие как Arduino atmel atmega328p, имеют встроенные подтягивающие резисторы номиналом ~ 30–50 кОм, чего должно хватить для стандартных ситуаций.

Если вы опасаетесь разрядки батареи, вы можете поэкспериментировать с резисторами большего размера, но сначала обязательно создайте сценарий, в котором обычная ситуация — «переключатель разомкнут». Например, дверной выключатель холодильника должен быть размыкающим, но нажатым, когда дверца закрыта. :)

,