我将从上次arduino SE尝试中回答此问题时窃取我的答案。
这有点复杂。基本上,有许多限制因素:
来自微控制器的IO线(即模拟和数字引脚)同时具有总(例如,总)电流限制和每个引脚的限制:
来自ATmega328P数据表。
但是,取决于您定义Arduino“引脚”的方式,这还不是全部。
arduino的5V引脚未通过微控制器连接。这样,它可以提供更多的功率。当您通过USB为arduino供电时,USB接口会将您的总功耗限制为500 mA。这与arduino板上的设备共享,因此可用功率会稍少。
使用外部电源时,通过桶形电源连接器受到本地5V稳压器的限制,该稳压器的最大额定值为1 Amp。但是,这也受热限制,这意味着在您取电时,稳压器会发热。过热时,它将暂时关闭。
3.3V稳压输出能够提供最大150 mA的电流,这是3.3V稳压器的极限。
综上所述
- 任何单个IO引脚的绝对最大值为40 mA(这是最大值。您绝对不应从一个引脚上拉满40 mA的电流。基本上,这是Atmel无法再保证不会损坏芯片的阈值。您应该始终确保自己安全地低于此当前限制。)
- 来自所有IO引脚的总电流最大为200 mA
- 5V输出引脚适用于USB上的〜400 mA,使用外部电源适配器时的〜900 mA
- 900 mA用于提供约7V电压的适配器。随着适配器电压的增加,稳压器必须处理的热量也增加,因此最大电流将随着电压的增加而下降。这称为热限制
- 3.3V输出能够提供150 mA的电流。
- 注–从3.3V供电轨获得的任何电源都必须通过5V供电轨。因此,如果您对3.3V输出由100毫安设备,你需要还指望它针对5V的总电流。
注意:这不适用于Arduino Due,并且Arduino Mega可能存在一些差异。对于任何基于ATmega328微控制器的Arduino来说,这通常都是正确的。