打印
[PIC®/AVR®/dsPIC®产品]

【Curiosity Nano测评报告】+ PIC16F13145 Curiosity Nano的PWM实现呼吸灯

[复制链接]
2199|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
呼吸灯就是灯珠在明暗之间有规律的缓慢变化。
可以通过PWM来实现,PWM的占空比不同人眼看起来会觉得亮度不同,因此定时修改驱动LED引脚的PWM占空比即可实现呼吸灯的效果。
接下来我们使用PWM实现一个呼吸灯效果。
硬件PIC16F13145 Curiosity Nano 上的RC0引脚的橙色LED灯珠。
1、新建工程
2、启动MCC配置PWM


PWM1默认使用TMR2

所以在TMR2里配置PWM的周期

如上图所示,这里显示的就是TMR2中配置出来的结果,另外初始化的默认占空比可以修改成你需要的默认配置。
完成了这些配置即可编写我们的函数了,用以实现呼吸灯效果。
#include "mcc_generated_files/system/system.h"
#include"mcc_generated_files/timer/delay.h"

int main(void)
{

    int brightness = 0; // 当前亮度
    int step = 1;            // 亮度改变的步长
    int delayTime = 25;      // 延时时间
   
    SYSTEM_Initialize();

    DELAY_milliseconds(1000);

    while(1)
    {
        for(brightness=0;brightness<100;brightness+=step)
        {
            PWM1_LoadDutyValue(brightness);
            DELAY_milliseconds(delayTime);
            if(brightness<50)
            {
                step=1+(brightness/10);
            }
            else
            {
                step=1+(100-brightness)/10;
            }
        }        
        DELAY_milliseconds(50);
        
        for(brightness=100;brightness>=0;brightness-=step)
        {
            PWM1_LoadDutyValue(brightness);
            DELAY_milliseconds(delayTime);
            if(brightness>50)
            {
                step=1+(100-brightness)/10;
            }
            else
            {
                step=1 + brightness/10;
            }        
        }
        DELAY_milliseconds(50);
    }   
}



使用特权

评论回复
沙发
gaoyang9992006|  楼主 | 2024-9-8 17:20 | 只看该作者

示波器捕捉的PWM波形。

使用特权

评论回复
板凳
wanduzi| | 2024-9-29 20:48 | 只看该作者
呼吸灯的效果不错。PWM挺好,好像不能连续,不然看着效果不连续,是有一个什么曲线。

使用特权

评论回复
地板
21mengnan| | 2024-9-30 11:59 | 只看该作者
呼吸灯的伽马校正。

使用特权

评论回复
5
单片小菜| | 2024-9-30 13:53 | 只看该作者
呼吸灯最终的结果是什么样?

使用特权

评论回复
6
自己造声卡| | 2024-9-30 14:13 | 只看该作者
有没有视频,可以看一下效果

使用特权

评论回复
7
哈根达斯uz| | 2024-9-30 15:44 | 只看该作者
定时修改驱动LED引脚的PWM占空比即可实现呼吸灯的效果

使用特权

评论回复
8
zhuotuzi| | 2024-11-28 22:18 | 只看该作者
有没有输出使能控制,这样就可以调速电机。

使用特权

评论回复
9
yiy| | 2024-11-29 15:29 | 只看该作者
如果有使能就可以控制电机。

使用特权

评论回复
10
yiy| | 2024-11-29 15:30 | 只看该作者
应该是有的,看着挺好用。

使用特权

评论回复
11
wahahaheihei| | 2024-11-29 21:08 | 只看该作者
可以试试DMA驱动的PWM,比如用DMA搬运ADC

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

1971

主题

15987

帖子

210

粉丝