直流电源怎么选:5V 还是 12V、安培数与 5.5×2.1mm 圆头

Cartoon of a large glossy black UK three-pin plug-top power adapter whose black cable ends in a big silver-tipped barrel plug, a smaller silver perforated-steel cage power supply with guarded screw terminals beside it, and the cropped corner of a blue circuit board with a barrel socket on the right

直流电源上的安培数,是你的项目自己去取的上限,不是被硬推进去的力量——所以电压要配得分毫不差,安培数则要买得大方一点。5 V 走 5 V 电源轨;7–12 V 走圆头插座,因为那后面坐着一颗稳压器。

该买 5V 电源,还是 12V 电源?

直流电源是照着项目挑的,从来不是照着墙上那个插座挑的。一位在同一块板子上又装灯又装风扇的客户,一句话就问到了点子上:“So kene beli 5v ke 12v”(那我到底该买 5V 还是 12V)。答案从来不在墙上,而在被供电的那个东西身上。

按固定的顺序把它读出来。先看电压:每个零件的输入端各自要几伏?让最挑剔的那一个说了算。再看电流:把这些零件的耗流加起来,买高过这个总和的。接头放最后——接头挑错了,一条便宜的转接线就能补救;前面那两样,转接线补不了。

四种电压几乎覆盖了所有人的工作台。5 V 电源喂的是本来就照着 5 V 轨设计的东西:5 V 灯带、小水泵、继电器线圈,以及从 5 V 输入端进去的板子。9 V 电源是 Uno 类板子圆头插座的标准答案,因为那个插座后面的稳压器需要余量。12 V 电源适合 12 V 灯带、12 V 水泵、风扇,以及大多数电磁锁。24 V 电源出现在负载本身就是 24 V 的时候——很长的 LED 灯带、步进驱动器、工业设备——选它,是因为同样的瓦数只用一半的电流就送到了,所以长灯带一路走到最远端时压降更小。它们之间谁也替代不了谁:24 V 灌进 12 V 灯带,几秒钟就报废;5 V 给 12 V 水泵,它几乎转不动。

然后按最糟的那一瞬间去定安培数,而不是按平均值。马达、水泵或电磁阀在启动的那一刻会拉走运行电流的好几倍,而正是这个尖峰把电源轨压垮——所以把各自的运行电流加起来,再为最大的那个启动负载留出余地,最后买高出总和三分之一左右的。

几个选择——这是几条不同的路,不是要一起买的套件

ItemPriceQty
Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (5V3A)Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (5V3A)PSA0503RM12.95
Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (9V2A)Power Supply Adapter DC Universal AC to DC Converter PSU 5V2A 5V3A 9V2A 12V2A - P.S. ADAPTOR (9V2A)PSA0902RM13.95
USB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 5V DC JACKUSB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 5V DC JACK5VUSBJARM4.95
5.5x2.1mm DC Power Male Connector Plug Jack Adapter for Arduino DIY Electronics Projects - 5.5x2.1 DC CONNECTOR (F)5.5x2.1mm DC Power Male Connector Plug Jack Adapter for Arduino DIY Electronics Projects - 5.5x2.1 DC CONNECTOR (F)5521DCFRM1.20
5.5x2.1mm DC Power Male Connector Plug Jack Adapter for Arduino DIY Electronics Projects - 5.5x2.1 DC CONNECTOR (M)5.5x2.1mm DC Power Male Connector Plug Jack Adapter for Arduino DIY Electronics Projects - 5.5x2.1 DC CONNECTOR (M)5521DCMRM1.20

先按电压挑:5V 3A 适配器给 5V 轨用,9V 2A 适配器给 Uno 类板子的圆头插座用,被动式 USB 线给桌上已经有充电器的小型 5V 项目用。两条 5.5 x 2.1 mm 带线接头是管路:母座给你自己的项目做一个电源入口,公头做一条以板子圆头插座收尾的线。两款适配器都是英规三脚插头,圆头插头 5.5 x 2.1 mm,中心正极。

另外几条值得知道的路

