MAKER · UNO 到 ESP

从 Arduino Uno 认识 ESP 主板

会点灯、读传感器之后,什么时候需要换 ESP?这篇先帮你按项目选板,再看外观、引脚图和接线注意事项。

先记住最重要的区别:Uno 的信号通常是 5V,ESP 的 GPIO 通常是 3.3V。不要把 Uno 的 5V 输出直接接到 ESP 引脚,可能损坏主板。

先按项目选板

项目想法 可以先看 和 Uno 相比
网页控制、联网机器人、多个传感器 经典 ESP32
常见:ESP32 DevKit V1、ESP32-WROOM-32E
多了 Wi-Fi、蓝牙,接口也多;适合作为第一块 ESP。
小型无线传感器、手机 BLE 遥控 ESP32-C3
常见小板:C3 SuperMini
体积小,支持 Wi-Fi 和低功耗蓝牙;小板之间的引脚排列可能不同。
摄像头、USB、屏幕或更复杂的互动 ESP32-S3
常见:S3 DevKitC-1 N8R8
可选内存更大的版本;购买时要核对完整型号和接口。
基础电路、刚开始做传感器项目 继续用 Uno 先练熟输入、输出和供电;项目需要联网时再换 ESP。

商品名提醒:“DevKit V1”“SuperMini”常是开发板外形或商家标题,不保证电路完全相同。先看板上模组/芯片的完整型号,再查对应引脚图。

按型号看图、选脚、挑项目

下面每一节都配有开发板外观图和引脚图。图源为乐鑫官方中文开发板指南。淘宝常见兼容板(尤其 C3 SuperMini、ESP32 DevKit V1)不一定与官方板排针一致;图用于认识同系列,实际接线请按手中板子的完整型号、背面丝印和卖家原理图核对。

01 / 入门最通用 · Wi-Fi + 蓝牙

经典 ESP32 · ESP32-WROOM-32E

ADC · 默认 12 位 / 0–4095PWM · analogWrite 0–255GPIO · 3.3V 逻辑

适合网页控制、联网小车、无线传感器、智能灯和需要较多普通 GPIO 的综合项目。常见淘宝板名是 ESP32 DevKit V1;这里的图是乐鑫 DevKitC V4,二者外观和脚位不保证相同。

经典 ESP32 · ESP32-WROOM-32E开发板外观与接口标注图
官方外观图:辨认 USB、按键、模组与排针
经典 ESP32 · ESP32-WROOM-32E开发板引脚布局图
官方引脚图:点击可查看原图,接线前请核对手中板卡版本
常用引脚,先从这些看

ESP32-WROOM-32E 是焊在开发板上的模组。经典 ESP32 常用 ADC1 为 GPIO32–39;GPIO34–39只能输入。GPIO21/22 常用于 I²C(SDA/SCL),GPIO25/26 可作 DAC 模拟输出;具体 I²C 脚可在程序里配置。

容易踩坑

GPIO6–11 通常连接板载 Flash,不要接外设;GPIO0、2、12、15 属于启动配置相关脚,外接电路可能导致无法启动。Wi-Fi 工作时模拟采样优先用 ADC1;ADC2 与 Wi-Fi 会冲突。GPIO 输出是 3.3V,不能直接接 Uno 的 5V 信号。

打开乐鑫官方中文指南:完整引脚表、原理图与版本说明 →

02 / 小巧低成本 · Wi-Fi + BLE

ESP32-C3 · C3 DevKitM-1 / C3 SuperMini

ADC · 默认 12 位 / 0–4095PWM · analogWrite 0–255GPIO · 3.3V 逻辑

适合小型无线传感器、手机蓝牙遥控、桌面装置和只需要少量引脚的联网作品。C3 SuperMini 很常见,但它不是 DevKitM-1;不同厂家板子的针脚排列、USB 电路和 LED 接法可能不同。

ESP32-C3 · C3 DevKitM-1 / C3 SuperMini开发板外观与接口标注图
官方外观图:辨认 USB、按键、模组与排针
ESP32-C3 · C3 DevKitM-1 / C3 SuperMini开发板引脚布局图
官方引脚图:点击可查看原图,接线前请核对手中板卡版本
常用引脚,先从这些看

