Сколько тока я могу получить от контактов Arduino?

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

Ответы (5)

Это немного сложно. По сути, существует ряд ограничивающих факторов:

Линии ввода-вывода от микроконтроллера (т. е. аналоговые и цифровые контакты) имеют как совокупный (например, общий) предел тока, так и предел для каждого контакта:

введите описание изображения здесь
Из даташита на ATmega328P .

Однако, в зависимости от того, как вы определяете «контакты» Arduino, это не вся история.

Контакт 5V Arduino не подключен через микроконтроллер . Таким образом, он может обеспечить значительно большую мощность. Когда вы питаете Arduino от USB, интерфейс USB ограничивает общее энергопотребление до 500 мА. Это общее с устройствами на плате arduino, поэтому доступная мощность будет несколько меньше.
Когда вы используете внешний источник питания, через разъем питания бочонка, вы ограничены местным регулятором 5 В, который рассчитан максимум на 1 Ампер . Тем не менее, это также термически ограничено , а это означает, что по мере того, как вы потребляете мощность, регулятор нагревается. При перегреве временно отключается.

Регулируемый выход 3,3 В может обеспечить максимальный ток 150 мА, что является пределом регулятора 3,3 В.


В итоге

  • Абсолютный максимум для любого отдельного вывода ввода-вывода составляет 40 мА ( это максимум . На самом деле вы никогда не должны вытягивать полные 40 мА из вывода. По сути, это порог, при котором Atmel больше не может гарантировать, что микросхема не будет повреждена. Вы всегда должны убедиться, что вы безопасно ниже этого текущего предела. )
  • Суммарный ток со всех контактов ввода-вывода вместе составляет не более 200 мА .
  • Выходной контакт 5 В подходит для ~ 400 мА на USB, ~ 900 мА при использовании внешнего адаптера питания.
    • 900 мА для адаптера, который обеспечивает ~ 7 В. По мере увеличения напряжения адаптера количество тепла, с которым приходится иметь дело регулятору, также увеличивается, поэтому максимальный ток будет падать по мере увеличения напряжения. Это называется термическим ограничением
  • Выход 3,3 В способен подавать 150 мА .
    • Примечание. Любая мощность, потребляемая от шины 3,3 В, должна проходить через шину 5 В. Следовательно, если у вас на выходе 3,3В устройство на 100 мА, вам нужно также посчитать его против общего тока 5В.

Примечание. Это не относится к Arduino Due, и, вероятно, есть некоторые отличия для Arduino Mega. Скорее всего, это справедливо для любого Arduino на базе микроконтроллера ATmega328.

Хорошее резюме! Имейте в виду, что, хотя максимальный ток на контакте может составлять 40 мА, это абсолютный максимум. И, как говорится в техническом описании, работа на абсолютном максимуме может быть разрушительной. Обычно рекомендуется ограничивать до <35 мА.
У Due есть зарядный насос для подачи напряжения ядра, который не выставляется напрямую в виде штырька, но может быть припаян к нему.
На самом деле существует ТРИ ограничивающих фактора, два из которых перечислены в ответе выше, а также тот факт, что в таблице данных говорится, что сумма всех токов, поступающих от портов C0-C5, D0-D4, ADC7 и RESET, не должна превышать 150 мА. Аналогично, общий ток, подаваемый на порты B0-B5, D5-D7, ADC6, XTAL1, XTAL2, не должен превышать 150 мА. Что касается потребления тока, сумма портов C0-C5, ADC7, ADC6 не должна превышать 100 мА; сумма портов B0-B5, D5-D7, XTAL1, XTAL2 не должна превышать 100мА; а сумма портов D0-D4, RESET не должна превышать 100мА. Все это указано в техпаспорте.
Человеку, который предположил в редактировании, что шина 3,3 В исходит от FT232, ее нет ни в одной из версий платы, на которые я смотрел.
Какой компонент вы обычно используете для переключения более 40 мА на высоких частотах (500 Гц или около того?) с помощью вывода данных? Я посмотрел на демультиплексор, но у них тоже довольно низкая максимальная сила тока?
arduino.stackexchange.com/a/24546/6628 — интересный ответ о том, что произойдет, если вы превысите 40 мА, внутреннее сопротивление на контактах 25 Ом и соображения о рабочем цикле. В совокупности более высокие токи в течение коротких периодов времени, такие как зарядка затвора MOSFET через резистор 10 Ом или ШИМ с низким рабочим циклом, могут выдерживать более высокие мгновенные токи без чрезмерного нагрева.

Каков максимальный ток, который я могу получить от каждого из контактов Arduino без отключения каких-либо внутренних предохранителей ?

На платах Ардуино есть только один предохранитель. На USB-порту установлен сбрасываемый предохранитель Polyfuse , который ограничивает ток, начиная с 500 мА. Этот предохранитель эффективен только при питании от USB и только тогда, когда общее потребление по шине 5 В превышает 500 мА. (Обратите внимание, что этот тип предохранителя не просто «перегорает».)

Если вы потребляете слишком большой ток (40 мА или более) от вывода ввода-вывода, это может привести к повреждению вывода. На контактах ввода-вывода нет предохранителей.

у плат Nano и Micro тоже есть этот поплавок? Здесь говорят, что у Nano нет поплавкового предохранителя (и, следовательно, нет ограничителя тока на выводе 5V).

Здесь указаны максимальные значения тока для Uno, Duemilanove:

Постоянный ток на вывод ввода/вывода: 40,0 мА

Постоянный ток на контакты VCC и GND: 200,0 мА

Общий предел постоянного тока для всех контактов ввода-вывода вместе взятых: 200 мА

Обратите внимание, что если имеется более одного контакта VCC/Vin/GND, то Arduino может потреблять больше тока. (Каждый контакт соответствует контакту на ATMega328)

Они кажутся более или менее стандартными для большинства Arduinos, так как эти текущие ограничения относятся к микроконтроллеру.

Есть ли у вас какие-либо идеи для Arduino Nano, постоянного тока на контакты VCC и GND: ??? мА

Согласно схеме v2.3, регулятор Arduino Nano 3.3v представляет собой переходник FTDI с USB на последовательный порт. Максимальный ток 50 мА.

Если вы посмотрите на схемы для Nano, вы увидите, что контакт 3,3 В обеспечивается чипом FT232RL. Согласно его техническому описанию , этот вывод может обеспечить максимум 50 мА.

Для запуска вашего модуля вам потребуется внешний источник питания 3,3 В. Может быть обеспечен стабилизатором LDO 3,3 В, питаемым от контакта 5 В, который питается либо от USB, либо от регулятора 5 В, UA78M05 , оба из которых имеют максимальный ток 500 мА (за вычетом тока, требуемого Nano)

Переосмыслив это: я считаю, что мог бы просто использовать контакт 5 В с делителем напряжения (2 резистора), чтобы получить пик ~ 250 мА, который мне нужен при 3,3 В.
Вы переосмысливаете неправильно. Делители напряжения не могут обеспечить большие токи. Они предназначены только для очень малых токов (опорных напряжений).
Не знал этого - вы сэкономили мне много времени и нервов. Спасибо.
Для тех, кто увидит этот конкретный ответ в будущем: это был ответ на другой вопрос, конкретно связанный с выводом 3v3 в Arduino Nano. Администратор решил объединить этот вопрос здесь (таким образом, был перемещен отличный ответ на исходный вопрос в неполный ответ на вопрос).