ItemPriceQty
USB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 9V DC JACKUSB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 9V DC JACK9VUSBJARM5.95
USB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 12V DC JACKUSB To 9V DC Jack Cable 5.5 x 2.1 mm 5V 9V DC Power USB Cable Connector Jack - USB TO 12V DC JACK12VUSBJRM5.95
5V 12V 24V Power Supply 5A 10A 15A 20A 25W 50W 75W 120W 240W AC DC Convertor LED Strip Driver - 24V 5A (120W) POWER SUPPLY5V 12V 24V Power Supply 5A 10A 15A 20A 25W 50W 75W 120W 240W AC DC Convertor LED Strip Driver - 24V 5A (120W) POWER SUPPLY24V05APRM22.96
5V 12V 24V Power Supply 5A 10A 15A 20A 25W 50W 75W 120W 240W AC DC Convertor LED Strip Driver - 5V 10A (50W) POWER SUPPLY5V 12V 24V Power Supply 5A 10A 15A 20A 25W 50W 75W 120W 240W AC DC Convertor LED Strip Driver - 5V 10A (50W) POWER SUPPLY05V10APRM22.95

9 V 和 12 V 那两条 USB 线里串了一个升压模块,所以它们真正用得上的输出有限——规格上限是 750 mA,建议用在 500 mA 或以下。两台裸框铁壳电源属于 LED 灯带和工房那一类:市电的火线和零线接在透明护盖下的螺丝端子上,既没有插头也没有圆头插座,而机壳上那个 110/220 V 选择开关必须先拨在 220 V,这台机器才能见马来西亚的插座。除非接市电本来就是你会做的事,否则买插头式适配器。

为什么 5V 5A 的电源,给 500mA 的项目用是安全的?

因为一台稳压电源是一个电压源:它把电压守住,由负载决定电流。做决定的是欧姆定律:一个项目在守住的 5 V 轨上呈现出等效 10 Ω,那它取走的就是 5 ÷ 10 = 0.5 A。要把 5 A 硬塞过同样这 10 Ω,电源得把电源轨抬到 50 V——而这正是稳压器要拦住的事。

所以安培数是一个上限:电源在自己的输出塌下去之前,最多能交出多少。我们那台 5 V 10 A 铁壳电源喂一个 500 mA 的项目,交出的就是 500 mA,剩下的 9.5 A 原封不动——它标的 50 W 是 5 V × 10 A,那是额定值,而项目消耗的是 5 V × 0.5 A = 2.5 W。另外那 47.5 W 根本没有被产生出来。它也有 5 V 5 A 的型号。

真正会发生的故障是买小了。跟一个 5 V 500 mA 的手机充电器要 700 mA,它守不住 5 V:电源轨往下垮,于是单片机重启,或者通讯模块做到一半掉线。这些症状看起来完全像程序有 bug,所以我们那篇 SIM800L 掉电重启指南讲的是电源,不是代码。

卡通对比图:左边是一个小小的黑色插头式适配器,右边是一台大得多的银色网孔铁壳电源,两者各自通过一条一模一样的细青色电流箭头,喂着一块一模一样的蓝色小电路板,而大电源周围围着一大片淡青色的闲置余量
同一个项目,同样的电流。小适配器和那台银色大电源,交给同一块蓝色板子的是同一道细细的电流——差别只在于它周围还剩下多少没用上的余量。

5V 插进 Arduino 的圆头插座,为什么会掉电重启?

因为圆头插座和 5 V 电源轨,是通向板子的两扇不同的门。在 Arduino Uno 上,那个插座并不直接碰到这条轨:电先过一颗防反接二极管,再过一颗 1117 系列的线性稳压器——Arduino 自己的 UNO R3 数据手册在 5 V 版本里列的是 SPX1117——而这两颗各抽各的一份。二极管大约要拿走 0.7 V。稳压器的输入端,要比它交出来的电压高出大约 1.1 V:SPX1117 数据手册写的是 100 mA 时压差 1.0 V,到 800 mA 时升到 1.1 V。这个余量就是它的压差电压(dropout voltage),低于它,稳压器就守不住 5 V 了。

