从 Arduino Uno 认识 ESP 主板
会点灯、读传感器之后,什么时候需要换 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)不一定与官方板排针一致;图用于认识同系列,实际接线请按手中板子的完整型号、背面丝印和卖家原理图核对。
经典 ESP32 · ESP32-WROOM-32E
适合网页控制、联网小车、无线传感器、智能灯和需要较多普通 GPIO 的综合项目。常见淘宝板名是 ESP32 DevKit V1;这里的图是乐鑫 DevKitC V4,二者外观和脚位不保证相同。


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


在官方 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 时先找该卖家对应版本的针脚图。
ESP32-S3 · S3 DevKitC-1 N8R8
适合需要原生 USB、较多外设、屏幕/摄像头或更大运行内存的项目。N8R8 通常指 8MB Flash + 8MB PSRAM;下单仍要确认模组完整型号。


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


官方 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 接线表。
ADC、PWM、内存和模组,一次看懂
| 你熟悉的量 | Arduino Uno | ESP(Arduino-ESP32 默认) |
|---|---|---|
| ADC / analogRead | 10 位:0–1023 | 通常 12 位:0–4095;可用脚和可测电压随芯片/设置变化 |
| PWM / analogWrite | 8 位:0–255 | 兼容 Arduino 用法:0–255;LEDC 可另设分辨率与频率 |
12 位把读数分成 4096 个数字等级,所以原始数通常是 0 到 4095。它不代表 ESP 一定比 Uno 测得准:噪声、参考电压、校准、接线和芯片差异都会影响结果。ADC 的电压测量上限也不一定刚好是 3.3V;先查具体芯片和衰减设置,绝不能把 5V 接入 GPIO/ADC。Arduino-ESP32 可用 analogReadMilliVolts() 读取校准后的毫伏值。
它设置一个周期里“开着”的比例:0 接近一直关,128 约一半时间导通,255 接近一直开。LED 看起来像亮度变化,但引脚输出仍是快速高低电平,不是平滑模拟电压。LEDC 位数越高,亮度调节越细;同一计时器下频率与分辨率不能无限同时提高。要稳定的直流模拟电压,应使用 DAC(若该型号具备)或外接 DAC。
模拟输入、PWM 输出,怎样对应到电压?
记住方向:ADC 是“电压 → 数字读数”;PWM 是“数字设置 → 快速开关信号”。它们不是同一种“模拟电压”。
Uno 的近似换算:电压 ≈ 读数 ÷ 1023 × Vref
5V Uno 默认参考电压约为 5V:读数 512 ≈ 2.50V;读数 1023 ≈ 5V。改过 AREF/analogReference 后,要用新的 Vref。
理解用的近似公式:电压 ≈ 读数 ÷ 4095 × 当前量程
ESP Arduino 默认读数通常为 0–4095,但不同芯片、衰减设置的量程不同,而且 ADC 不完全线性。实际项目优先用 analogReadMilliVolts(pin) 读取校准后的毫伏值,别直接把原始读数当电压。
平均效果约为:高电平电压 × 占空比
Uno 上 analogWrite(128):约 5V × 128/255 ≈ 2.5V 的平均效果;ESP 上同样的值:约 3.3V × 128/255 ≈ 1.65V。引脚实际仍在 0V 和高电平间快速跳变;加 RC 低通滤波、且负载合适时,才会得到接近平均值的平滑电压。
经典 ESP32:GPIO25 / GPIO26 有 8 位 DAC
可把 0–255 转成接近 0–3.3V 的连续电压;例如数值 128 约为 1.65V。精度会受供电和芯片误差影响。本文提到的 C3、S3、C6 没有经典 ESP32 这组片上 DAC;需要稳定模拟电压时用外接 DAC,或设计 PWM + 滤波。
小提醒:电机、舵机用 PWM 时,PWM 代表控制脉冲/占空比;舵机尤其要看脉冲宽度规范,不能用“平均电压”来代替信号要求。
N16R8、WROOM、模组分别是什么?
断电后内容还在,主要存放程序、文件和部分系统数据。容量大一些,可以放更多程序/资源。
程序运行时临时使用,断电就清空。它能给图片、摄像头帧、较大缓存腾空间;不是 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 的经验解释
类似 Uno 的 D2、D3,是程序可以读写的普通引脚;ESP 的一个 GPIO 还可能兼任其他功能。
类似 Uno 的 A0,用来读取电位器、光敏传感器等变化的电压。要查具体型号哪些脚支持 ADC。
通过快速开关引脚控制 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 中文产品页。外观照片和排针表可从上方三款开发板中文官方指南查看。
