ESP32-S3-devKitC-1 点亮板载 WS2812 RGB LED

ESP32-S3-devKitC-1 板上自带了一个RGB LED,型号为 WS2812。

RGB LED 在板上的位置如下图所示。

在这里插入图片描述
为了点亮这个WS2812,需要确定这颗RGB LED连接到哪个GPIO上了。
下面是确定GPIO管脚的过程:
1、根据原理图
在这里插入图片描述
2、根据PCB布局图:
在这里插入图片描述

程序使用了 zorxx/neopixel 这个组件,所以需要运行组件添加命令:

idf.py add-dependency "zorxx/neopixel^1.0.10"

组件添加完成后,需要重新选一下芯片才可以下载添加的组件到项目中。
在这里插入图片描述
完整的代码:

#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include "esp_log.h"
#include "driver/gpio.h"
#include "neopixel.h"

#define TAG "RGB-WS2812"
#define LED_COUNT  1
#define LED_PIN GPIO_NUM_48
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))

void app_main(void)
{
    uint32_t times = 100000; //显示的次数
    tNeopixelContext neopixel = neopixel_Init(LED_COUNT, LED_PIN);
    tNeopixel pixel[] =
    {
        { 0, NP_RGB(50, 0,  0) }, /* 红色 */
        { 0, NP_RGB(0,  50, 0) }, /* 绿色 */
        { 0, NP_RGB(0,  0, 50) }, /* 蓝色 */
        { 0, NP_RGB(0,  0,  0) }, /* 关闭 */
    };

    ESP_LOGI(TAG, "[%s] Starting", __func__);
    for(int iter = 0; iter < times; ++iter)
    {
        for(int i = 0; i < ARRAY_SIZE(pixel); ++i)
        {
            neopixel_SetPixel(neopixel, &pixel[i], 1);
            vTaskDelay(pdMS_TO_TICKS(200)); //延时,此时显示红、绿、蓝、关闭中的一种
        }
    }
    ESP_LOGI(TAG, "[%s] Finished", __func__);
}

这时候,即使编译成功,烧制完成,RGB LED灯也不会亮。
还差一步!
在这里插入图片描述
使用杜邦线把RGB下面的连接点短接,接通R17和GPIO48管脚的线路,结果展示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值