把这些加起来,Arduino 自己的建议就自动掉出来了:5 V 输出 + 1.1 V 压差 + 0.7 V 二极管 ≈ 6.8 V,7 V 这个下限就是这么来的。给插座喂 5 V,稳压器看到的大约是 4.3 V,稳稳落在压差区里,于是电源轨掉到四点几伏。ATmega328P 的最高频率曲线从 2.7 V 的 10 MHz 线性升到 4.5 V 的 20 MHz,所以 Uno 那 16 MHz 的时钟一直到大约 3.8 V 都还在规格之内——板子很少会当场死掉。它只是在毫无余量的状态下跑着,而共用这条轨的每一个传感器、显示屏和卡模块,同样都拿不到自己要的 5 V,这更糟,因为它表现出来的样子就像一段写坏了的程序。圆头插座在物理上会接受 5 V,板子的电源 LED 甚至还会亮起来,这就是这个数字被到处传开的原因;亮灯和稳压,是两件完全不同的事。

上限也有它自己的机制。线性稳压器把多出来的部分当成热量丢掉:(Vin − 5) × I。在 12 V、200 mA 时那就是 7 × 0.2 = 1.4 W,落在一颗摸上去已经发烫的贴片封装里;到了 20 V,同样的电流变成 3 W,过热保护就切断了。所以是 7–12 V——不是 5,也不是 24:板子的数据手册把 VIN 的绝对极限写成 6–20 V,而 7–12 V 是这个范围里板子能好好工作、而不只是勉强活着的那一段。

适配器插着的同时把 USB 线也留在上面,是安全的,而且项目一离开笔电,这就是所有人第一个会问的问题。Uno 类板子不会让这两个电源打架:一颗比较器盯着保护二极管后面的插座电压,一旦它超过大约 6.6 V,就把原本负责把 USB 的 5 V 送上板子电源轨的那颗 P 沟道 MOSFET 关掉。之后由适配器给板子供电,USB 线只走数据,也没有任何东西倒灌回你笔电的接口。低于那个门槛,这个开关就一直开着,电源轨还是 USB 在守——这又是一个说明「把 5 V 适配器插进圆头插座毫无意义」的理由。

这也顺带说清楚了另一个诱人的捷径:把 5 V 直接接到板子的 5V 引脚上。它进来的位置在二极管后面、稳压器后面,也在那个选择电路后面,所以万一极性或电压错了,你的适配器和单片机之间就什么都不剩。板子上有圆头插座,就用圆头插座。板子上没有——大多数 ESP32 和 ESP8266 开发板都没有——那颗 5V 引脚本身就是 3.3 V 稳压器的输入端,它就是那扇设计好的门。Arduino Nano 是要留意的例外:它的 5V 引脚是它稳压器的输出端,所以要喂它的 VIN 引脚,而上面那条 7–12 V 的规矩在那里同样适用。

你要给什么供电 电源 接到哪里
Uno 类板子走它的圆头插座,或者一块 MB-102 面包板电源(输入 6.5–9 V) 9 V 2 A 适配器 直接插进圆头插座——9 V 越过压差还绰绰有余
一条 5 V 电源轨:灯带、模块、ESP32 板子的 5V 引脚 5 V 3 A 适配器 接进一个圆孔母座带线,红接 +,黑接 −
一条 12 V LED 灯带或 12 V 水泵 一台 12 V 电源;小负载也可以用12 V USB 线 接到灯带自己的 +/− 端子
手上已经有一条直流轨,需要改电压 升压或降压模块,不是墙上的电源 升压还是降压
根本没有墙上的插座 电池,不是电源 AA 电池供电

项目一有两路电源,就立刻冒出一条规矩——板子用 9 V 适配器,灯带用 12 V 电源。把它们的负极接在一起。一个信号电压,只是相对某个参考端量出来的差值,所以一条跨过去接驱动器、MOSFET 栅极或继电器输入的控制线,如果两边不坐在同一个 0 V 上,它就什么意思都没有,而且常常连回路都没有。正极永远不接在一起;负极永远要接。唯一那个刻意的例外,是本来就为了把两边隔开而做的硬件,比如拔掉跳线的光耦隔离继电器板,这件事我们那篇继电器安全指南讲过。

