Vou roubar minha resposta de quando respondi a essa pergunta na última tentativa do arduino SE.
Isso é um pouco complexo. Basicamente, existem vários fatores limitantes:
As linhas IO do microcontrolador (ou seja, os pinos analógicos e digitais) têm um limite de corrente agregado (por exemplo, total) e um limite por pinos:
Na folha de dados do ATmega328P .
No entanto, dependendo de como você define os "Pins" do Arduino, essa não é a história completa.
O pino de 5V do arduino não está conectado através do microcontrolador . Como tal, pode obter significativamente mais energia. Quando você está ligando o arduino via USB, a interface USB limita seu consumo total de energia a 500 mA. Isso é compartilhado com os dispositivos na placa do arduino, portanto, a energia disponível será um pouco menor.
Quando você estiver usando uma fonte de alimentação externa, através do conector de alimentação do barril, você estará limitado pelo regulador local de 5V, classificado para um máximo de 1 Amp . No entanto, isso também é limitado termicamente , o que significa que, à medida que você consome energia, o regulador esquenta. Quando superaquecer, será desligado temporariamente.
A saída regulada de 3,3V é capaz de fornecer 150 mA máximo, que é o limite do regulador de 3,3V.
Em suma
- O máximo absoluto para qualquer pino de IO é de 40 mA ( esse é o máximo . Você nunca deve puxar 40 mA completos de um pino. Basicamente, é o limite no qual a Atmel não pode mais garantir que o chip não será danificado. Você deve sempre garantir que está abaixo desse limite atual. )
- A corrente total de todos os pinos de E / S juntos é de 200 mA máx.
- O pino de saída de 5V é bom para ~ 400 mA em USB, ~ 900 mA ao usar um adaptador de energia externo
- Os 900 mA são para um adaptador que fornece ~ 7V. À medida que a tensão do adaptador aumenta, a quantidade de calor que o regulador precisa lidar também aumenta, portanto a corrente máxima diminui à medida que a tensão aumenta. Isso é chamado de limitação térmica
- A saída de 3.3V é capaz de fornecer 150 mA .
- Nota - Qualquer energia consumida no trilho de 3,3V deve passar pelo trilho de 5V . Portanto, se você tiver um dispositivo de 100 mA na saída 3.3V, você precisa também contá-lo contra a corrente total 5V.
Nota: Isso não se aplica ao Arduino Due e provavelmente existem algumas diferenças para o Arduino Mega. Provavelmente, geralmente é verdade para qualquer Arduino baseado no microcontrolador ATmega328.