Минимальное значение подтягивающего резистора

Я только начал работать с Arduino UNO SMD edition, и я также новичок в электронике в целом. Недавно я хотел попробовать этот урок https://www.arduino.cc/en/Tutorial/Button и столкнулся с проблемой с резистором подтягивания вниз. В уроке рекомендуется резистор 10 кОм, но у меня есть только 460 Ом. Очевидно, я мог бы соединить их несколько десятков последовательно, но мне было интересно, можно ли заменить этот резистор 10 кОм на 460 Ом. Будет ли этого достаточно? Я предполагаю, что выход 5 В может обеспечивать до 500 мА (техническое описание), а земля может принимать до 500 мА. Согласно закону Ома I = U/R при 460 Ом должен протекать ток 11 мА. Верно ли, что земля может выдержать такой ток?

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

Приветствую, Tmirror

, 👍-1

Обсуждение

11 мА находится в пределах пина Arduino (который составляет 20 мА). Единственная проблема в том, что он тратит больше электроэнергии, пока кнопка нажата. Это больше проблема при работе от батареи., @Gerben

Я думаю, вы говорите о контакте ввода/вывода. Я говорю о контакте питания 5 В, который напрямую подключен к источнику питания. Этот может подавать до 500 мА, а не 20 мА. Или я что-то не понял?, @Tmirror

Извините, вы правы. Не обращайте внимания на мое первое предложение. Вторая часть все еще верна. Альтернативой было бы использование внутреннего подтягивающего резистора, который есть в ATMega328. Таким образом, вам не нужно добавлять резистор., @Gerben

Спасибо за ответ. Значит, мое предположение и расчеты были верны? Не опасно для Arduino (или для меня *смеется*) использовать только 460 Ом?, @Tmirror

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


1 ответ


0

Зачем вы вообще возитесь с резисторами подтяжки? Используйте вместо этого внутренний резистор подтяжки. Подключите кнопку между выводом и Gnd, чтобы вывод становился низким при нажатии.

Вот простой пример кода:

byte inputPin = 2;

void setup(){
    pinMode (inputPin, INPUT_PULLUP); // включает внутреннюю подтяжку
    Serial.begin(9600);
}

void loop(){
    if (digitalRead(inputPin) == LOW){
        Serial.print ("button pressed");
    }

    else {
        Serial.print ("button open");
    }

    delay(200);  // ограничивает чтение до 5 раз в секунду, чтобы не перегружать ПК сообщениями

}
,

я исправил форматирование вашего примера кода... пожалуйста, не публикуйте неправильно отформатированный код. .... правильный отступ — это первое, чему должны научиться новички., @jsotola

Как получить поле кода? Когда я редактирую пост, я не вижу, что было добавлено для создания поля кода., @CrossRoads