在官方 C3 DevKitM-1 上,GPIO0–4 带 ADC1,做电位器/模拟传感器时可优先从这些脚查起;GPIO20/21 常作 UART RX/TX;GPIO18/19 与 USB D−/D+ 相关。引脚图上的 SDA/SCL 不是固定专用脚,按所用开发板和程序设置。

容易踩坑

GPIO8 常连板载 RGB LED/日志功能,GPIO9 是 BOOT 启动相关脚,GPIO2 也有启动配置用途;不要把启动脚随意接到会强拉高/拉低的电路。若使用 USB 原生通信,避免把 GPIO18/19 当普通 IO。购买 SuperMini 时先找该卖家对应版本的针脚图。

打开乐鑫官方中文指南:完整引脚表、原理图与版本说明 →

03 / USB、屏幕、摄像头和较复杂互动

ESP32-S3 · S3 DevKitC-1 N8R8

ADC · 默认 12 位 / 0–4095PWM · analogWrite 0–255GPIO · 3.3V 逻辑

适合需要原生 USB、较多外设、屏幕/摄像头或更大运行内存的项目。N8R8 通常指 8MB Flash + 8MB PSRAM;下单仍要确认模组完整型号。

ESP32-S3 · S3 DevKitC-1 N8R8开发板外观与接口标注图
官方外观图:辨认 USB、按键、模组与排针
ESP32-S3 · S3 DevKitC-1 N8R8开发板引脚布局图
官方引脚图:点击可查看原图,接线前请核对手中板卡版本
常用引脚,先从这些看

S3 DevKitC-1 v1.1 上 GPIO1–10 带 ADC1,可作为模拟输入候选;GPIO19/20 连接原生 USB D−/D+;板载 RGB LED 在 v1.1 通常接 GPIO38。I²C 的 SDA/SCL 可选普通 GPIO并在程序中指定。

容易踩坑

若 USB 功能正在使用,GPIO19/20 不宜同时接普通外设。部分带 8 线 Flash/PSRAM 的板子会占用 GPIO35–37;不要照抄另一种内存配置的引脚图。GPIO0 是启动相关脚;S3 DevKitC 不同硬件版本 RGB LED 的 GPIO 也可能不同(v1.0 常见 GPIO48,v1.1 为 GPIO38)。

打开乐鑫官方中文指南:完整引脚表、原理图与版本说明 →

04 / 需要 Wi-Fi 6、Thread 或 Zigbee 时再选

ESP32-C6 · C6 DevKitC-1

ADC · 默认 12 位 / 0–4095PWM · analogWrite 0–255GPIO · 3.3V 逻辑

适合想把作品接入 Thread/Zigbee 设备,或明确需要 Wi-Fi 6 的无线项目。只是做普通 Wi-Fi 网页控制时,经典 ESP32 或 C3 往往更容易入门。

ESP32-C6 · C6 DevKitC-1开发板外观与接口标注图
官方外观图:辨认 USB、按键、模组与排针
ESP32-C6 · C6 DevKitC-1开发板引脚布局图
官方引脚图:点击可查看原图,接线前请核对手中板卡版本
常用引脚,先从这些看

官方 C6 DevKitC-1 上 GPIO0–5 带 ADC1,可作为模拟输入候选;GPIO12/13 与 USB D−/D+ 相关;GPIO16/17 是 UART TX/RX。板载 RGB LED 使用 GPIO8。用哪一脚前先对照完整引脚表确认复用功能。

容易踩坑

GPIO8、9、15 以及 MTMS/MTDI 是启动配置相关脚,接线可能影响上电启动;GPIO8 还连接板载 RGB LED。GPIO12/13 被 USB 使用时别再当普通 IO。C6 引脚与经典 ESP32、C3、S3 都不通用,不能照搬 Uno 接线表。

打开乐鑫官方中文指南:完整引脚表、原理图与版本说明 →

所有 ESP 都适用的安全检查:GPIO 是 3.3V 逻辑;电机、舵机不要由 GPIO 直接供电,应使用驱动板和合适电源;共地前确认供电方案。引脚图上的 ADC 是输入,PWM 是快速开关信号,不等于平滑模拟电压。不同芯片的 ADC 范围、可用脚和 Wi-Fi 干扰情况都要按型号确认。
MAKER 速查卡

ADC、PWM、内存和模组,一次看懂

