呼吸灯代码linux,ESP32 开发笔记(三)源码示例 3_LEDC_PWM 使用LEDC实现LED呼吸灯

开发板购买链接

开发板简介

开发环境搭建 windows

源码示例:

0_Hello Bug (ESP_LOGX与printf)    工程模板/打印调试输出

1_LED                                                    LED亮灭控制

2_LED_Task                                          使用任务方式控制LED

3_LEDC_PWM                                      使用LEDC来控制LED实现呼吸灯效果

4_ADC_LightR                                      使用ADC读取光敏电阻实现光照传感

5_KEY_Short_Long                              按钮长按短按实现

6_TouchPad_Interrupt                          电容触摸中断实现

7_WS2812_RMT                                  RGB_LED彩虹变色示例

8_DHT11_RMT                                    使用RMT实现读取DHT11温湿度传感器

9_SPI_SDCard                                    使用SPI总线实现TF卡文件系统示例

10_IIC_ADXL345                                使用IIC总线实现读取ADXL345角度加速度传感器

11_IIC_AT24C02                                 使用IIC总线实现小容量数据储存测试

12_IR_Rev_RMT           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32 IDF中,可以使用PWM输出来实现呼吸灯效果。下面是一个简单的示例代码: ```c #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #include "driver/ledc.h" #define LED_PIN 2 #define LEDC_CHANNEL LEDC_CHANNEL_0 #define LEDC_TIMER LEDC_TIMER_0 void app_main() { // 配置LED引脚为输出 gpio_pad_select_gpio(LED_PIN); gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); // 配置LEDC定时器和通道 ledc_timer_config_t ledc_timer = { .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 5000, .speed_mode = LEDC_LOW_SPEED_MODE, .timer_num = LEDC_TIMER }; ledc_timer_config(&ledc_timer); ledc_channel_config_t ledc_channel = { .channel = LEDC_CHANNEL, .duty = 0, .gpio_num = LED_PIN, .speed_mode = LEDC_LOW_SPEED_MODE, .timer_sel = LEDC_TIMER }; ledc_channel_config(&ledc_channel); // 呼吸灯效果 while (1) { for (int i = 0; i <= 4095; i += 10) { ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL, i); ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL); vTaskDelay(pdMS_TO_TICKS(10)); } for (int i = 4095; i >= 0; i -= 10) { ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL, i); ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL); vTaskDelay(pdMS_TO_TICKS(10)); } } } ``` 这段代码通过LEDC库来控制LED灯的PWM输出,从而实现呼吸灯效果。具体实现方法是先配置LED引脚为输出,然后配置LEDC定时器和通道,最后在循环中通过调节PWM占空比来控制LED灯的亮度。循环中的延时时间可以根据需要进行调整,以达到理想的呼吸灯效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值