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
}

运行与验证

  1. 将代码烧录至ESP32开发板(Arduino IDE中选择对应开发板型号与端口后上传)。
  2. 观察板载LED状态:应呈现“亮500ms → 灭500ms”的循环,即1秒一个完整周期。
  3. 若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秒闪烁周期。
0ms 500ms 1000ms LED亮 (HIGH) LED灭 (LOW) 1个完整周期 = 1000ms

上图展示了本案例中LED电平随时间变化的时序关系:一个完整周期为1000ms,其中高电平持续500ms、低电平持续500ms,循环往复。