ESP32 扩展板——也叫 ESP32 shield、extension board 或 GPIO 扩展板——是一块底座:它把 30 针的 DevKit 从面包板上抬起来,再把每一个引脚以带丝印名字的三针一列重新排出来:地、一条可切换的电源轨、信号,全部走 2.54 mm 排针。它买给你的是够得着的引脚、印在板上的引脚名,以及一个自带 5V 稳压的 DC 电源座。它不会多给你 3.3V 电流,也不会让 5V 传感器变得安全。手上有好几个三线模块、又打算用火牛供电,就该买;已经有面包板、又看得懂引脚图,就跳过。
ESP32 扩展板到底给了你什么?
ESP32 30P 扩展板用板子正中间那两排黑色排母夹住一块 30 针 DevKit,再把这两排排母吞掉的每一个引脚,从两侧的排针上还给你。每个引脚都以三针一列的形式出现,用的正是你手上杜邦线本来就在用的 2.54 mm 间距——G 是地、V 是供电、S 是信号——旁边还印着这个引脚的名字。
这块板最常被看错的地方就是 V 脚。它既不是固定的 5V,也不是另外一路独立的 3.3V:它是一条被所有列共用的同一条电源轨,而排针上那顶标着 JUMP 的黄色小跳线帽,一次决定这条轨对所有列同时是 5V 还是 3.3V。跳线旁边另有一排电源排针,把 5V、3.3V 连同地一起引出来;厂商的数据手册也写明这个可选电平同样送到 I2C 那几个脚上。
那些 G-V-S 引脚是公头,而几乎每一个传感器模块的引脚同样是公头。两个公头对不上,所以中间那几条线必须是母对母的。抽屉里那捆公对公杜邦线在这块板上什么都接不上。我们的杜邦线公母指南把三种线头讲清楚了。
本篇讲的就是这一对
可选加购
这是三条各走各的路线,不是一整篮。如果你拿了上面那块扩展板,母对母杜邦线才是你真正需要的那一行——它的排针是公头,公对公的线什么都接不上。如果你手上的是 Arduino Nano 而不是 ESP32,Nano 扩展板就是同一个想法换成那个封装。如果你决定完全不用底座,830 孔面包板加公对公杜邦线就是取代它的那条路。
30 针的 ESP32 DevKit 为什么会跟面包板打架?
30 针的 ESP32 DevKit V1 宽度正好等于一块全尺寸面包板整片孔阵的宽度,问题全出在这一个尺寸上。把一块 830 孔面包板的几何量一遍:中间凹槽两侧各五个孔,间距 2.54 mm,凹槽本身宽 0.3 in。于是一侧最外面那个孔到另一侧最外面那个孔,是 0.4 + 0.3 + 0.4 = 1.1 in。而 DevKit 那两排引脚的间距正好是 1.1 in——十一个 2.54 mm 间距,27.94 mm。同一个数字。
结果就是:DevKit 的引脚落在两边最外面那一列,而它的电路板整片压在那两个半区剩下的所有孔上。电气上那些孔跟它们上方的引脚仍然是连通的;物理上你一根杜邦线也插不进去,因为有块板压在上头。这不是「位子不太够」——是两侧都完全没有一个够得着的孔。面包板怎么用解释了哪些孔是连在一起的。
扩展板在供电上修好了什么,又修不好什么?
这块扩展板上只有一颗稳压,标称 5V、约 1A,而它属于哪一类决定了你该怎么喂它。那颗零件是 SOT-223 封装、带一大片散热焊盘的三脚 1117 系列芯片,夹在两颗 47 µF 电解电容中间——而整块板上找不到任何一颗电感。降压开关电源没有电感就工作不了,所以这是一颗线性稳压:多出来的电压它不是转换掉,而是烧成热。
乐鑫要求为 ESP32-WROOM-32 至少预留 500 mA。12V 灌进 DC 座时,稳压要把 (12 − 5) × 0.5 = 3.5 W 变成热。AMS1117 数据手册给出结到空气最好情况下的热阻是 46 °C/W,对着 125 °C 的结温上限,所以在 25 °C 的房间里这个封装大约只散得掉 2.2 W——而 46 °C/W 对这么小一块板来说已经是往好里说了。也就是说,12V 是在要求一颗只散得掉约 2.2 W 的封装去散 3.5 W,接着跳出来的过热保护,读起来跟你买这块板想治的那种掉电重启一模一样。换成 7.5 V 进,同样的 500 mA 只烧 1.25 W。丝印上印着 DC6.5-16V,但 1117 自己的输入绝对最大值是 15 V,而这块板自己的数据手册把这个座子写成 6-15 V。手册里那个 7-12 V 才是该干活的区间,而且你要的是靠近下限那一头。
它确实治好了一件真事。DevKit 自己那颗 3.3V 稳压,输入大约要有 4.4 V 才守得住负载下的 3.3 V,因为 1117 在大电流时自身就要掉大约 1.1 V。用一条两米长的细 USB 线送 5 V,同时射频又在拉几百毫安,到板子上可能只剩 4.3 V——板子重启,或者根本开不了机。7.5 V 从 DC 座进来,先有好几伏的余量可以掉,而 DevKit 的 VIN 脚拿到那 5 V 只走了一厘米铜箔。不过要判断这件事,请把 USB 线拔掉:两个 5 V 源落在同一个节点上,高的那个赢,所以插着 USB 的 DevKit 多半还是靠 USB 在跑。
接下来是老实话的另一半。把黄色跳线帽移到 3.3V,扩展板上没有任何东西在喂那条轨——这块板只有一颗稳压,而它做的是 5V。3.3V 是从 DevKit 自己的 3V3 脚倒回来的,来自 DevKit 板上那颗小稳压。装上扩展板之后,你的 3.3V 预算跟装之前完全一样。Wi-Fi 一发射就重启的项目,问题出在 3.3V,而这块板碰不到那里;ESP32 供电方案碰得到。
电平转换也一样没有。每一列的 S 脚只是从排针到排母那一脚之间的一条铜走线,而那一脚就是 ESP32 的 GPIO。乐鑫把高电平输入的上限定在 IO 电源轨加 0.3 V——3.3V 的 ESP32 就是 3.6 V。把跳线帽放在 5V,再用 V 轨去喂一个 5V 传感器,它的输出会摆到大约 5 V——超出上限 1.4 V,中间什么缓冲都没有。电源轨选择器是个方便,不是翻译器。
下面这段实测量的是这块板 38 针版本的电源脚——同一个想法,只是那个封装装不进这两排排母:

