一、引言

        本章内容主要介绍如何使用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灯,具体可自行查找资料。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