DC 插头到底该配 5.5 × 2.1 mm 还是 5.5 × 2.5 mm?

5.5 mm 的 DC 接头有两种内孔,从外面看一模一样:5.5 × 2.1 mm 和 5.5 × 2.5 mm。两者共用同样的 5.5 mm 外壳,所以都能滑进同一个 DC 插座口。不一样的是插头中间那根内孔——2.1 mm 或 2.5 mm——而这个孔必须夹住插座的中心针,因为这个夹紧就是正极的接触点。把 2.1 mm 的插头往 2.5 mm 的针上推,它插不到底;你能感觉到它停住了,而吵闹的失败是安全的失败。陷阱在反过来的那一边:2.5 mm 的插头会完整地滑到 2.1 mm 的针上,外壳到位、负极接得好好的,而中心针在一个宽了 0.4 mm 的孔里晃。项目于是半死不活,碰一下线就闪,或者马达一启动就重启——而外表看起来插得好好的。

Uno 的插座是 5.5 × 2.1 mm,我们两款插头式适配器、那条公头带线母座带线也都是——统一在这个尺寸上,一抽屉的适配器就能互换着用。5.5 × 2.5 mm 那个尺寸会出现在路由器和 LED 灯具上,所以买的时候两个数字都要报出来。DigiKey 把这个量法演示了一遍:

极性是插头的另一半。我们两款适配器都在标签上印了那个标准符号:一个圆环,一条线从 ⊕ 连到中心的圆点,另一条从 ⊖ 连到外壳——中心正极,也就是 Uno 的插座和几乎所有创客板子所预期的那一种。在一块没有保护二极管的板子上把它接反,稳压器在你反应过来之前就没了;碰到没有标记的插头,用万用表量一下外壳和中心,就能定案。

任何你自己做的线,在它接到项目上之前,把这个测量变成习惯。把适配器插上电,万用表拨到直流电压档,两支表笔碰在带线的两个裸线头上,红表笔碰红线:你要看到的是你花钱买的那个电压,前面带一个正号。十秒钟,既能抓出从抽屉里翻错的适配器,也能抓出接反了的线。

剖面卡通图:两个外形尺寸完全相同的黑色圆头插头被纵向剖开,左边那个的银色内孔沿着整根中心针把它夹住,标着青色的勾;右边那个内孔过大,松松的针周围留出一圈很宽的白色空隙,标着橙色的叉
外面一模一样,中间不一样。正确的内孔沿着整根中心针把它夹住;宽了 0.4 mm 的内孔让针悬在半空,于是插头感觉是插到底了,正极的接触却时断时续。

USB 转 DC 圆头的线,什么时候够用?

USB 转 5 V 圆头电源线是被动的:一端 USB-A,另一端一个 5.5 × 2.1 的圆头插头,中间什么都没有。给一个接在真正的充电器或行动电源上的 5 V 项目用,它是这里最干净利落的答案。

9 V12 V 版本是另一种东西,而且你看得出来:USB 插头后面串着一个长方形的黑色块。那个块是一个升压模块,而升压模块造不出功率——它是拿电流去换电压。不计损耗的话,5 V × Iin = 12 V × Iout,所以 12 V 那一端要出 500 mA,输入端就得进 1.2 A,按现实一点的 85 % 转换效率算是大约 1.4 A。把它推到这条线 750 mA 的上限,输入端的需求就超过 2 A——比一般 USB 接口给得出的还多。所以实际能用的数字是 500 mA。

一颗单片机、几个传感器、一块小显示屏:一条线就够了,我们那套水位控制器跑的正是这一路。马达、水泵、一米长的 LED 灯带:不够,而且没有任何一条线能让它变成够。

卡通图:两条黑色的 USB 转圆头电源线,上面那条是光溜溜的一整条,下面那条串着一个厚实的黑色升压块,它的 USB 插头背面直接模压着一张空白的淡紫色贴纸,用淡青色高亮标了出来
那个鼓包就是全部的差别。光溜溜那条把 5 V 原样送过去;USB 插头后面带黑块的那条在升压,而升压正是限制它能给出多少电流的原因。

