Ile prądu mogę pobierać z pinów Arduino?

Odpowiedzi:

91

To jest trochę skomplikowane. Zasadniczo istnieje wiele czynników ograniczających:

Linie IO z mikrokontrolera (tj. Pinów analogowych i cyfrowych) mają zarówno łączny (np. Całkowity) limit prądu, jak i limit na pin:

wprowadź opis zdjęcia tutaj
Z arkusza danych ATmega328P .

Jednak w zależności od tego, jak zdefiniujesz „szpilki” Arduino, nie jest to cała historia.

Pin 5 V arduino nie jest podłączony przez mikrokontroler . Jako taki może uzyskać znacznie większą moc. Podczas zasilania Arduino z USB interfejs USB ogranicza całkowity pobór mocy do 500 mA. Jest to współdzielone z urządzeniami na płycie Arduino, więc dostępna moc będzie nieco mniejsza.
Kiedy korzystasz z zewnętrznego zasilacza, przez beczkowe złącze zasilania, jesteś ograniczony przez lokalny regulator 5V, który jest oceniany na maksymalnie 1 Amp . Jest to jednak również ograniczone termicznie , co oznacza, że ​​gdy pobierasz energię, regulator nagrzewa się. Gdy się przegrzeje, tymczasowo się wyłączy.

Wyjście regulowane 3,3 V jest w stanie dostarczyć maks. 150 mA, co stanowi limit dla regulatora 3,3 V.


W podsumowaniu

  • Absolutne maksimum dla każdej pojedynczej pin IO jest 40 mA ( to jest maksymalna . Nigdy nie należy faktycznie ciągnąć pełny 40 mA od szpilki. Zasadniczo, jest to próg, przy którym Atmel nie może zagwarantować chip nie zostanie uszkodzony. Zawsze powinieneś upewnić się, że jesteś bezpiecznie poniżej tego limitu ).
  • Całkowity prąd ze wszystkich styków IO razem wynosi 200 mA maks
  • Pin wyjściowy 5 V jest odpowiedni dla ~ 400 mA na USB, ~ 900 mA w przypadku korzystania z zewnętrznego zasilacza
    • 900 mA jest dla adaptera, który zapewnia ~ 7 V. Wraz ze wzrostem napięcia adaptera wzrasta również ilość ciepła, z którą regulator musi sobie radzić, więc maksymalny prąd spada wraz ze wzrostem napięcia. Nazywa się to ograniczeniem termicznym
  • Wyjście 3,3 V jest w stanie dostarczyć 150 mA .
    • Uwaga - Wszelkie moc pobierana z szyny 3.3V musi przejść przez szyny 5V . Dlatego jeśli masz urządzenie 100 mA na wyjściu 3,3 V, musisz również policzyć je w stosunku do całkowitego prądu 5 V.

Uwaga: Nie dotyczy to Arduino Due i prawdopodobnie istnieją pewne różnice w Arduino Mega. Jest to prawdopodobnie ogólnie prawdziwe dla każdego Arduino opartego na mikrokontrolerze ATmega328.

Connor Wolf
źródło
2
Ładne podsumowanie! Należy pamiętać, że podczas gdy maksymalny prąd na pinie może być oceniany na 40 mA, jest to absolutne maksimum. A jak mówi arkusz danych, działanie na absolutnym maksimum może być szkodliwe. Ogólnie zaleca się ograniczenie do <35mA.
baldengineer
Due ma pompę ładującą do zasilania napięcia rdzenia, które nie jest odsłonięte bezpośrednio jako szpilka, ale może być przylutowane.
naven87
6
W rzeczywistości istnieją TRZY czynniki ograniczające, dwa wymienione w powyższej odpowiedzi oraz fakt, że arkusz danych mówi, że suma całego prądu pochodzącego z portów C0-C5, D0-D4, ADC7 i RESET nie powinna przekraczać 150mA. Podobnie całkowity prąd pobierany dla portów B0-B5, D5-D7, ADC6, XTAL1, XTAL2 nie powinien przekraczać 150mA. Jeśli chodzi o odbiornik prądu, suma portów C0-C5, ADC7, ADC6 nie powinna przekraczać 100mA; suma portów B0-B5, D5-D7, XTAL1, XTAL2 nie powinna przekraczać 100mA; i suma portów D0-D4, RESET nie powinien przekraczać 100mA. Wszystko to znajduje się w arkuszu danych.
Dla osoby, która zasugerowała w edycji, że szyna 3.3V pochodzi z FT232, nie ma jej w żadnej z wersji planszy, na którą patrzyłem.
Connor Wolf,
8

