本教程将带你从零开始使用 VSCode 和 PlatformIO IDE 开发 ESP32项目。主要通过配置ESP32-S3芯片的项目,实现使用 FastLED 库控制 WS2812 LED 灯在不同颜色之间的闪烁,带你入门ESP32从项目新建->项目配置->项目烧录的整个过程。
一、准备工作
1. 安装必要软件
环境搭建可参考ESP32开发入门:基于VSCode+PlatformIO环境搭建指南
2. 硬件准备
-
ESP32-S3 开发板
-
WS2812 LED 灯条或单个 LED
-
连接线若干
二、项目创建
-
打开 VSCode
-
点击左侧 PlatformIO 图标(类似小蚂蚁的标志)
-
在 PlatformIO 主页点击 "New Project"
-
填写项目信息:
-
Name: 项目名称
-
Board: 需要根据自己开发板选择对应的板卡(很重要)
-
Framework: 选择 "Arduino"
-
可自定义新建项目路径
-
-
点击 "Finish" 创建项目。入下图所示
项目新建完成后,对应的主函数和配置文件如下图所示
三、编写代码
-
打开
src/main.cpp
文件 -
删除原有内容,替换为以下代码:
#include <Arduino.h>
// #define FASTLED_RMT_MAX_CHANNELS 4 // 如需多通道可调整RMT数量
#include <FastLED.h>
#define DATA_PIN 48 // ESP32-S3的GPIO48
#define NUM_LEDS 1 // 控制LED的数量(根据实际灯带长度修改)
#define LED_TYPE WS2812B // 选择LED类型(根据实际灯带类型修改)
#define COLOR_ORDER GRB // 选择颜色顺序(根据实际灯带颜色顺序修改)
CRGB leds[NUM_LEDS]; // 创建LED数组
void setup() {
FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(128); // 初始亮度(0-255)
FastLED.clear();
FastLED.show();
}
void loop() {
// 显示红色(R, G, B)
leds[0] = CRGB(255, 0, 0);
FastLED.show();
delay(1000);
// 显示绿色(注意某些灯珠需要GRB顺序)
leds[0] = CRGB(0, 255, 0);
FastLED.show();
delay(1000);
// 显示自定义颜色(紫色)
leds[0] = CRGB(148, 0, 211);
FastLED.show();
delay(1000);
}
四、项目配置
-
由于使用了FastLED这个库,所以需要将此库添加进项目;添加步骤见下图
2.双击FsatLED,选择把此库添加进对应的项目;步骤见下图
3.导入完成后会自动往配置文件PlatformIO.ini中添加lib_deps = fastled/FastLED@^3.9.15。入下图所示
五、编译项目
-
点击 VSCode 底部状态栏的 "√" 图标(或按快捷键 Ctrl+Alt+B)
-
等待编译完成,检查输出窗口是否有错误
项目编译成功入下图所示
六、下载程序到开发板
-
使用 USB 线连接 ESP32-S3 开发板到电脑,选择对应的COM口,如下图所示;不知道COM口的可以在电脑的设备管理器中查看。
-
点击 VSCode 底部状态栏的 "→" 图标(或按快捷键 Ctrl+Alt+U),等待上传完成即实现了程序烧录进对应的开发板中了,如下图所示。
七、验证结果
-
程序上传成功后,WS2812 LED 应该开始循环显示红、绿、蓝三种颜色,每种颜色持续1秒
-
可以打开串口监视器(点击底部插头图标)查看调试信息
八、扩展学习
-
尝试控制多个LED(把对应的控制数组长度添加为你想要控制的LED灯的数量即可)
-
实现彩虹渐变效果
-
添加外部控制(如按钮或传感器)
-
关于串联WS2812 LED灯的控制原理,推荐WS2812炫彩灯控魔术师,我愿称之为最好的视频教程。
希望这个教程对你有所帮助!如果有任何问题,可以参考PlatformIO官方文档或FastLED库的文档获取更多信息。
如果你对物联网、智能家居、无线传感器感兴趣,欢迎点赞收藏,此后会持续更新相关内容。