通过esp32实现不同颜色和不同亮度的rgb灯

我们先来看一下什么是rgb灯。
全彩 LED 灯, 实质上是一种把红、绿、 蓝单色发光体集成到小面积区域中的 LED 灯,控制时对这三种颜色的灯管输出不同的光照强度,即可混合得到不同的颜色,其混色原理与光的三原色混合原理一致。简单来说就是led会有三个引脚,分别对应着red颜色,green颜色,blue颜色。通过改变它们的占空比,以来达到显示不同的颜色。就像调色板一样,通过红绿蓝三种基础色来调出不同的颜色。
接下来说一下所用到的一些esp32的api,我把它封装在了三个函数里面。

//配置gpio的pwm的初始化
//无形参
//无返回值
void ledp_Init(void)
{
   

    ledc_timer_config_t ledc_timer = 
    {
   
        .duty_resolution = LEDC_TIMER_8_BIT, // resolution of PWM duty
        .freq_hz = 5000,                      // frequency of PWM signal
        .speed_mode = LEDC_MODE,           // timer mode
        .timer_num = LEDC_TIMER,            // timer index
        .clk_cfg = LEDC_AUTO_CLK,              // Auto select the source clock
    };
	ledc_timer_config(&ledc_timer);

}

//gpio输出不同占空比的pwm(带缓冲时间)
//LEDC_NUM:输出的引脚,LEDC_DUTY:占空比,LEDC_FADE_TIME:缓冲时间
//无返回值
void ledp_fade_Output(int LEDC_NUM, uint32_t LEDC_DUTY, int LEDC_FADE_TIME)
//void ledp_fade_Output()
{
   
    ledc_channel_config_t ledc_channel = 
        {
   
            .
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值