【ESP32开发】——RGB LED灯(灯珠)点亮
·
一、引言
本章内容主要介绍如何使用ESP32开发板点亮板载的RGB灯,使用的是ESP32-S3和ESP32-C3开发板,调用第三方库实现。由于网络上没有关于点亮ESP32板载RGB灯的资料,特此记录。
二、 ESP32-C3与ESP32-S3
以下为各自开发板的引脚图,驱动板载RGB LED灯的引脚可观察板子上RGB旁边的标记字,如RGB@IO8,即驱动引脚为GPIO 8
引脚可查看官方文档:
ESP32-S3-DevKitC-1 v1.1 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 (espressif.com)
ESP32-S3的RGB灯驱动需要查看板子上的标记,我使用的是 ESP32-S3-DevKitC-1 ,但是标记是RGB@IO48,与官方文档不符。应以实际标记的驱动引脚为准。
三、驱动程序
框架:VS + PlatformIO + Arduino
第三方库:Adafruit NeoPixel
【第三方库如何下载配置可见上一篇博客内容:】【ESP32开发】——开发环境搭建(VSCode+PlatformIO)_CoCo哥的博客-CSDN博客
#include <Adafruit_NeoPixel.h>
#include <Arduino.h>
#define LED_PIN 8 // 板载RGB灯珠的引脚,根据实际使用的开发板型号而定
#define LED_COUNT 1 // LED灯条的灯珠数量(板载的是一颗)
/*
使用 Adafruit_NeoPixel 库创建了一个名为 strip 的对象,控制LED灯珠
LED_COUNT 表示 LED 条上的 LED 数量,LED_PIN 表示连接到 Arduino 的引脚,NEO_GRB + NEO_KHZ800 用于设置 LED 条的颜色排列和通信速率
*/
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(50); // 设置亮度(0-255范围)
}
void loop() {
strip.setPixelColor(0, strip.Color(255, 0, 0)); // 设置灯珠为红色 (R, G, B)
strip.show(); // 显示颜色
delay(1000); // 延迟1秒
strip.setPixelColor(0, strip.Color(0, 255, 0)); // 设置灯珠为绿色 (R, G, B)
strip.show(); // 显示颜色
delay(1000); // 延迟1秒
strip.setPixelColor(0, strip.Color(0, 0, 255)); // 设置灯珠为蓝色 (R, G, B)
strip.show(); // 显示颜色
delay(1000); // 延迟1秒
}
运行以上程序可实现板载RGB灯珠的交替点亮。
也可考虑使用 #include "Freenove_WS2812_Lib_for_ESP32.h"该库文件点亮RGB灯,具体可自行查找资料。
更多推荐
已为社区贡献5条内容
所有评论(0)