第 3 章 · 上拉输入 · 条件判断 · 按键消抖
按下按键,LED 才亮
让一个输入条件决定一个输出动作,读懂“如果……否则……”在硬件程序中的作用。
对应例程:3-按键:按下才亮。无设备时可先阅读积木和代码;运行实物需按课堂条件连接开发板。
先作一个预测
按键松开和按下时,GPIO27 分别读到什么?为什么按下对应低电平?
准备与接线
先核对手里的器材
- 经典 ESP32 开发板
- 按键 K1、外接 LED 与限流电阻(或包含限流电阻的 LED 模块)
- 面包板与连接线
| 器件端 | 连接与设置 | 核对重点 |
|---|---|---|
| 按键的两端 | GPIO27 与 GND | 程序使用内部上拉;按下使输入接地。四脚按键先确认哪两脚常通。 |
| LED 阳极 | GPIO26,经限流电阻 | 裸 LED 必须串联限流电阻;模块按其引脚标识连接。 |
| LED 阴极 | GND | 按键与 LED 使用同一公共地。 |
先断电接线,再核对 LED 极性、限流电阻与按键脚位。图中外形用于认识器件,接线以本课表格和实物标识为准。
读懂例程
程序依次在做什么
- 01
读取按键
GPIO27 配置为上拉输入;松开时为高电平,按下接地后为低电平。
- 02
等待并复查
第一次读到低电平后等待 20 毫秒,再确认一次,减少机械抖动带来的误判。
- 03
根据条件输出
按下时向 GPIO26 写高电平;否则写低电平。
- 04
持续检查
循环重新读取按键,因此这是“按住亮、松开灭”,不是按一次切换一次。
观察与核对
用这些问题检查结果
- 先指出积木中“按下”和“否则”分别通往哪一个动作。
- 连接实物后分别按住、松开按键,检查输出是否跟随。
- 若一直亮或一直灭,依次核对按键脚位、公共地、GPIO27 与 GPIO26。
只改一个条件,再试一次
交换“按下”和“否则”里的输出状态,让 LED 松开时亮、按下时灭。保持接线不变,解释变化来自哪里。
看图认识相关器材
教学图帮助辨认接口与外形。电阻值、LED 支路与各器件的电气规格仍需核对实物;标为外观参考的变体不能直接照搬本课接线。