墙上的电源,跟升压或降压模块有什么不同?

升压或降压模块改的是你手上已经有的一个直流电压,那是另一件事,也有它自己的教程——把 LM2596 调到 5 V。一台开关电源则是从市电开始的:240 V 交流先整流成大约 340 V 直流,再以几十千赫兹的频率经过一颗小型高频变压器斩波,然后在另一侧再整流一次。那颗变压器才是重点——它是一道隔离屏障,也正因为有它,从电源出来的直流可以拿在手上,而进去的那条线不行。

插头式的形状——PSA0503PSA0902——把这道屏障封在一个模压外壳里,配上英规三脚插头和做好的圆头线,市电那一侧没有任何地方碰得到。裸框铁壳的形状——24 V 5 A5 V 10 A——属于 LED 灯带和工房那一类,火线、零线和地线接在螺丝端子上,市电那条线要你自己做——而那个接地端子不是装饰,因为这些端子所在的那个框架就是裸露的金属。它的标签上写着 110/220 V ±15 %,由机壳上的一个开关来选:220 V 这一档涵盖马来西亚的 240 V(220 × 1.15 = 253 V),110 V 那一档则差得远,所以这台机器见插座之前,先检查那个开关。如果接市电本来不是你每个星期都在做的事,就买插头式的——我们那篇继电器安全指南画的是同一条线。

留意一台 10 A 的电源上没有什么:圆头插座。它的输出走螺丝端子,是因为一个 5.5 mm 的圆头接头加一条细带线,是一条小电流的通路,它是按一块板子和它的逻辑电路来定尺寸的,不是按马达或者一米长的 LED 灯带。所以重负载就用配得上它的线,直接从端子上引出去;而如果同一个项目里有一块板子要走圆头插座,就用5.5 × 2.1 公头带线单独做那一条线:红接 V+,黑接 V−,插进插座。公头带线就是干这个用的。

怎么证明电源撑得住?

一块 Uno 不用外加任何零件,就能量出自己那条 5 V 电源轨。让它插着 7–12 V 的适配器跑,USB 线接着开串口监视器:板子的电源选择电路已经把电源轨交给适配器了,所以屏幕上那个数字是适配器的轨,不是笔电的。ATmega328P 里有一个 1.1 V 的内部带隙基准;把这个已知的 1.1 V 拿去比电源轨,而不是反过来,于是 counts = 1023 × 1.1 ÷ 轨压,也就是 轨压 = 1023 × 1.1 ÷ counts。带隙的规格是 1.0–1.2 V,所以绝对值有几个百分点的松动——但负载下的变化量没有,而那个变化量才是这个测试本身。编译后 2,464 字节。

// 电源轨塌陷表 - 只用芯片自己,就量出 Uno 那条 5V 电源轨。不用表笔,
// 不用分压,不用多余的零件。上传之后,把你项目实际要驱动的东西打开
// - 马达、水泵、LED 灯带 - 然后盯着 LOWEST 那一栏。负载一跑电源轨就
// 往下掉,那是电源的上限用完了,不是你的程序有 bug。
//
// 它怎么量得到自己的供电:ATmega328P 内建一个 1.1 V 的带隙基准。平常
// ADC 是拿某个未知的引脚去比 AVcc。这里反过来,拿已知的 1.1 V 去比
// AVcc,所以满量程 1023 对应的就是 AVcc,于是
//     counts = 1023 * 1100mV / AVcc   ->   AVcc = 1023 * 1100mV / counts
// 带隙只保证到 1.0-1.2 V,所以绝对数字请当成 +/- 几个百分点。负载打开
// 那一刻的变化量才是诚实的部分,而这个变化就是整个测试。

const long BANDGAP_mV = 1100;   // 内部基准的标称值,单位毫伏
long lowest = 32000;            // 一路记下来的最小值,单位毫伏