这块板装得上你手上那块吗?先数引脚
30P 扩展板只吃 30 针的 DevKit,别的都不行,所以这个检查五秒就够:拿起手上那块板,数它一条长边上的引脚。别数照片——30 针和 38 针的 ESP32 长得几乎一样,引脚数量是唯一靠得住的分辨方法。
| 你手上的板 | 每条长边引脚数 | 装得上 30P 扩展板吗? |
|---|---|---|
| ESP-32(CH340)USB-C | 15 | 可以——本篇讲的就是这一对 |
| ESP-32(CP2102)micro-USB | 15 | 可以 |
| ESP-32S,38 针 | 19 | 不行——排母的长度和位置都不对 |
| Arduino Nano V3 | 15 | 不行——完全是另一种封装 |
38 针的 ESP-32S 并没有被丢下,它对应的是另一个配件:ESP32 端子扩展板是一块绿色底座,每个引脚都配一个螺丝端子——同样的交换,换成能接裸线的形式。还在挑板子?先让ESP32 型号怎么选把这一步定下来。
这个思路也不是 ESP32 专属:Nano 扩展板为 Arduino Nano V3 做同一件事——把它插进一块 Uno 外形的蓝色板中央那两排排母,再把每个引脚以黄色的三针 G-V-S 一组还回来。

