正在加载图示…
每节课都在开发板上运行你自己的代码。通过这节课的检查,就能把它打勾完成。
按正确的顺序组装开发板,然后上电检查,就像在实验台上一样。
已完成 0/9 步把所有元件都拆下来。剩下的是一块两层板:黑色阻焊、白色丝印、38 个元件的焊盘和两排排针孔。
每一种故障都会在模拟中真实发生。触发一个,观察图示,再读一读原因。
NodeMCU DevKit v1.0(以 "Amica" 的名字出售,常被叫作 V2)把一块安信可 ESP-12E 模组装在一块 25.4 x 48.3 mm 的板子上,配有 CP2102 USB 转串口芯片、一颗 3.3 V 稳压器和两个按钮。里面的 ESP8266EX 运行在 80 MHz,带 4 MB 闪存和 2.4 GHz Wi-Fi。一切都是 3.3 V 的。丝印上的 D0-D8 名称不是 GPIO 编号(D4 是 GPIO2),两颗蓝色 LED 都在引脚为 LOW 时点亮,还有三个引脚在复位时决定程序到底能不能运行。更宽的 LoLin "NodeMCU V3" 兼容板(CH340G)引脚映射相同,但会盖住整块面包板。
| 排针 | 引脚 | 名称 | 功能 | 电平 | 最大电流 | 备注 |
|---|---|---|---|---|---|---|
| J1 | 1 | A0 | ADC0 via the 220 k / 100 k divider (0-3.2 V) | 3.2 V | – | 唯一的模拟输入。板上的 220 kΩ / 100 kΩ 分压器把 0-3.2 V 缩小到芯片的 0-1.0 V,所以 analogRead(A0) 在 0-3.2 V 时返回 0-1023。这里接 5 V 只会读到 1023,而且超出了规格。 |
| J1 | 2 | RSV | TOUT, straight to the ADC (0-1.0 V) | 1 V | – | 绕过分压器,直接连到芯片的 TOUT 引脚:只能接 0-1.0 V。别用它,用 A0。背面丝印在这里印着 NC,但铜线是连通的。 |
| J1 | 3 | RSV | – | – | – | 这块板上没有连接。在更宽的 LoLin V3 兼容板上,这个位置是 VU,即二极管之前的 USB 5 V。 |
| J1 | 4 | SD3 | GPIO10, SDIO DATA3, flash /WP | 3.3 V | – | GPIO10,闪存芯片的 /WP 线。属于 SPI 闪存总线:不要使用。 |
| J1 | 5 | SD2 | GPIO9, SDIO DATA2, flash /HOLD | 3.3 V | – | GPIO9,闪存芯片的 /HOLD 线。把它拉低会冻结闪存,让芯片崩溃:不要使用。 |
| J1 | 6 | SD1 | GPIO8, SDIO DATA1, flash DI (MOSI) | 3.3 V | – | GPIO8,闪存数据输入。SPI 闪存总线:不要使用。 |
| J1 | 7 | CMD | GPIO11, SDIO CMD, flash /CS | 3.3 V | – | GPIO11,闪存片选。SPI 闪存总线:不要使用。 |
| J1 | 8 | SD0 | GPIO7, SDIO DATA0, flash DO (MISO) | 3.3 V | – | GPIO7,闪存数据输出。SPI 闪存总线:不要使用。 |
| J1 | 9 | CLK | GPIO6, SDIO CLK, flash SCLK | 3.3 V | – | GPIO6,闪存时钟。SPI 闪存总线:不要使用。 |
| J1 | 10 | GND | – | – | – | 地(方形焊盘)。 |
| J1 | 11 | 3V3 | regulator output | 3.3 V | – | 来自稳压器的 3.3 V。ESP8266 和 CP2102 已经要用掉其中的 100-250 mA。 |
| J1 | 12 | EN | CH_PD chip enable, 12 k pull-up R3 | 3.3 V | – | 芯片使能(CH_PD),由 R3 保持为高。把它拉低,ESP8266 就关掉了。 |
| J1 | 13 | RST | EXT_RSTB, 12 k pull-up R4, RST button | 3.3 V | – | 复位,由 R4 保持为高,按 RST 按钮时被拉低。要用深度睡眠,就把 D0 接到这个引脚,让唤醒脉冲能复位芯片。 |
| J1 | 14 | GND | – | – | – | 地(方形焊盘)。 |
| J1 | 15 | Vin | regulator input, USB 5 V after D1 | 5 V | – | 稳压器输入。USB 供电时约为 4.65 V(5 V 减去 SS14 的压降);你也可以改为从这里输入 5-9 V。丝印写着 5-12 V,但在 12 V 时稳压器在 Wi-Fi 负载下会过热。没有防反接保护。 |
| J2 | 1 | D0 | GPIO16, WAKE, LED_BUILTIN_AUX (LED1) | 3.3 V | 12 mA | GPIO16 和板上的蓝色 LED(LED1,LOW 时点亮)。可以用 analogWrite() 输出 PWM(核心 3.x;MicroPython 不行),但没有中断,也没有上拉(只有 INPUT_PULLDOWN_16)。它还是深度睡眠的唤醒输出。 |
| J2 | 2 | D1 | GPIO5, SCL (Wire) | 3.3 V | 12 mA | GPIO5,Wire 默认的 I2C SCL。启动时很安静,所以是做输出的首选。 |
| J2 | 3 | D2 | GPIO4, SDA (Wire) | 3.3 V | 12 mA | GPIO4,Wire 默认的 I2C SDA。启动时很安静。 |
| J2 | 4 | D3 | GPIO0, FLASH button, boot strap (HIGH to run), Strapping 引脚 | 3.3 V | 12 mA | GPIO0 和 FLASH 按钮,由 R1 上拉。复位时它必须为高,否则芯片会启动 ROM 引导程序,而不是你的程序。启动之后它可以作为按钮输入。 |
| J2 | 5 | D4 | GPIO2, TXD1 (Serial1), LED_BUILTIN (module LED), boot strap (HIGH at boot), Strapping 引脚 | 3.3 V | 12 mA | GPIO2:模组上的蓝色 LED(LED_BUILTIN,LOW 时点亮),也是 UART1 TX。复位时它必须为高(R2 把它上拉),ROM 打印启动日志时它会闪烁。 |
| J2 | 6 | 3V3 | regulator output | 3.3 V | – | 3.3 V 输出。 |
| J2 | 7 | GND | – | – | – | 地(方形焊盘)。 |
| J2 | 8 | D5 | GPIO14, HSPI SCK | 3.3 V | 12 mA | GPIO14,硬件 SPI 时钟(SCK)。启动时很安静。 |
| J2 | 9 | D6 | GPIO12, HSPI MISO | 3.3 V | 12 mA | GPIO12,硬件 SPI MISO。启动时很安静。 |
| J2 | 10 | D7 | GPIO13, HSPI MOSI, RXD2 (Serial.swap), CTS0 | 3.3 V | 12 mA | GPIO13,硬件 SPI MOSI;Serial.swap() 会把 UART0 RX 挪到这里。启动时很安静。 |
| J2 | 11 | D8 | GPIO15, HSPI SS, TXD2 (Serial.swap), RTS0, boot strap (LOW at boot), Strapping 引脚 | 3.3 V | 12 mA | GPIO15,SPI 片选,由 R5 下拉。复位时它必须为低:把它拉高的模块或上拉电阻会让板子无法启动。 |
| J2 | 12 | RX | GPIO3, RXD0 (Serial) | 3.3 V | 12 mA | GPIO3,UART0 RX,由 CP2102 经过一个 470 Ω 电阻驱动。把它当 GPIO 用会破坏 Serial 和上传。 |
| J2 | 13 | TX | GPIO1, TXD0 (Serial) | 3.3 V | 12 mA | GPIO1,接到 CP2102 的 UART0 TX。它传送启动日志,所以上电时会跳变。 |
| J2 | 14 | GND | – | – | – | 地(方形焊盘)。 |
| J2 | 15 | 3V3 | regulator output | 3.3 V | – | 3.3 V 输出。 |
这块开发板能驱动的传感器和执行器,以及真实的接法。
从 3.3 V 引脚经过一个 220 Ω 电阻,红色 LED 约有 6 mA:(3.3 V - 2.0 V) / 220 Ω。
| 零件引脚 | 开发板引脚 |
|---|---|
| anode (long leg), through 220 Ω | D1导线颜色:橙色 |
| cathode | GND导线颜色:黑色 |
千万不要不加电阻就接 LED:引脚的额定电流是 12 mA。蓝色和白色 LED 需要约 3 V,在 3.3 V 下会比较暗。
用 pinMode(D5, INPUT_PULLUP);按钮按下时引脚读到 LOW。
| 零件引脚 | 开发板引脚 |
|---|---|
| leg 1 | D5导线颜色:白色 |
| leg 2 | GND导线颜色:黑色 |
别接在 D3、D4 或 D8 上:那里按下的按钮或外部上下拉电阻会改变启动模式。D0 没有上拉。
两端接 3V3 和 GND,滑动端接 A0。行程最顶端的 0.1 V 都读成 1023,因为 A0 的满量程是 3.2 V。
| 零件引脚 | 开发板引脚 |
|---|---|
| end 1 | 3V3导线颜色:红色 |
| wiper | A0导线颜色:黄色 |
| end 2 | GND导线颜色:黑色 |
光敏电阻从 3V3 接到 A0,再加 10 kΩ 从 A0 接到 GND:光越强,读数越高。
| 零件引脚 | 开发板引脚 |
|---|---|
| LDR leg 1 | 3V3导线颜色:红色 |
| LDR leg 2 + 10 kΩ to GND | A0导线颜色:黄色 |
可以用 3.3 V 供电(2.7-5.5 V)。0.5 V 表示 0 °C,每 10 mV 是 1 °C:°C = (raw x 3.2 / 1023 - 0.5) x 100。
| 零件引脚 | 开发板引脚 |
|---|---|
| +Vs | 3V3导线颜色:红色 |
| Vout | A0导线颜色:黄色 |
| GND | GND导线颜色:黑色 |
tone(D6, 440) 在除 D0 以外的任何 GPIO 上都能用;ESP8266 用软件产生方波。
| 零件引脚 | 开发板引脚 |
|---|---|
| + | D6导线颜色:紫色 |
| - | GND导线颜色:黑色 |
用 Servo 库,信号接 D5。3.3 V 的信号对 SG90 来说足够了。
| 零件引脚 | 开发板引脚 |
|---|---|
| orange (signal) | D5导线颜色:橙色 |
| red (+) | VIN导线颜色:红色 |
| brown (GND) | GND导线颜色:棕色 |
用 Vin(USB 供电时约 4.65 V)给它供电,千万不要用 3V3。它的堵转电流(几百 mA)会把电源拉低并让板子复位,所以真正使用时要给它单独的 5 V 电源,并共用 GND。
Trig 接 D5,Echo 接 D6,用 pulseIn() 测量回声。它需要 5 V,所以 VCC 取自 Vin。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | VIN导线颜色:红色 |
| Trig | D5导线颜色:绿色 |
| Echo, through 1 kΩ / 2 kΩ divider | D6导线颜色:黄色 |
| GND | GND导线颜色:黑色 |
Echo 是 5 V 信号,而 ESP8266 不能承受 5 V:在 Echo 和 D6 之间加一个 1 kΩ / 2 kΩ 的分压器(或电平转换器)。
地址为 0x3C 的 I2C OLED:Wire.begin() 使用 D2 上的 SDA 和 D1 上的 SCL。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | GND导线颜色:黑色 |
| SCL | D1导线颜色:黄色 |
| SDA | D2导线颜色:蓝色 |
I2C 地址 0x68,接在 D2(SDA)和 D1(SCL)上。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | GND导线颜色:黑色 |
| SCL | D1导线颜色:黄色 |
| SDA | D2导线颜色:蓝色 |
GY-521 模块自带 3.3 V 稳压器;用 3.3 V 供电时传感器得到的电压会略低一些,它能承受(2.375-3.46 V)。
AO 接 A0,用 3V3 供电,这样输出永远不会超过 3.2 V 的量程。只在测量时给它供电,可以减缓腐蚀。
| 零件引脚 | 开发板引脚 |
|---|---|
| VCC | 3V3导线颜色:红色 |
| GND | GND导线颜色:黑色 |
| AO | A0导线颜色:黄色 |
用四个 GPIO 驱动一个 28BYJ-48 步进电机;电机的电流取自 Vin。
| 零件引脚 | 开发板引脚 |
|---|---|
| IN1 | D1导线颜色:橙色 |
| IN2 | D2导线颜色:黄色 |
| IN3 | D5导线颜色:绿色 |
| IN4 | D6导线颜色:蓝色 |
| + (5-12 V) | VIN导线颜色:红色 |
| - | GND导线颜色:黑色 |
ULN2003 的输入能接受 3.3 V 逻辑,但电机电源绝不能来自 3V3。用启动时保持安静的引脚(D1、D2、D5、D6),这样上电时电机不会抽动。