正在加载图示…
每节课都在开发板上运行你自己的代码。通过这节课的检查,就能把它打勾完成。
按正确的顺序组装开发板,然后上电检查,就像在实验台上一样。
已完成 0/9 步把板子拆到只剩 PCB。除了两排 19 针排针,DevKitC 上的所有元件都是贴片的。
每一种故障都会在模拟中真实发生。触发一个,观察图示,再读一读原因。
一块来自乐鑫(Espressif)、适合面包板的开发板。顶部的 ESP32-WROOM-32E 模组在金属屏蔽罩下装着一颗最高 240 MHz 的双核 Xtensa LX6 芯片、4 MB 闪存和一颗 40 MHz 晶振,还有一根印制天线伸出板边 6 mm,下面没有铜皮。模组下方是 micro-USB 插座、CP2102N USB 转串口桥、AMS1117 3.3 V 稳压器、一颗红色电源灯和两个按钮:EN 复位芯片,Boot 把 GPIO0 拉低。板上没有用户 LED,所以课程里要在 GPIO23 上接一颗。所有 I/O 引脚都是 3.3 V 的,没有一个能承受 5 V。
| 排针 | 引脚 | 名称 | 功能 | 电平 | 最大电流 | 备注 |
|---|---|---|---|---|---|---|
| J2 | 1 | 3V3 | 3.3 V supply | 3.3 V | – | 稳压器的输出。可以在这里给传感器取一点电流,或者在没有其他电源时从这里输入 3.0 到 3.6 V。 |
| J2 | 2 | EN | CHIP_PU, reset | 3.3 V | – | CHIP_PU。由 10 kΩ 上拉,并配有一个 100 nF 的延时电容;把它拉低(或按 EN)会让芯片保持复位。 |
| J2 | 3 | VP | GPIO36, ADC1_CH0, SENSOR_VP, 仅输入 | 3.3 V | – | GPIO36,只能输入:没有输出驱动,也没有内部上拉或下拉。属于 ADC1,所以 Wi-Fi 运行时也能读取模拟值。 |
| J2 | 4 | VN | GPIO39, ADC1_CH3, SENSOR_VN, 仅输入 | 3.3 V | – | GPIO39,只能输入,没有内部上下拉。ADC1 通道 3。 |
| J2 | 5 | 34 | GPIO34, ADC1_CH6, VDET_1, 仅输入 | 3.3 V | – | 只能输入,没有内部上下拉:接按钮要自己加电阻。属于 ADC1,Wi-Fi 打开时接电位器或传感器的稳妥之选。 |
| J2 | 6 | 35 | GPIO35, ADC1_CH7, VDET_2, 仅输入 | 3.3 V | – | 只能输入,没有内部上下拉:接按钮要自己加电阻。属于 ADC1,Wi-Fi 打开时接电位器或传感器的稳妥之选。 |
| J2 | 7 | 32 | GPIO32, ADC1_CH4, TOUCH9, XTAL_32K_P | 3.3 V | 40 mA | ADC1 和一个触摸通道;它还能接 32 kHz 手表晶振。一个很好的通用引脚。 |
| J2 | 8 | 33 | GPIO33, ADC1_CH5, TOUCH8, XTAL_32K_N | 3.3 V | 40 mA | ADC1 和一个触摸通道;它还能接 32 kHz 手表晶振。一个很好的通用引脚。 |
| J2 | 9 | 25 | GPIO25, ADC2_CH8, DAC_1 | 3.3 V | 40 mA | 两个 8 位 DAC 输出之一(dacWrite 输出 0 到约 3.3 V)。也属于 ADC2,Wi-Fi 打开时 ADC2 无法工作。 |
| J2 | 10 | 26 | GPIO26, ADC2_CH9, DAC_2 | 3.3 V | 40 mA | 两个 8 位 DAC 输出之一(dacWrite 输出 0 到约 3.3 V)。也属于 ADC2,Wi-Fi 打开时 ADC2 无法工作。 |
| J2 | 11 | 27 | GPIO27, ADC2_CH7, TOUCH7 | 3.3 V | 40 mA | ADC2 和一个触摸通道。Wi-Fi 一运行,analogRead() 在这里就会失败;那时模拟输入要用 ADC1 引脚(32 到 39)。 |
| J2 | 12 | 14 | GPIO14, ADC2_CH6, TOUCH6, MTMS | 3.3 V | 40 mA | JTAG TMS。启动时它会输出一个短暂的信号(据二手资料报告),所以上电时必须保持关闭的东西别接这里。 |
| J2 | 13 | 12 | GPIO12, ADC2_CH5, TOUCH5, MTDI, Strapping 引脚 | 3.3 V | 40 mA | 启动配置引脚 MTDI:复位时它必须为 LOW。如果被拉高,它会把闪存电压设为 1.8 V,板子会反复重启并提示 "flash read err, 1000"。上拉电阻和空闲时为高电平的传感器都别接这个引脚。 |
| J2 | 14 | GND | ground | – | – | |
| J2 | 15 | 13 | GPIO13, ADC2_CH4, TOUCH4, MTCK | 3.3 V | 40 mA | ADC2 和一个触摸通道。Wi-Fi 一运行,analogRead() 在这里就会失败;那时模拟输入要用 ADC1 引脚(32 到 39)。 |
| J2 | 16 | D2 | flash SD2 (GPIO9) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
| J2 | 17 | D3 | flash SD3 (GPIO10) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
| J2 | 18 | CMD | flash CMD (GPIO11) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
| J2 | 19 | 5V | 5 V supply (EXT_5V) | 5 V | – | 5V 电源轨:经过肖特基二极管后的 USB 5 V,或者一路 5 V 输入。这个引脚上没有防反接保护,也没有保险丝。 |
| J3 | 1 | GND | ground | – | – | |
| J3 | 2 | 23 | GPIO23, VSPI MOSI | 3.3 V | 40 mA | VSPI MOSI,也是一个普通输出,而且不是启动配置引脚,所以它是课程里接 LED 的安全引脚。 |
| J3 | 3 | 22 | GPIO22, I2C SCL | 3.3 V | 40 mA | Arduino 默认的 I²C SCL(GPIO21 是 SDA)。如果模块没有上拉电阻,就加 4.7 kΩ 上拉到 3V3。 |
| J3 | 4 | TX | GPIO1, U0TXD | 3.3 V | 40 mA | UART0,通过一个 0 Ω 跳线电阻连到 USB 桥。启动日志和 Serial 都以 115200 波特从这里打印;如果你要上传和使用串口监视器,就别占用 TX 和 RX。 |
| J3 | 5 | RX | GPIO3, U0RXD | 3.3 V | 40 mA | UART0,通过一个 0 Ω 跳线电阻连到 USB 桥。启动日志和 Serial 都以 115200 波特从这里打印;如果你要上传和使用串口监视器,就别占用 TX 和 RX。 |
| J3 | 6 | 21 | GPIO21, I2C SDA | 3.3 V | 40 mA | Arduino 默认的 I²C SCL(GPIO21 是 SDA)。如果模块没有上拉电阻,就加 4.7 kΩ 上拉到 3V3。 |
| J3 | 7 | GND | ground | – | – | |
| J3 | 8 | 19 | GPIO19, VSPI MISO | 3.3 V | 40 mA | |
| J3 | 9 | 18 | GPIO18, VSPI SCK | 3.3 V | 40 mA | |
| J3 | 10 | 5 | GPIO5, VSPI SS, Strapping 引脚 | 3.3 V | 40 mA | 启动配置引脚(SDIO 时序),内部上拉;启动时它会输出一个短暂的信号。用作 SPI 片选没问题。 |
| J3 | 11 | 17 | GPIO17, U2TXD | 3.3 V | 20 mA | UART2 TX(GPIO16 是 RX)。这两个焊盘属于闪存供电域,能输出约 20 mA,而不是 40 mA。在 WROVER 板上,它们归 PSRAM 使用。 |
| J3 | 12 | 16 | GPIO16, U2RXD | 3.3 V | 20 mA | UART2 TX(GPIO16 是 RX)。这两个焊盘属于闪存供电域,能输出约 20 mA,而不是 40 mA。在 WROVER 板上,它们归 PSRAM 使用。 |
| J3 | 13 | 4 | GPIO4, ADC2_CH0, TOUCH0 | 3.3 V | 40 mA | 触摸通道 T0,触摸课程用的就是它。也属于 ADC2。 |
| J3 | 14 | 0 | GPIO0, ADC2_CH1, TOUCH1, Boot, Strapping 引脚 | 3.3 V | 40 mA | 接到 Boot 按钮的启动配置引脚:复位时为 LOW 会启动串口下载器,而不是你的程序。启动之后,它可以用 INPUT_PULLUP 作为输入(按下 = LOW)。 |
| J3 | 15 | 2 | GPIO2, ADC2_CH2, TOUCH2, Strapping 引脚 | 3.3 V | 40 mA | 带内部下拉的启动配置引脚:要进入下载模式,它必须为低或悬空。一颗 LED 加电阻接到 GND 没有影响,上拉电阻则不行。 |
| J3 | 16 | 15 | GPIO15, ADC2_CH3, TOUCH3, MTDO, Strapping 引脚 | 3.3 V | 40 mA | 启动配置引脚 MTDO,上拉:复位时保持 LOW 会让 TX 上的 ROM 启动日志静音。也是 JTAG TDO。 |
| J3 | 17 | D1 | flash SD1 (GPIO8) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
| J3 | 18 | D0 | flash SD0 (GPIO7) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
| J3 | 19 | CLK | flash CLK (GPIO6) on the older WROOM-32 | – | – | 在老款 WROOM-32 上,这些是 SPI 闪存的线(GPIO6 到 GPIO11)。WROOM-32E 在模组内部没有连接它们。千万不要使用;在代码里碰 GPIO6 到 GPIO11 会让芯片崩溃。 |
这块开发板能驱动的传感器和执行器,以及真实的接法。
阳极经过 220 到 330 Ω 接 GPIO23,阴极接 GND:从 3.3 V 取约 4 到 6 mA。任何不是启动配置引脚的输出引脚都可以。
| 零件引脚 | 开发板引脚 |
|---|---|
| A (through 220 Ω) | 23导线颜色:橙色 |
| K | GND导线颜色:黑色 |
一侧接 GPIO4,另一侧接 GND,并用 pinMode(4, INPUT_PULLUP);按下读到 LOW。GPIO34 到 39 没有内部上拉,所以要加一个 10 kΩ 电阻接到 3V3。
| 零件引脚 | 开发板引脚 |
|---|---|
| 1 | 4导线颜色:黄色 |
| 3 | GND导线颜色:黑色 |
两端接 GND 和 3V3,滑动端接 GPIO34。analogRead(34) 给出 0 到 4095,analogReadMilliVolts(34) 给出毫伏值;读数在两端附近会弯曲。
| 零件引脚 | 开发板引脚 |
|---|---|
| 1 | GND导线颜色:黑色 |
| 2 | 34导线颜色:黄色 |
| 3 | 3V3导线颜色:红色 |
电位器用 3V3 供电,千万别用 5V。用 ADC1 引脚(32 到 39):Wi-Fi 一启动,ADC2 引脚就读不了了。
+Vs 接 3V3(它从 2.7 V 起就能工作),Vout 接 GPIO35,GND 接 GND。温度是 (mV − 500) ÷ 10 °C。
| 零件引脚 | 开发板引脚 |
|---|---|
| +Vs | 3V3导线颜色:红色 |
| Vout | 35导线颜色:黄色 |
| GND | GND导线颜色:黑色 |
VCC 接 5V,Trig 接 GPIO18;板子 3.3 V 的触发信号对传感器来说足够高。以 cm 为单位的距离等于以 µs 为单位的回声时间 ÷ 58。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 5V导线颜色:红色 |
| Trig | 18导线颜色:橙色 |
| Echo (through a 1 kΩ / 2 kΩ divider) | 19导线颜色:绿色 |
| Gnd | GND导线颜色:黑色 |
Echo 是 5 V 输出。让它经过一个分压器(Echo 接 1 kΩ,2 kΩ 接 GND,中点接 GPIO19),这样引脚看到的约为 3.3 V。直接接到 GPIO 上,它会让电流流过钳位二极管,可能烧坏这个引脚。
棕线接 GND,红线接 5V,橙线(信号)接 GPIO13,用舵机库以 50 Hz、500 到 2400 µs 驱动。
| 零件引脚 | 开发板引脚 |
|---|---|
| brown | GND导线颜色:棕色 |
| red | 5V导线颜色:红色 |
| orange | 13导线颜色:橙色 |
运动中的 SG90 耗电 100 到 250 mA,堵转时最高约 700 mA。用 USB 供电会让板子掉电;给舵机单独的 5 V 电源,并把地连在一起。
VCC 接 3V3,GND 接 GND,SCL 接 GPIO22,SDA 接 GPIO21。Wire.begin() 默认就用这两个引脚;地址是 0x68。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | GND导线颜色:黑色 |
| SCL | 22导线颜色:黄色 |
| SDA | 21导线颜色:蓝色 |
GND、VCC(3V3)、SCL 接 GPIO22、SDA 接 GPIO21。屏幕在 0x3C 应答。
| 零件引脚 | 开发板引脚 |
|---|---|
| GND | GND导线颜色:黑色 |
| VCC | 3V3导线颜色:红色 |
| SCL | 22导线颜色:黄色 |
| SDA | 21导线颜色:蓝色 |
不同厂家的引脚顺序不同(有的把 VCC 放在前面):插上之前先看清你的模块上的标注。