ADC = 模拟输入PWM = 脉冲输出Flash = 断电仍保存PSRAM = 运行时扩展内存
你熟悉的量 Arduino Uno ESP(Arduino-ESP32 默认)
ADC / analogRead 10 位:0–1023 通常 12 位:0–4095;可用脚和可测电压随芯片/设置变化
PWM / analogWrite 8 位:0–255 兼容 Arduino 用法:0–255;LEDC 可另设分辨率与频率
ADC 读数怎样理解?

12 位把读数分成 4096 个数字等级,所以原始数通常是 0 到 4095。它不代表 ESP 一定比 Uno 测得准:噪声、参考电压、校准、接线和芯片差异都会影响结果。ADC 的电压测量上限也不一定刚好是 3.3V;先查具体芯片和衰减设置,绝不能把 5V 接入 GPIO/ADC。Arduino-ESP32 可用 analogReadMilliVolts() 读取校准后的毫伏值。

PWM 的 0–255 是什么?

它设置一个周期里“开着”的比例:0 接近一直关,128 约一半时间导通,255 接近一直开。LED 看起来像亮度变化,但引脚输出仍是快速高低电平,不是平滑模拟电压。LEDC 位数越高,亮度调节越细;同一计时器下频率与分辨率不能无限同时提高。要稳定的直流模拟电压,应使用 DAC(若该型号具备)或外接 DAC。

模拟输入、PWM 输出,怎样对应到电压?

记住方向:ADC 是“电压 → 数字读数”;PWM 是“数字设置 → 快速开关信号”。它们不是同一种“模拟电压”。

输入 ① ADC

Uno 的近似换算:电压 ≈ 读数 ÷ 1023 × Vref

5V Uno 默认参考电压约为 5V:读数 512 ≈ 2.50V;读数 1023 ≈ 5V。改过 AREF/analogReference 后,要用新的 Vref。

输入 ② ESP ADC

理解用的近似公式:电压 ≈ 读数 ÷ 4095 × 当前量程

ESP Arduino 默认读数通常为 0–4095,但不同芯片、衰减设置的量程不同,而且 ADC 不完全线性。实际项目优先用 analogReadMilliVolts(pin) 读取校准后的毫伏值,别直接把原始读数当电压。

输出 ① PWM

平均效果约为:高电平电压 × 占空比

Uno 上 analogWrite(128):约 5V × 128/255 ≈ 2.5V 的平均效果;ESP 上同样的值:约 3.3V × 128/255 ≈ 1.65V。引脚实际仍在 0V 和高电平间快速跳变;加 RC 低通滤波、且负载合适时,才会得到接近平均值的平滑电压。

输出 ② 真正 DAC

经典 ESP32:GPIO25 / GPIO26 有 8 位 DAC

可把 0–255 转成接近 0–3.3V 的连续电压;例如数值 128 约为 1.65V。精度会受供电和芯片误差影响。本文提到的 C3、S3、C6 没有经典 ESP32 这组片上 DAC;需要稳定模拟电压时用外接 DAC,或设计 PWM + 滤波。

接线安全:3.3V 是 ESP GPIO 的逻辑高电平,不等于 ADC 一定能准确测到 3.3V。ADC 量程由型号和衰减决定;例如 Arduino-ESP32 文档列出的 11dB 量程,C3 约 0–2.5V,S3 约 0–3.1V。C6 和不同芯片版本请查对应数据手册。超过 ADC 量程会读满值/失真;超过 GPIO 允许电压则可能损坏芯片。5V 传感器先用分压或电平转换。

小提醒:电机、舵机用 PWM 时,PWM 代表控制脉冲/占空比;舵机尤其要看脉冲宽度规范,不能用“平均电压”来代替信号要求。

N16R8、WROOM、模组分别是什么?

Flash · 闪存
断电后内容还在,主要存放程序、文件和部分系统数据。容量大一些,可以放更多程序/资源。
PSRAM · 外接运行内存
程序运行时临时使用,断电就清空。它能给图片、摄像头帧、较大缓存腾空间;不是 Flash,也不会自动让程序变快。
模组 · 焊在板上的小模块
例如 ESP32-S3-WROOM-1-N16R8:带金属屏蔽罩、无线芯片/射频和天线等,具体内存配置看完整料号。开发板则是在模组外再加 USB、稳压、电源按键和排针,方便连接电脑与面包板。
读型号例子:N16R8 通常表示 16MB Flash + 8MB PSRAM;N8R8 通常是 8MB + 8MB,N4 常表示 4MB Flash(没有标 PSRAM)。这些是具体模组系列的后缀规则,仍要以对应数据手册为准。WROOM 是模组系列/封装形式,不是整块开发板;末尾 1U 等还可能关系到外接天线。买板时同时看模组丝印和开发板完整型号。

