Mam zamiar ukraść moją odpowiedź, kiedy odpowiedziałem na to pytanie podczas ostatniej próby arduino SE.
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:
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. Kiedy zasilasz swój 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 prawdą dla każdego Arduino opartego na mikrokontrolerze ATmega328.