544|1

28

帖子

0

资源

一粒金砂(中级)

【ESP32-C3-DevKitM-1】创建工程+点亮RGB灯 [复制链接]

上次搭好开发环境后,一直想点亮RGB灯,但是平时时间也不多,今天就来给大家分享一下创建工程和点亮RGB灯。

1、首先把我们要用到的功能例子复制到自己的工程目录。我复制的是led_strip的例子

例子.png

 

 

2、然后打开VS code 软件,在如图所示,添加文件夹,就是刚刚复制那个目录的文件夹。打开后,修改为自己的代码。

点击.png

打开之后就是这个样子

 

打开main.png

3、修改好代码后,编译。编译时间比较久。再选择串口,下载。 编译下载.png

 

4、最后的效果图

效果图.jpg

 

最后附代码图

 

 

/* RMT example -- RGB LED Strip

   This example code is in the Public Domain (or CC0 licensed, at your option.)

   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "esp_log.h"
#include "driver/rmt.h"
#include "led_strip.h"
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

static led_strip_t *strip;

#define RMT_TX_NUM 8  //发送口
#define RMT_TX_CHANNEL RMT_CHANNEL_0//发送频道
#define LED_STRIP_NUM 1//灯珠数量

static const char *TAG = "WS2812S";

struct WS2812_COLOR{
uint32_t red;
uint32_t green ;
uint32_t blue;
};

struct WS2812_COLOR WS2812_RGB;

void init_led();
void set_rgb(uint16_t Red, uint16_t Green, uint16_t Blue);

void app_main(void)
{
    init_led();
    while (true)
    {
    set_rgb(0xfe,0x00,0x25); //
        /* code */
    }
}

void init_led()
{
	rmt_config_t config = RMT_DEFAULT_CONFIG_TX(RMT_TX_NUM, RMT_TX_CHANNEL);//配置引脚及通道
	// set counter clock to 40MHz
	config.clk_div = 2;
	ESP_ERROR_CHECK(rmt_config(&config));
	ESP_ERROR_CHECK(rmt_driver_install(config.channel, 0, 0));

	// install ws2812 driver
	led_strip_config_t strip_config = LED_STRIP_DEFAULT_CONFIG(24, (led_strip_dev_t)config.channel);
	strip = led_strip_new_rmt_ws2812(&strip_config);
	if (!strip)
	{
		ESP_LOGE(TAG, "install WS2812 driver failed");
	}
	// Clear LED strip (turn off all LEDs)
	ESP_ERROR_CHECK(strip->clear(strip, 100));
}


void set_rgb(uint16_t Red, uint16_t Green, uint16_t Blue)
{
	for (int i = 0; i < LED_STRIP_NUM; i++)
	{
		strip->set_pixel(strip, i, Red, Green, Blue);//设置颜色
	}
	WS2812_RGB.red = Red;
	WS2812_RGB.green = Green;
	WS2812_RGB.blue = Blue;
	strip->refresh(strip, 10);
}



继续努力学习ESP32的使用


回复

5936

帖子

0

资源

五彩晶圆(初级)

亮灯效果很好


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表