提示:ESP 的 Arduino analogWrite() 默认范围与 Uno 一样是 0–255;如果改用 ledcAttach(),需同时设置 PWM 频率和位数。芯片支持的上限不等于任何频率下都能使用该上限。

几个词,用 Uno 的经验解释

GPIO
类似 Uno 的 D2、D3,是程序可以读写的普通引脚;ESP 的一个 GPIO 还可能兼任其他功能。
ADC / 模拟输入
类似 Uno 的 A0,用来读取电位器、光敏传感器等变化的电压。要查具体型号哪些脚支持 ADC。
PWM
通过快速开关引脚控制 LED 亮度或电机速度,和 Uno 的 analogWrite 用途相似;输出仍是脉冲,不是平滑的固定电压。
模组 / 开发板
WROOM-32E 是焊在开发板上的无线模组;DevKit 是带 USB、电源和排针、方便接线的整块板。

看懂常见型号:重点认识 WROOM-32E

ESP32-WROOM-32E 是常见的经典 ESP32 模组,也是很多 ESP32 DevKit V1 上的银色金属屏蔽模块。WROOM 是模组系列,32 是经典 ESP32 家族,E 是模组版本标识;带 U 的 32UE 通常使用外接天线接口。

商品后缀常表示容量。例如 WROOM-32E-N4 通常是 4MB Flash(存放程序和文件的闪存)。S3 的 N8R8 通常表示 8MB Flash + 8MB PSRAM(程序运行时可用的扩展内存)。不同系列后缀含义可能不同,购买时看完整型号。

快速辨认:经典 ESP32 = 功能均衡、适合联网综合项目;C3 = 小巧、常用于低成本 BLE 小项目;S3 = USB、摄像头或较复杂互动项目常见;C6 = 面向 Wi-Fi 6、Thread/Zigbee 等无线新项目,普通入门通常用不到。

模拟输入、模拟输出:与 Uno 有什么不同?

Uno:A0 读取模拟电压,常见读数是 0–1023。analogWrite 常用来输出 PWM,控制 LED 亮度或电机速度,并非真正的连续电压。

ESP:很多型号的 ADC 读数常见范围是 0–4095,但数字更大不代表测量一定更准。ESP 的 PWM 也用于调光/调速。不同 ESP 型号的 ADC 引脚和模拟输出能力不同,不能把经典 ESP32 的脚位照搬到 C3 或 S3。

读数抖动怎么办?Wi-Fi、电机、舵机、电源不稳和长导线都可能带来干扰。先让模拟传感器远离电机线、缩短信号线、检查供电和共地;经典 ESP32 开 Wi-Fi 时模拟读取优先试 ADC1 引脚。如果要稳定输出电压,PWM 加滤波只能近似;需要真正模拟输出时查该型号是否有 DAC,或使用外接 DAC 模块。

新手最容易踩的 5 个坑

1. 把 Uno 的 5V 接进 ESP GPIO ESP 多数 GPIO 是 3.3V 逻辑;先查模块输出,需要时加电平转换/分压。
2. 以为所有标出来的针脚都能随便用 有的脚用于板载 Flash、USB、启动或串口;先查对应型号引脚图。
3. 用 GPIO 直接带电机或舵机 GPIO 负责控制信号,负载要用合适的驱动板和独立电源;按电路设计共地。
4. 模拟传感器读数忽高忽低 检查供电、共地和线路;远离 PWM/电机线。经典 ESP32 使用 Wi-Fi 时优先试 ADC1。
5. 图片看起来一样就照抄引脚 V1、V4、C3、S3 和不同商家板卡可能排针/板载元件不同;按实物型号查图。
接线前的快速检查

□ 完整型号对上了  □ 打开了对应的中文引脚图  □ 传感器信号不超过 3.3V  □ 电机/舵机有驱动和合适电源  □ GND 已确认

官方资料:ESP32-WROOM-32E 中文产品页。外观照片和排针表可从上方三款开发板中文官方指南查看。