怎么确认板子插到位了?
把 DevKit 压下去,让它的 USB 接口朝向扩展板自己那几个 USB 座的同一端,然后别去假设线路是通的——去证明它。下面这段程序让 GPIO2 上的板载 LED 闪烁,同时慢慢翻转丝印为 D5 的那一列。
// 扩展板插接检查。在你信任任何接线之前,先证明扩展板上的
// 各列排针,真的接到丝印上写的那个 ESP32 引脚。
const int LED_ONBOARD = 2; // 30 针 DevKit V1 上丝印为 D2 的板载 LED
const int TEST_PIN = 5; // 扩展板上丝印为 D5 的那一列排针
void setup() {
Serial.begin(115200);
pinMode(LED_ONBOARD, OUTPUT);
pinMode(TEST_PIN, OUTPUT);
Serial.println("Black probe in the G hole of the D5 column, red probe in S.");
Serial.println("S must swing 0.0 V and 3.3 V, once a second, never 5 V.");
Serial.println("Move the red probe to V: that is 5.0 V or 3.3 V, whichever");
Serial.println("the yellow JUMP cap selects. The S pin does not follow it.");
}
void loop() {
digitalWrite(LED_ONBOARD, HIGH);
digitalWrite(TEST_PIN, HIGH); // GPIO5 被驱动到 3.3 V
delay(1000);
digitalWrite(LED_ONBOARD, LOW);
digitalWrite(TEST_PIN, LOW); // GPIO5 被拉到 0 V
delay(1000);
}
即使电源轨跳线帽放在 5V,一根被驱动的 S 脚量到的仍然是 3.3 V——电源轨和信号各走各的,所以 5V 的电源轨绝不会把你的输出变成 5V 输出。有一个坑住在最外那条边上:丝印为 VP、VN、D34 和 D35 的那四列分别是 GPIO36、39、34 和 35,这四个 ESP32 引脚是只能输入的。把 TEST_PIN 指到其中一个,什么都不会动。把它们留给负责产生信号的传感器。
第二个坑跟着方便一起来:每一列都一样好接,于是模块就落在最顺手的那一列上——而 D12 是一个 strapping 引脚,ESP32 在上电那一刻会读它一次。开机时被拉高,它就告诉芯片 flash 跑 1.8 V,而一颗 3.3 V 的 flash 于是拒绝启动。空板开机好好的,排针插满之后就死机?先把 D12 拔掉。
什么时候一块普通面包板才是更好的答案?
站在柜台后面,我们得说:普通面包板赢的次数多到值得讲出来。只接一个传感器加一颗 LED,三条母对母杜邦线直接插在 DevKit 的引脚上,比底座便宜,也不占地方。把两块面包板并排推在一起,DevKit 两侧就各多出一排自由的孔——前提是接缝处的孔距接得上。而一个主要由散装被动元件搭起来的电路,需要的是面包板的孔位行,那恰恰是底座不给你的东西——它给你的是排针,所以大多数项目无论如何都还要一块面包板。
我们常见到的错误
给 38 针的 ESP-32S 买了 30P 的板。这两块在照片里几乎一模一样。下单前先数清楚一条长边是 15 针还是 19 针;38 针的板要的是螺丝端子那一块。
指望它治好 Wi-Fi 掉电重启。射频一发射就重启是 3.3V 的问题,而每一毫安 3.3V 电流仍然来自 DevKit 板上那颗稳压。
带了公对公杜邦线。各列是公针,传感器模块也是公针,所以中间那几条线两端都必须是母头——这是一块新扩展板买回来搁一个星期没用的最常见原因。
接 3.3V 传感器却把跳线帽留在 5V。一顶跳线帽决定每一列的 V 脚,所以一个只吃 3.3V 的模块会在供电脚上看到 5V——而它可能会用一个 5 V 的信号回敬你那个 3.6 V 上限的 GPIO。
常见问题
ESP32 扩展板到底是干什么用的?
它用中央两排排母夹住一块 30 针的 ESP32 DevKit,再把每一个引脚以三针一列的形式引到 2.54 mm 排针上——地、供电、信号——旁边印着这个引脚的名字,另外还多给你一个 DC 电源座和一颗 5V 稳压。
ESP32 扩展板能治掉电重启、或者多给电流吗?
一半能。它那颗 5V 稳压让你可以用火牛经 DC 座喂 DevKit,而不是靠一条细 USB 线,这修好的是 5V 不够的问题。3.3V 上它一点都没多给——那条轨仍然来自 DevKit 自己的稳压,所以一块 Wi-Fi 一发射就重启的板,装上之后照样重启。
ESP32 扩展板可以接 5V 传感器吗?
不安全——这块板没有电平转换。每一列的信号脚都是直通 ESP32 GPIO 的一条走线,而乐鑫把高电平输入上限定在 IO 电源轨加 0.3 V,3.3V 的 ESP32 就是 3.6 V。5V 传感器的输出大约超出 1.4 V。那条 5V 电源轨是拿来喂模块的,它不负责保护芯片不被模块伤到。
我到底需要 ESP32 扩展板,还是一块面包板就够?
只接一两条线,或者电路主要由散装被动元件组成,那面包板就够了,因为底座给你的是排针而不是孔位行。当项目里有好几个三线模块、要靠火牛供电、或者以后还得让别人找得到正确的引脚时,扩展板就值得买。
最后更新:2026 年 9 月。有问题?WhatsApp 联系我们。



ESP32 Expansion Board 30P Expansion Board ESP32 Shield GPIO Expansion Development Kit
NodeMCU ESP32 Wi-Fi + Bluetooth Development Board CH340/CP2012 - For IOT Project - ESP-32 (CH340)
Nano Expansion Shield For Arduino NANO R3
MB102 Breadboard 170 400 830 Holes Breadboard Donut Board Arduino Prototype Multi Color - BREADBOARD (830 HOLES)
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CM
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE F-F 20CM