long readRailMillivolts() {
  // REFS0 = 基准选 AVcc。MUX3:0 = 1110 选中那个 1.1 V 带隙。
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(3);                     // 基准的多路开关需要时间稳定
  ADCSRA |= _BV(ADSC);          // 切换多路开关之后,先丢掉一次转换
  while (ADCSRA & _BV(ADSC)) { }
  (void) ADC;

  ADCSRA |= _BV(ADSC);          // 这一次才是真的那一次
  while (ADCSRA & _BV(ADSC)) { }
  long counts = ADC;
  if (counts == 0) return 0;    // 绝不除以零
  return (1023L * BANDGAP_mV) / counts;
}

void setup() {
  Serial.begin(9600);
  analogReference(DEFAULT);     // 开始之前,先确定基准就是 AVcc
  Serial.println(F("Rail sag meter. Switch your load on and off and watch LOWEST."));
}

void loop() {
  long mv = readRailMillivolts();
  if (mv > 0 && mv < lowest) lowest = mv;

  Serial.print(F("rail "));
  Serial.print(mv);
  Serial.print(F(" mV   lowest "));
  Serial.print(lowest);
  Serial.print(F(" mV   "));
  // 4500 mV 是一条标称 5V 电源轨的下限(5V - 10%),也是 ATmega328P
  // 自己那个 4.5-5.5V 速度档的下限。光是芯片本身,接近 3.8 V 时都还能
  // 跑 16 MHz - 但电源轨上的其他东西,没有一个这么好说话。
  Serial.println(lowest < 4500 ? F("UNDER 4.5V - supply is sagging")
                               : F("holding"));
  delay(200);
}

我们从真实客户身上看到的常见错误

先选接头,才选电压。有位客户在还没决定适配器该输出什么之前,就先问它该接到哪里——“atau pon untuk saya connect kan power adapter kat mane yee”(那我该把电源适配器接在哪里呢)。负载定电压,耗流定安培,插头跟着这两样走。

报了电压,却没报负载。另一位写道:“if i want to supply 12V, how many and which one should i take”(如果我要供 12V,该拿几个、拿哪一个)。「几个」这半句,在 12 V 那几个零件被加起来之前是没有答案的——一条灯带加一个水泵,跟单单一条灯带差得远。

以为 5V 就是 5V。插进圆头插座的五伏,不等于 5 V 电源轨上的五伏;二极管和稳压器会先把自己的余量拿走。给圆头插座喂 9 V,或者给 5 V 轨喂 5 V——就是不要把这两件事交叉起来。

常见问题

我的项目只吃 500mA,可以用 5V 5A 的电源吗?

可以。电源守住 5 V,电流由项目自己的电阻决定,所以它取走 500 mA,剩下那 4.5 A 根本没有被产生出来。多出来的安培是余量;少了才会变成一条往下塌的电源轨。

Arduino Uno 的圆头插座需要几伏?

7–12 V。插座后面坐着一颗防反接二极管和一颗线性稳压器,两者加起来要比它们做出来的 5 V 高出大约 1.8 V,所以喂 5 V 进去,电源轨就跑出规格了。高过 12 V,稳压器会过热。

5.5 × 2.1 mm 和 5.5 × 2.5 mm 的 DC 插头差在哪里?

只差中间那根内孔,外壳同样是 5.5 mm。2.5 mm 的插头能滑到 2.1 mm 的针上,看起来插得好好的,接触却时有时无。Arduino 板子和我们的适配器都是 5.5 × 2.1 mm。

USB 转 DC 圆头的线,能取代电源适配器吗?

小型 5 V 负载可以:被动版本把接口的 5 V 直接送到圆头插头上。9 V 和 12 V 版本是升压的,而升压是拿电流换电压,所以它们能用的输出停在 500 mA 附近。

我怎么知道该买 5V 还是 12V 电源?

从负载读出来,不是从插座。整套都是 5 V 的,买 5 V;里面有 12 V 灯带或水泵,买 12 V;要喂板子的圆头插座,买 9 V。然后把电流加起来,买高过总和的。

最后更新:2026 年 8 月。有问题?WhatsApp 联系我们

Leave a Reply

Your email address will not be published. Required fields are marked *