Maksymalne wartości prądu podano tutaj dla Uno, Duemilanove:

Prąd DC na pin we / wy: 40,0 mA

Prąd DC na styki VCC i GND: 200,0 mA

Ogólny limit prądu stałego dla wszystkich połączonych styków IO: 200 mA

Zauważ, że jeśli jest więcej niż jeden pin VCC / Vin / GND, Arduino może pobierać więcej prądu. (Każdy pin odpowiada pinowi w ATMega328)

Wydaje się, że są one mniej więcej standardowe dla większości Arduinos, ponieważ obecne ograniczenia dotyczą mikrokontrolera.

Manishearth
źródło
8

Jaka jest maksymalna ilość prądu, którą mogę wyciągnąć z każdego z pinów Arduino bez wyzwolenia wewnętrznego bezpiecznika ?

Na tablicach Arduino jest tylko jeden bezpiecznik. Na porcie USB znajduje się resetowalny Polyfuse, który ogranicza prąd od 500mA. Bezpiecznik ten działa tylko przy zasilaniu przez USB i tylko wtedy, gdy całkowity pobór na szynie 5 V wynosi ponad 500 mA. (Należy pamiętać, że ten typ bezpiecznika nie tylko po prostu „wysuwa się”).

Jeśli pobierzesz zbyt duży prąd (40 mA lub więcej) z pinu I / O, spowoduje to jego uszkodzenie. Na pinach we / wy nie ma bezpieczników.

Baldengineer
źródło
1
czy płyty Nano i Micro mają również ten poli-bezpiecznik? Oto mówią Nano ma polyfuse (a więc bez ogranicznik prądu na pin 5V)
eadmaster
2

Zgodnie ze schematem v2.3, Arduino Nano 3.3v to FTDI USB do portu szeregowego IC. To ma maksymalny prąd 50 mA.

Przechodzień
źródło
2

Jeśli spojrzysz na schematy Nano, zobaczysz, że pin 3,3 V jest zapewniony przez układ FT232RL. Zgodnie z arkuszem danych pin ten może zapewnić maksymalnie 50 mA.

Aby uruchomić moduł, musisz zapewnić zewnętrzne zasilanie 3,3 V. Może być zapewniony przez regulator LDO 3,3 V zasilany przez pin 5 V, który jest albo zasilany z USB, albo z regulatora 5 V, UA78M05 , oba o maksymalnej wartości 500 mA (mniej prądu wymaganego przez Nano)

Majenko
źródło
Przemyślenie tego: wierzę, że mógłbym po prostu użyć styku 5 V z dzielnikiem napięcia (2 rezystory), aby uzyskać szczyt ~ 250mA, którego potrzebuję przy 3,3 V.
rufo
4
Źle myślisz. Dzielniki napięcia nie mogą zapewnić dużych prądów. Są one przeznaczone tylko do bardzo małych prądów (napięć odniesienia).
Majenko,
Nie wiedziałem o tym - oszczędziłeś mi dużo czasu i irytacji. Dzięki.
rufo
1
Dla każdego, kto zobaczy tę konkretną odpowiedź w przyszłości: była to odpowiedź na inne pytanie związane konkretnie z pinem 3v3 w Arduino Nano. Administrator postanowił scalić to pytanie tutaj (w ten sposób przeniesiono doskonałą odpowiedź na pierwotne pytanie w niekompletną odpowiedź na pytanie).
rufo