1. LED闪烁控制
任务目标
编写ESP32固件,控制板载LED以1秒为周期闪烁(亮500ms、灭500ms),通过该最小案例掌握GPIO输出模式配置与延时函数的使用方法。
所需环境
- 开发板:任意ESP32开发板(本文以板载LED连接GPIO2的常见模组为例)
- 框架:Arduino-ESP32(Arduino IDE或PlatformIO均可)
- 依赖:无需额外库,使用内置
delay()与digitalWrite()
关键完整代码
// LED闪烁控制 - ESP32
// 板载LED通常连接GPIO2(根据实际板型调整LED_BUILTIN)
#define LED_PIN 2 // 板载LED引脚
void setup() {
pinMode(LED_PIN, OUTPUT); // 配置GPIO2为输出模式
}
void loop() {
digitalWrite(LED_PIN, HIGH); // 点亮LED
delay(500); // 保持500ms
digitalWrite(LED_PIN, LOW); // 熄灭LED
delay(500); // 保持500ms
}
运行与验证
- 将代码烧录至ESP32开发板(Arduino IDE中选择对应开发板型号与端口后上传)。
- 观察板载LED状态:应呈现“亮500ms → 灭500ms”的循环,即1秒一个完整周期。
- 若LED不亮或常亮不闪,检查
LED_PIN是否与你的板型实际LED引脚一致(常见为GPIO2、GPIO5或GPIO16,可查阅开发板原理图确认)。
通过判定标准:LED以肉眼可见的1秒间隔稳定闪烁,且周期误差在毫秒级(由delay()精度决定),即视为案例完成。
核心要点
pinMode(pin, OUTPUT)将指定GPIO设为推挽输出模式,使其可输出高/低电平。digitalWrite(pin, HIGH/LOW)控制引脚输出3.3V或0V电平。delay(ms)为阻塞式延时,单位毫秒;本案例中两次延时各500ms,构成1秒闪烁周期。
上图展示了本案例中LED电平随时间变化的时序关系:一个完整周期为1000ms,其中高电平持续500ms、低电平持续500ms,循环往复。