ESP32 开发入门(二):基于PlatformIO平台使用 FastLED 控制 WS2812 LED

本教程将带你从零开始使用 VSCode 和 PlatformIO IDE 开发 ESP32项目。主要通过配置ESP32-S3芯片的项目,实现使用 FastLED 库控制 WS2812 LED 灯在不同颜色之间的闪烁,带你入门ESP32从项目新建->项目配置->项目烧录的整个过程。

一、准备工作

1. 安装必要软件

环境搭建可参考ESP32开发入门:基于VSCode+PlatformIO环境搭建指南

2. 硬件准备

  • ESP32-S3 开发板

  • WS2812 LED 灯条或单个 LED

  • 连接线若干

二、项目创建

  1. 打开 VSCode

  2. 点击左侧 PlatformIO 图标(类似小蚂蚁的标志)

  3. 在 PlatformIO 主页点击 "New Project"

  4. 填写项目信息:

    • Name: 项目名称

    • Board: 需要根据自己开发板选择对应的板卡(很重要)

    • Framework: 选择 "Arduino"

    • 可自定义新建项目路径

  5. 点击 "Finish" 创建项目。入下图所示

    项目新建完成后,对应的主函数和配置文件如下图所示

三、编写代码

  1. 打开 src/main.cpp 文件

  2. 删除原有内容,替换为以下代码:

#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);
}

四、项目配置

  1. 由于使用了FastLED这个库,所以需要将此库添加进项目;添加步骤见下图

2.双击FsatLED,选择把此库添加进对应的项目;步骤见下图

3.导入完成后会自动往配置文件PlatformIO.ini中添加lib_deps = fastled/FastLED@^3.9.15。入下图所示

五、编译项目

  1. 点击 VSCode 底部状态栏的 "√" 图标(或按快捷键 Ctrl+Alt+B)

  2. 等待编译完成,检查输出窗口是否有错误

    项目编译成功入下图所示

六、下载程序到开发板

  1. 使用 USB 线连接 ESP32-S3 开发板到电脑,选择对应的COM口,如下图所示;不知道COM口的可以在电脑的设备管理器中查看。

  2. 点击 VSCode 底部状态栏的 "→" 图标(或按快捷键 Ctrl+Alt+U),等待上传完成即实现了程序烧录进对应的开发板中了,如下图所示。

七、验证结果

  1. 程序上传成功后,WS2812 LED 应该开始循环显示红、绿、蓝三种颜色,每种颜色持续1秒

  2. 可以打开串口监视器(点击底部插头图标)查看调试信息

八、扩展学习

  1. 尝试控制多个LED(把对应的控制数组长度添加为你想要控制的LED灯的数量即可)

  2. 实现彩虹渐变效果

  3. 添加外部控制(如按钮或传感器)

  4. 关于串联WS2812 LED灯的控制原理,推荐WS2812炫彩灯控魔术师,我愿称之为最好的视频教程。

希望这个教程对你有所帮助!如果有任何问题,可以参考PlatformIO官方文档或FastLED库的文档获取更多信息。

如果你对物联网、智能家居、无线传感器感兴趣,欢迎点赞收藏,此后会持续更新相关内容。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值