3. ESP32 GPIO基础与数字信号:认识引脚编号,点亮第一盏LED灯
好,我们正式开始动手了。
前面两章我们聊了ESP32是什么,也搭好了开发环境。现在,是时候让硬件听我们的话了。这一章,我们来认识ESP32的GPIO引脚,学会用digitalWrite和digitalRead这两个最基础的数字信号函数。然后,用一颗LED灯,完成你的第一个实验:点亮与熄灭。
3.1 认识ESP32的引脚编号
ESP32的引脚,不是随便乱标的。每个引脚都有固定的编号,比如GPIO2、GPIO4、GPIO5等等。这些编号,就是我们在代码里控制它们的“地址”。
我个人习惯,拿到一块新的ESP32开发板,第一件事就是看引脚图。你想想看,如果连哪个引脚能输出PWM、哪个引脚是ADC输入都不清楚,后面调试起来会很痛苦。
这里我列一下最常用的几个引脚,你记一下:
| 引脚编号 | 功能说明 | 注意事项 |
|---|---|---|
| GPIO2 | 板载LED(很多开发板自带) | 高电平点亮,低电平熄灭 |
| GPIO4 | 普通数字I/O | 可做PWM输出 |
| GPIO5 | 普通数字I/O | 上电时注意电平状态 |
| GPIO16 | 普通数字I/O | 常用于外设控制 |
| GPIO17 | 普通数字I/O | 同上 |
3.2 数字信号:高电平和低电平
数字信号,说白了就是两个状态:高电平和低电平。在ESP32上,高电平是3.3V,低电平是0V。我们用HIGH和LOW这两个常量来表示。
你可能会问:为什么是3.3V而不是5V?因为ESP32是3.3V逻辑的芯片。如果你接5V的外设,一定要加电平转换,否则会烧引脚。我在项目中遇到过,有人直接把5V的舵机信号线接到GPIO上,结果芯片冒烟了……
3.3 digitalWrite:让引脚输出高或低
digitalWrite(pin, value)这个函数,就是让指定引脚输出高电平或低电平。用法很简单:
digitalWrite(2, HIGH); // GPIO2输出高电平,LED亮
digitalWrite(2, LOW); // GPIO2输出低电平,LED灭
但要注意,使用之前必须先调用pinMode()设置引脚模式。否则,引脚默认是输入模式,你写高低电平是没用的。
3.4 digitalRead:读取引脚的电平状态
有输出,就有输入。digitalRead(pin)用来读取引脚当前的电平,返回HIGH或LOW。
int val = digitalRead(4); // 读取GPIO4的电平
if (val == HIGH) {
Serial.println("引脚4是高电平");
}
这个函数在后续的光感跟随项目中会频繁用到。比如,光敏电阻模块输出高电平表示光线暗,低电平表示光线亮。你通过digitalRead读取这个信号,就能判断环境光强度。
3.5 第一个实验:点亮与熄灭LED
好了,理论讲完了,我们直接上手。这个实验的目标是:让LED亮1秒,灭1秒,循环往复。
你需要准备:
- ESP32开发板一块
- LED灯一个(颜色随意,我习惯用红色,醒目)
- 220Ω电阻一个(限流用,别省这一步)
- 杜邦线两根
- 面包板一块(可选,但推荐)
接线方式:
- LED正极(长脚)接GPIO2
- LED负极(短脚)串联220Ω电阻后接GND
然后,打开Arduino IDE,输入以下代码:
void setup() {
pinMode(2, OUTPUT); // 设置GPIO2为输出模式
}
void loop() {
digitalWrite(2, HIGH); // 点亮LED
delay(1000); // 等待1秒
digitalWrite(2, LOW); // 熄灭LED
delay(1000); // 等待1秒
}
上传代码后,你会看到LED以1秒的间隔闪烁。恭喜,你的第一个硬件实验成功了!
3.6 避坑指南:我踩过的那些坑
做这个实验,有几个坑我必须要提醒你:
- 引脚编号别搞错:ESP32的引脚编号是GPIO2,不是D2。有些开发板标注的是D2,但代码里一定要写2。
- 电阻不能省:LED直接接3.3V会烧掉。220Ω是标准值,没有的话100Ω到1kΩ都行。
- 上电顺序:先接好线,再上电。不要带电插拔,容易烧引脚。
- 板载LED:很多ESP32开发板自带一个LED,通常接在GPIO2上。如果你外接LED,注意别和板载的冲突。
嗯,这些坑我当年都踩过。尤其是那个电阻的问题,我第一次做实验时觉得“就一个LED,不接电阻也没事吧?”结果LED瞬间冒烟,还带着一股焦味。从那以后,我再也不敢省电阻了。
3.7 扩展思考:从闪烁到呼吸灯
学会了基本的点亮熄灭,你可以试着做点更有趣的。比如,用analogWrite()实现呼吸灯效果。虽然这涉及PWM(脉宽调制),但原理很简单:让LED的亮度逐渐变化。
不过,那是下一章的内容了。这一章,你先把这个闪烁实验做熟练。记住,基础越扎实,后面做智能窗帘时就越顺手。
好了,去动手吧。把LED点亮,然后熄灭。再点亮,再熄灭。看着它一闪一闪的,你会很有成就感的。