Je vais voler ma réponse lorsque j'ai répondu à cette question lors de la dernière tentative d'arduino SE.
C'est un peu complexe. Fondamentalement, il existe un certain nombre de facteurs limitatifs:
Les lignes d'E / S du microcontrôleur (c'est-à-dire les broches analogiques et numériques) ont à la fois une limite de courant agrégée (par exemple totale) et une limite par broche:
À partir de la fiche technique ATmega328P .
Cependant, selon la façon dont vous définissez les "Pins" Arduino, ce n'est pas toute l'histoire.
La broche 5 V de l'arduino n'est pas connectée via le microcontrôleur . En tant que tel, il peut générer beaucoup plus d'énergie. Lorsque vous alimentez votre Arduino depuis USB, l'interface USB limite votre consommation totale d'énergie à 500 mA. Ceci est partagé avec les appareils sur la carte Arduino, donc la puissance disponible sera un peu moins.
Lorsque vous utilisez une alimentation externe, via le connecteur d'alimentation du baril, vous êtes limité par le régulateur local 5V, qui est évalué pour un maximum de 1 Amp . Cependant, il est également limité thermiquement , ce qui signifie que lorsque vous consommez de l'énergie, le régulateur chauffera. Lorsqu'il surchauffe, il s'arrête temporairement.
La sortie régulée 3,3V est capable de fournir 150 mA max, ce qui est la limite du régulateur 3,3V.
En résumé
- Le maximum absolu pour une seule broche IO est de 40 mA ( c'est le maximum . Vous ne devriez jamais réellement tirer un 40 mA complet d'une broche. Fondamentalement, c'est le seuil auquel Atmel ne peut plus garantir que la puce ne sera pas endommagée. Vous devez toujours vous assurer que vous êtes bien en dessous de cette limite actuelle. )
- Le courant total de toutes les broches IO ensemble est de 200 mA max.
- La broche de sortie 5V convient pour ~ 400 mA sur USB, ~ 900 mA lorsque vous utilisez un adaptateur d'alimentation externe
- Le 900 mA est pour un adaptateur qui fournit ~ 7V. À mesure que la tension de l'adaptateur augmente, la quantité de chaleur à laquelle le régulateur doit faire face augmente également, de sorte que le courant maximal diminue à mesure que la tension augmente. C'est ce qu'on appelle la limitation thermique
- La sortie 3,3 V est capable de fournir 150 mA .
- Note - Toute puissance tirée du rail 3.3V doit passer par le rail 5V . Par conséquent, si vous avez un appareil de 100 mA sur la sortie 3,3 V , vous devez également le compter par rapport au courant total de 5 V.
Remarque: cela ne s'applique pas à l'Arduino Due, et il existe probablement des différences pour l'Arduino Mega. C'est généralement vrai pour tout Arduino basé sur le microcontrôleur ATmega328.