Ho intenzione di rubare la mia risposta da quando ho risposto a questa domanda sull'ultimo tentativo di arduino SE.
Questo è un po 'complesso. Fondamentalmente, ci sono una serie di fattori limitanti:
Le linee IO del microcontrollore (cioè i pin analogici e digitali) hanno sia un limite di corrente aggregato (ad es. Totale) sia un limite per pin:
Dal foglio dati ATmega328P .
Tuttavia, a seconda di come definisci i "Pin" di Arduino, questa non è l'intera storia.
Il pin 5V dell'arduino non è collegato tramite il microcontrollore . Come tale, può fornire molta più energia. Quando si alimenta Arduino da USB, l'interfaccia USB limita il consumo totale di energia a 500 mA. Questo è condiviso con i dispositivi sulla scheda Arduino, quindi la potenza disponibile sarà leggermente inferiore.
Quando si utilizza un alimentatore esterno, attraverso il connettore di alimentazione a barilotto, si è limitati dal regolatore 5V locale, che è valutato per un massimo di 1 Amp . Tuttavia, questo ha anche un limite termico , il che significa che quando si assorbe energia, il regolatore si surriscalda. Quando si surriscalda, si spegne temporaneamente.
L'uscita regolata a 3,3 V è in grado di fornire 150 mA max, che è il limite del regolatore a 3,3 V.
In sintesi
- Il massimo assoluto per ogni singolo pin IO è 40 mA ( questo è il massimo . In realtà non si dovrebbe mai estrarre completamente 40 mA da un pin. Fondamentalmente, è la soglia alla quale Atmel non può più garantire che il chip non venga danneggiato. Devi sempre assicurarti di essere al di sotto di questo limite attuale. )
- La corrente totale di tutti i pin IO è di 200 mA max
- Il pin di uscita a 5 V è valido per ~ 400 mA su USB, ~ 900 mA quando si utilizza un adattatore di alimentazione esterno
- 900 mA è per un adattatore che fornisce ~ 7V. All'aumentare della tensione dell'adattatore, aumenta anche la quantità di calore che il regolatore deve gestire, quindi la corrente massima diminuirà all'aumentare della tensione. Questo si chiama limitazione termica
- L'uscita 3.3V è in grado di fornire 150 mA .
- Nota - Ogni potenza assorbita dalla guida 3.3V deve passare attraverso la rotaia 5V . Pertanto, se si dispone di un dispositivo da 100 mA sull'uscita 3,3 V, è necessario conteggiarlo anche rispetto alla corrente totale 5
Nota: questo non si applica ad Arduino Due e probabilmente ci sono alcune differenze per Arduino Mega. È probabilmente vero per qualsiasi Arduino basato sul microcontrollore ATmega328.