本帖最后由 jinglixixi 于 2021-7-13 00:21 编辑
所谓呼吸灯效果,就是通过PWM的调节功能来改变LED 灯的亮灭,以达到LED 亮度的渐变,使其看起来像在呼吸一样。 作为PWM的核心则是定时器,通过它来控制占空比,即高电平持续的时间在整个周期所占的比例。 ESP32-EArduino开发板共有 16 个定时器通道,在使用时需对所用的通道加以定义。 在呼吸灯的测试中,所使用的定时器通道为通道0,其计数宽度为13 位。 由程序可以看出其设计思想为: 在LED的亮度处于非边界状态时,是通过亮度值的递变来调节亮度的,当亮度值达到边界时,则翻转递变的方向,从而形成由暗到亮,再由亮到按的周期性变化过程。 经程序上传,其界面如图1所示。 图1 完成上传 在完成程序上传后,其运行效果如图2所示。 图2 运行效果 值得指出的是,FireBeetle Board-ESP32 的任何引脚都可以配置成 PWM 输出,这就大大地增强了应用的自由度。 在此基础上,我们还可以添加相应的按键来选择占空比的增减,进而来调节风扇的快慢。 单键加速的程序如图3所示,若再配置一个减速键,则可双向调节转速。 图3 风扇调节程序 图4 线路连接 图5 风扇调节
|