Почему значение analogRead уменьшается, когда я уменьшаю значение резистора?(Я использую digitalWrite(high) к положительной клемме резистора)

В принципе, моя схема содержит только 1 резистор(как и основная светодиодная схема).This is my circuit and my code

Я попытался узнать, каково фактическое напряжение digitalWrite(высокое). Я не понимаю, почему значение analogRead не фиксируется на 1023, а вместо этого уменьшается, когда я уменьшаю значение резистора. Более того, значение приходит к нулю, когда мое значение резистора достигает 1 Ом. Очень ценю любую помощь здесь.

, 👍1

Обсуждение

если вы откроете клапан с левой стороны, то давление с правой стороны упадет., @Juraj

Этот мой пост в блоге поможет вам понять, что происходит: https://majenko.co.uk/blog/our-blog-1/what-exactly-is-a-gpio-pin-10, @Majenko


2 ответа


Лучший ответ:

0

Вывод цифрового выхода может обеспечивать только определенный ток: рекомендуемый максимум 20 мА, абсолютный максимум 40 мА. Когда вы приблизитесь к этим значениям и превысите их, напряжение снизится, так как внутреннее оборудование драйвера не сможет обеспечить достаточный ток для удержания напряжения.

С помощью резистора вы обеспечиваете путь постоянного тока к земле. При высоких значениях R это не сильно отличается (так как ток через резистор на землю ниже максимального тока драйверов цифровых выводов max current). Когда вы понижаете R, ток через него к земле становится больше. Таким образом, цифровой контактный драйвер должен обеспечивать больший ток для удержания напряжения. Когда он становится слишком низким, драйвер не может обеспечить достаточный ток, напряжение падает.

С R на 1 Ом вы в основном закорачиваете вывод цифрового выхода на землю, так как 1 Ом на самом деле не так уж много сопротивления. При 5 В (что является выходным напряжением Uno) вы получите через него ток U/R = 5 В / 1 Ом = 5А. Водитель не может этого обеспечить. В реальной жизни драйвер вывода, скорее всего, будет убит этим текущим розыгрышем.

,

2

В дополнение к ответу Крисла стоит отметить, что в спецификации микроконтроллера (здесь ATmega328P), в разделе “Типичные характеристики”, есть подраздел “Pin-драйвер Сила”. В этом подразделе приведены некоторые типичные кривые зависимости напряжения от тока , показывающие, что:

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

Кривые идут только до 20 мА, так как поведение для более высоких токов не характеризуется.

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

(5 V) × (470 Ω) / (470 Ω + 25 Ω) = 4.747 V

,