正在加载图示…
每节课都在开发板上运行你自己的代码。通过这节课的检查,就能把它打勾完成。
按正确的顺序组装开发板,然后上电检查,就像在实验台上一样。
已完成 0/11 步从一块什么都没装的黑色两层板开始。每个元件都按照工厂的顺序装回去。
每一种故障都会在模拟中真实发生。触发一个,观察图示,再读一读原因。
乐鑫官方的 ESP32-S3 开发板:一块 ESP32-S3-WROOM-1 模组(240 MHz 的双核 Xtensa LX7、512 KB SRAM、8 MB 闪存、8 MB PSRAM、Wi-Fi 和低功耗蓝牙 5)装在一块 25.4 x 62.7 mm、带两个 Micro-USB 口的板子上。UART 口经过一颗 CP2102N 桥接到 UART0,默认情况下上传和 Serial 都走这里;USB 口则是芯片自己在 GPIO19/20 上的全速 USB。一颗 SGM2212 稳压器从 USB 产生 3.3 V,红色的 D5 表示 3.3 V 已经建立,一颗可寻址 RGB LED 接在 GPIO38 上(老款 v1.0 上是 GPIO48)。所有 GPIO 都只能用 3.3 V:千万不要给它 5 V。
| 排针 | 引脚 | 名称 | 功能 | 电平 | 最大电流 | 备注 |
|---|---|---|---|---|---|---|
| J1 | 1 | 3V3 | – | 3.3 V | – | 稳压器输出的 3.3 V(最多约 800 mA 减去板子自身的用量),或者在没有 USB 时作为 3.3 V 输入。 |
| J1 | 2 | 3V3 | – | 3.3 V | – | |
| J1 | 3 | RST | CHIP_PU, EN | 3.3 V | – | EN(CHIP_PU)。由 R5(10 kΩ)上拉,C6 上有 1 µF 的延时电容。把它拉低会让芯片保持复位;RESET 按钮的作用一样。 |
| J1 | 4 | 4 | RTC_GPIO4, TOUCH4, ADC1_CH3 | 3.3 V | 20 mA | 课程里用来接 LED(配 330 Ω)。ADC1 通道,Wi-Fi 打开时也能用,还是一个触摸焊盘。 |
| J1 | 5 | 5 | RTC_GPIO5, TOUCH5, ADC1_CH4 | 3.3 V | 20 mA | |
| J1 | 6 | 6 | RTC_GPIO6, TOUCH6, ADC1_CH5 | 3.3 V | 20 mA | |
| J1 | 7 | 7 | RTC_GPIO7, TOUCH7, ADC1_CH6 | 3.3 V | 20 mA | |
| J1 | 8 | 15 | RTC_GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P | 3.3 V | 20 mA | |
| J1 | 9 | 16 | RTC_GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N | 3.3 V | 20 mA | |
| J1 | 10 | 17 | RTC_GPIO17, U1TXD, ADC2_CH6 | 3.3 V | 20 mA | |
| J1 | 11 | 18 | RTC_GPIO18, U1RXD, ADC2_CH7, CLK_OUT3 | 3.3 V | 20 mA | |
| J1 | 12 | 8 | RTC_GPIO8, TOUCH8, ADC1_CH7, SUBSPICS1, I2C SDA (Arduino default) | 3.3 V | 20 mA | Arduino 默认的 I2C SDA(Wire.begin(8, 9))。 |
| J1 | 13 | 3 | RTC_GPIO3, TOUCH3, ADC1_CH2, Strapping 引脚 | 3.3 V | 20 mA | 启动配置引脚(JTAG 信号源选择)。复位时让它悬空。 |
| J1 | 14 | 46 | GPIO46, Strapping 引脚 | 3.3 V | 20 mA | 启动配置引脚。要进入下载模式,复位时它必须为低;上传时千万不要把它拉高。 |
| J1 | 15 | 9 | RTC_GPIO9, TOUCH9, ADC1_CH8, FSPIHD, SUBSPIHD, I2C SCL (Arduino default) | 3.3 V | 20 mA | |
| J1 | 16 | 10 | RTC_GPIO10, TOUCH10, ADC1_CH9, FSPICS0, FSPIIO4, SUBSPICS0, SPI SS (Arduino default) | 3.3 V | 20 mA | |
| J1 | 17 | 11 | RTC_GPIO11, TOUCH11, ADC2_CH0, FSPID, FSPIIO5, SUBSPID, SPI MOSI (Arduino default) | 3.3 V | 20 mA | |
| J1 | 18 | 12 | RTC_GPIO12, TOUCH12, ADC2_CH1, FSPICLK, FSPIIO6, SUBSPICLK, SPI SCK (Arduino default) | 3.3 V | 20 mA | |
| J1 | 19 | 13 | RTC_GPIO13, TOUCH13, ADC2_CH2, FSPIQ, FSPIIO7, SUBSPIQ, SPI MISO (Arduino default) | 3.3 V | 20 mA | |
| J1 | 20 | 14 | RTC_GPIO14, TOUCH14, ADC2_CH3, FSPIWP, FSPIDQS, SUBSPIWP | 3.3 V | 20 mA | |
| J1 | 21 | 5V | – | 5 V | – | VCC_5V:经过肖特基二极管后由 USB 输出约 4.6 V,或者作为没有保护的 5 V 输入。 |
| J1 | 22 | G | – | – | – | |
| J3 | 1 | G | – | – | – | |
| J3 | 2 | TX | U0TXD, CLK_OUT1 | 3.3 V | 20 mA | UART0 TX,连到 CP2102N。Serial 的打印从这里出来;别占用它。 |
| J3 | 3 | RX | U0RXD, CLK_OUT2 | 3.3 V | 20 mA | 来自 CP2102N 的 UART0 RX。上传从这里进来;别占用它。 |
| J3 | 4 | 1 | RTC_GPIO1, TOUCH1, ADC1_CH0 | 3.3 V | 20 mA | |
| J3 | 5 | 2 | RTC_GPIO2, TOUCH2, ADC1_CH1 | 3.3 V | 20 mA | |
| J3 | 6 | 42 | MTMS | 3.3 V | 20 mA | |
| J3 | 7 | 41 | MTDI, CLK_OUT1 | 3.3 V | 20 mA | |
| J3 | 8 | 40 | MTDO, CLK_OUT2 | 3.3 V | 20 mA | |
| J3 | 9 | 39 | MTCK, CLK_OUT3, SUBSPICS1 | 3.3 V | 20 mA | |
| J3 | 10 | 38 | FSPIWP, SUBSPIWP, RGB LED data (v1.1) | 3.3 V | 20 mA | 在 v1.1 上驱动 RGB LED(WS2812 数据)。可以当 GPIO 用,但 LED 会有反应。 |
| J3 | 11 | 37 | SPIDQS, FSPIQ, SUBSPIQ | 3.3 V | – | 排针上印着 GPIO37,但在这块 N8R8 模组上它连到了八线 PSRAM。使用它会让板子崩溃。 |
| J3 | 12 | 36 | SPIIO7, FSPICLK, SUBSPICLK | 3.3 V | – | 排针上印着 GPIO36,但在这块 N8R8 模组上它连到了八线 PSRAM。使用它会让板子崩溃。 |
| J3 | 13 | 35 | SPIIO6, FSPID, SUBSPID | 3.3 V | – | 排针上印着 GPIO35,但在这块 N8R8 模组上它连到了八线 PSRAM。使用它会让板子崩溃。 |
| J3 | 14 | 0 | RTC_GPIO0, BOOT button, Strapping 引脚 | 3.3 V | 20 mA | 启动配置引脚,BOOT 按钮把它接到 GND。复位时为高会启动你的程序,为低则进入下载模式。启动后可以放心地当按钮读取。 |
| J3 | 15 | 45 | GPIO45, Strapping 引脚 | 3.3 V | 20 mA | 启动配置引脚(闪存电压选择)。复位时让它保持为低或悬空。 |
| J3 | 16 | 48 | SPICLK_N, SUBSPICLK_N_DIFF, RGB LED data (v1.0) | 3.3 V | 20 mA | 仅在 v1.0 板上是 RGB LED 的数据线。在使用 1.8 V PSRAM 的模组上工作在 1.8 V。 |
| J3 | 17 | 47 | SPICLK_P, SUBSPICLK_P_DIFF | 3.3 V | 20 mA | 在使用 1.8 V PSRAM 的模组上工作在 1.8 V;在这块 N8R8 上是 3.3 V。 |
| J3 | 18 | 21 | RTC_GPIO21 | 3.3 V | 20 mA | |
| J3 | 19 | 20 | RTC_GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+ | 3.3 V | 20 mA | USB 口的 USB D+。把它当 GPIO 用会断掉原生 USB 连接。 |
| J3 | 20 | 19 | RTC_GPIO19, U1RTS, ADC2_CH8, CLK_OUT2, USB_D- | 3.3 V | 20 mA | USB 口的 USB D−。把它当 GPIO 用会断掉原生 USB 连接。 |
| J3 | 21 | G | – | – | – | |
| J3 | 22 | G | – | – | – |
这块开发板能驱动的传感器和执行器,以及真实的接法。
任何空闲的 GPIO 经过一个 330 Ω 电阻:(3.3 − 2.0) V / 330 Ω 约为 4 mA,远在引脚默认能提供的 20 mA 之内。
| 零件引脚 | 开发板引脚 |
|---|---|
| A (through 330 Ω) | 4导线颜色:橙色 |
| K | G导线颜色:黑色 |
按钮接在 GPIO5 和 G 之间,用 pinMode(5, INPUT_PULLUP):按下时读到 LOW。上电时可能被按住的按钮,别接 GPIO0、3、45 和 46。
| 零件引脚 | 开发板引脚 |
|---|---|
| 1 | 5导线颜色:黄色 |
| 2 | G导线颜色:黑色 |
两端接 3V3 和 G,滑动端接 GPIO1(ADC1)。analogRead() 给出 0-4095,analogReadMilliVolts() 给出校准后的电压。
| 零件引脚 | 开发板引脚 |
|---|---|
| 1 | 3V3导线颜色:红色 |
| wiper | 1导线颜色:绿色 |
| 3 | G导线颜色:黑色 |
Wi-Fi 打开时用 ADC1 引脚(GPIO1-10):无线运行时无法读取 ADC2(GPIO11-20)。两端千万不要接 5V。
光敏电阻从 3V3 接到 GPIO2,再加 10 kΩ 从 GPIO2 接到 G:光越强,读数越高。
| 零件引脚 | 开发板引脚 |
|---|---|
| LDR leg 1 | 3V3导线颜色:红色 |
| LDR leg 2 + 10 kΩ to G | 2导线颜色:绿色 |
| 10 kΩ | G导线颜色:黑色 |
信号接 GPIO18,50 Hz(ledcAttach(18, 50, 14) 或 ESP32Servo 库)。3.3 V 的信号对 SG90 来说足够了。
| 零件引脚 | 开发板引脚 |
|---|---|
| brown (GND) | G导线颜色:棕色 |
| red (V+) | 5V导线颜色:红色 |
| orange (signal) | 18导线颜色:橙色 |
只有在一个好的 USB 口上带一个小舵机时,才用 5V 引脚给它供电;它的启动电流可能让板子掉电。更大的负载需要单独的电源,并共地。
TRIG 接 GPIO5,ECHO 接 GPIO6,VCC 接 5V。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 5V导线颜色:红色 |
| TRIG | 5导线颜色:黄色 |
| ECHO (through 1 kΩ / 2 kΩ divider) | 6导线颜色:绿色 |
| GND | G导线颜色:黑色 |
ECHO 是 5 V 信号:在 GPIO6 前面加一个 1 kΩ / 2 kΩ 的分压器(约 3.3 V),或者用 HC-SR04P 这样的 3.3 V 传感器。直接接 5 V 会损坏引脚。
I2C 接在 SDA GPIO8 和 SCL GPIO9 上,用 Wire.begin(8, 9);地址 0x68。模块上的稳压器用 3V3 供电完全没问题。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | G导线颜色:黑色 |
| SDA | 8导线颜色:蓝色 |
| SCL | 9导线颜色:黄色 |
128 x 64 OLED 接在 I2C(GPIO8、GPIO9)上,地址 0x3C,由 3V3 供电。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | G导线颜色:黑色 |
| SDA | 8导线颜色:蓝色 |
| SCL | 9导线颜色:黄色 |
无源蜂鸣器接在 GPIO7 和 G 之间,用 tone(7, 440) 或 ledcWriteTone() 驱动。
| 零件引脚 | 开发板引脚 |
|---|---|
| + | 7导线颜色:橙色 |
| − | G导线颜色:黑色 |
从 2.7 V 起就能工作,所以用 3V3 没问题。用 analogReadMilliVolts(1) 读取 GPIO1:°C = (mV − 500) / 10。
| 零件引脚 | 开发板引脚 |
|---|---|
| +Vs | 3V3导线颜色:红色 |
| Vout | 1导线颜色:绿色 |
| GND | G导线颜色:黑色 |