ESP32 入门教程(一):使用 GPIO 控制 LED 亮灭 一、前言点亮 LED 是单片机开发的Hello World也是入门硬件交互的第一课。通过本实验你能搞懂电压、电流、回路三大基础电路概念掌握 GPIO 输出控制逻辑建立软件代码控制物理硬件的思维为后续电机、传感器、物联网项目打下基础。ESP32 是集成 WiFi 蓝牙的 3.3V 单片机相比传统 51 单片机自带无线通信功能是物联网开发首选。本文从零讲解电路原理、硬件接线、Arduino 代码、烧录全流程零基础新手也能一次成功。 本篇目标使用 ESP32 GPIO5 引脚驱动 LED实现 0.5 秒周期循环闪烁。二、硬件准备本次实验所需全部元器件清单ESP32-WROOM/S3 开发板 ×1USB 数据线数据传输款仅充电线无法烧录×1红色直插 LED 灯珠 ×1220Ω 色环限流电阻 ×1830 孔面包板 ×1公对母杜邦线若干三、核心原理简析1. 硬件基础LED硬件构造LED 是一种将电能转化为光能的半导体器件极性LED 具有正负极之分。长脚为正极阳极短脚为负极阴极。电流只能从正极流向负极反向连接时不导通。正向压降不同颜色的LED具有不同的导通电压。电流限制LED 对电流非常敏感。当电压超过其正向导通电压后微小的电压增加都会导致电流急剧上升。1.4 限流电阻的作用1LED 发光三大必要条件LED 想要正常点亮必须同时满足三点存在电位差、形成完整闭合回路、回路电流受控。电压两点电位差值ESP32 高电平输出 3.3VGND 接地为 0V二者形成驱动电压电流电荷定向移动是 LED 发光根本无电流则灯不亮闭合回路电流从 GPIO 流出经过电阻、LED最终回到 GND线路断开直接灭灯。水路类比通俗理解电路逻辑把电路等效成供水系统快速理解抽象电学概念3.3V GPIO 高处水塔高电位GND 低处水池0V 低电位电流 水流只会从高电位流向低电位GPIO 输出HIGH 打开水龙头产生电流LOW 关闭水龙头切断电流220Ω 限流电阻 管道节流阀限制电流大小防止烧毁 LED2ESP32 关键硬件特性逻辑电压3.3V禁止外接 5V 电压否则烧毁引脚上电默认引脚为高阻输入不会自动输出电压必须代码配置输出模式GPIO通用输入输出引脚负责外接外设GND 为公共负极是回路必备引脚避坑禁用输出引脚GPIO6/7/8/9/11Flash 引脚、34/35/36/39仅输入、0/2/12/15启动配置脚推荐安全引脚4、5、13、14、16、17、18、19、21、22、23、25、26、27、32、33本实验使用 GPIO5。3LED 与限流电阻规则LED 有极性长脚 正极短脚 负极电流只能正进负出接反不亮正极必须串联电阻再接 GPIO负极接 GND限流电阻不可省略推荐 220Ω~330Ω将回路电流限制在 5~10mA 安全区间无电阻会瞬间击穿 LED、烧坏开发板引脚。4面包板使用规则中间区域同一竖列金属片连通元件插同一列即导通两侧电源轨红线为正极、蓝线为负极整条导轨互通统一供电。2. 核心 API 函数解析Arduino 框架控制 LED 仅需 3 个核心函数同时包含程序固定双函数结构1程序基础结构void setup()初始化函数上电只执行 1 次用于配置引脚模式、串口初始化void loop()主循环函数setup 执行完成后无限循环运行实现持续闪烁逻辑。2三大硬件控制函数表格函数作用参数说明pinMode(pin, mode)配置引脚工作模式pin引脚编号mode 填OUTPUT设为数字输出digitalWrite(pin, value)输出高低电平HIGH3.3V 高电平亮灯LOW0V 低电平灭灯delay(ms)程序阻塞延时ms 单位毫秒delay(1000) 暂停 1 秒四、接线指南接线前置要求全程断电操作避免短路烧板接线顺序ESP32 GPIO5 引脚 → 杜邦线接入面包板任意一列同列插入 220Ω 限流电阻电阻另一端接入面包板另一列电阻另一端列位插入 LED长脚正极LED 短脚负极用杜邦线连接 ESP32 任意 GND 引脚闭合完整回路。电路示意图GPIO5 → 220Ω 电阻 → LED 长脚 () → LED 短脚 (-) → GND电路接线图五、代码实现cpp运行// 宏定义LED控制引脚后期修改引脚仅需改此处方便维护 #define LED_PIN 5 // 上电仅执行一次的初始化函数 void setup() { // 将GPIO5配置为数字输出模式才能输出高低电平 pinMode(LED_PIN, OUTPUT); } // 无限循环主函数重复执行亮灭逻辑 void loop() { digitalWrite(LED_PIN, HIGH); // 输出3.3V高电平产生电流LED点亮 delay(500); // 保持点亮状态0.5秒500毫秒 digitalWrite(LED_PIN, LOW); // 输出0V低电平无电位差LED熄灭 delay(500); // 保持熄灭状态0.5秒 }代码注释完整每一步操作都标注原理新手可直观理解每一行代码作用。六、编译与烧录步骤1. Arduino IDE 环境配置文件→首选项添加 ESP32 开发板管理器地址工具→开发板→开发板管理器搜索ESP32完成安装工具栏开发板选择ESP32S3 Dev Module根据自己开发板型号选择端口选择设备管理器查看 USB 对应 COM 端口IDE 工具栏选中对应端口。2. 烧录操作与 BOOT 键注意事项将 USB 数据线连接电脑与 ESP32 开发板粘贴上方代码点击左上角对勾图标编译无报错即可下一步点击向右箭头上传烧录部分 ESP32 开发板烧录时需要按住BOOT按键等待进度条走动后松开进度条 100% 提示上传完成代表代码已写入单片机。七、实验现象与总结1. 预期实验现象烧录完成后开发板上电LED 持续循环闪烁亮 0.5s → 灭 0.5s无限往复。 拓展修改将delay(500)改为delay(100)闪烁速度明显加快修改LED_PIN为 4 并更换接线LED 同样正常闪烁。2. 核心知识点回顾LED 点亮三要素3.3V 电位差、完整闭合回路、串联 220Ω 限流电阻ESP32 为 3.3V 系统区分引脚可用 / 禁用列表避免硬件损坏Arduino 程序固定结构setup()初始化、loop()循环执行GPIO 输出核心三函数pinMode配置模式、digitalWrite输出电平、delay延时控制灯光时长硬件接线核心要点LED 长脚接电阻、短脚接 GND极性不可接反。