Quanta corrente posso attingere dai pin di Arduino?


Risposte:


91

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:

inserisci qui la descrizione dell'immagine
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ò generare 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 è adatto 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 affrontare, 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 - Qualsiasi potenza assorbita dalla guida 3.3V deve passare attraverso la guida 5V . Pertanto, se si dispone di un dispositivo da 100 mA sull'uscita 3,3 V, è necessario conteggiarlo anche rispetto alla corrente totale 5 V.

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.


2
Bel riassunto! Tieni presente che mentre la corrente massima su un pin potrebbe essere valutata a 40 mA, questo è il massimo assoluto. E come dice la scheda tecnica, operare al massimo assoluto può essere dannoso. Si consiglia generalmente di limitare a <35mA.
Baldacchino,

Il Due ha una pompa di carica per fornire la tensione del core che non è esposta direttamente come un pin ma a cui potrebbe essere saldata.
naven87,

6
Esistono in realtà TRE fattori limitanti, i due elencati nella risposta sopra più il fatto che la scheda tecnica dice che la somma di tutta la corrente proveniente dalle porte C0-C5, D0-D4, ADC7 e RESET non deve superare 150mA. Allo stesso modo, la corrente totale proveniente dalle porte B0-B5, D5-D7, ADC6, XTAL1, XTAL2 non deve superare i 150 mA. Per quanto riguarda l'attuale sink, la somma delle porte C0-C5, ADC7, ADC6 non deve superare i 100 mA; la somma delle porte B0-B5, D5-D7, XTAL1, XTAL2 non deve superare 100mA; e la somma delle porte D0-D4, RESET non deve superare i 100mA. Questo è tutto elencato nel foglio dati.

Alla persona che ha suggerito in una modifica che la guida 3.3V proviene dall'FT232, non è presente in nessuna delle versioni della scheda che ho visto.
Connor Wolf,

8

I valori correnti massimi sono elencati qui per Uno, Duemilanove:

Corrente CC per pin I / O: 40,0 mA

Corrente CC per pin VCC e GND: 200,0 mA

Limite di corrente CC complessivo per tutti i pin IO messi insieme: 200 mA

Nota che se ci sono più di un pin VCC / Vin / GND, allora Arduino può prendere più corrente. (Ogni pin corrisponde a un pin su ATMega328)

Questi sembrano essere più o meno standard per la maggior parte degli Arduinos, poiché queste attuali limitazioni sono per il microcontrollore.


8

Qual è la massima quantità di corrente che posso prelevare da ciascuno dei pin di Arduino senza far scattare nessuno dei fusibili interni ?

C'è solo un fusibile sulle schede Arduino. C'è un Polyfuse ripristinabile sulla porta USB che limita la corrente a partire da 500mA. Questo fusibile è efficace solo se alimentato tramite USB e solo quando l'assorbimento totale sulla guida da 5 V è superiore a 500 mA. (Notare che questo tipo di fusibile non si "spegne semplicemente").

Se viene assorbita troppa corrente (40 mA o più) da un pin I / O, si danneggerebbe il pin. Non ci sono fusibili sui pin I / O.


1
anche le schede Nano e Micro hanno questo polyfuse? Qui dicono che il Nano non ha polyfuse (e quindi nessun limitatore di corrente sul pin 5V)
eadmaster

2

Secondo lo schema v2.3, il regolatore Arduino Nano 3.3v è il FTDI da usb a seriale ic. Che ha una corrente nominale massima di 50mA.


2

Se dai un'occhiata agli schemi del Nano, puoi vedere che il pin 3.3V è fornito dal chip FT232RL. Secondo il suo foglio dati quel pin può fornire un massimo di 50mA.

Per far funzionare il tuo modulo dovrai fornire un alimentatore esterno da 3.3V. Forse fornito da un regolatore LDO da 3,3 V alimentato dal pin da 5 V alimentato da USB o dal regolatore da 5 V, un UA78M05 , entrambi con un massimo di 500 mA (meno la corrente richiesta dal Nano)


Ripensando a ciò: credo di poter semplicemente usare il pin 5V con un divisore di tensione (2 resistori) per ottenere il picco di ~ 250mA di cui ho bisogno a 3.3V.
Rufo,

4
Stai ripensando male. I divisori di tensione non possono fornire grandi correnti. Sono solo per correnti molto piccole (tensioni di riferimento).
Majenko,


Non lo sapevo, mi hai risparmiato un sacco di tempo e di esasperazione. Grazie.
Rufo,

1
Per chi vede questa particolare risposta in futuro: questa era una risposta a un'altra domanda specificamente correlata al pin 3v3 nell'Arduino Nano. Un amministratore ha deciso di unire la domanda qui (in modo da convertire una risposta eccellente alla domanda originale in una risposta incompleta alla domanda).
Rufo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.