基于BL606P-DVK开发板PWM测试-呼吸灯效果实现

LEDs

373人已加入

描述

  本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了PWM测试,后面还会持续更新该开发者的测评内容,敬请期待!

  01 前言

  这一篇我们继续接口测试,测试PWM的输出,测试其频率和占空比的设置,以及使用PWM控制LED实现呼吸灯的效果。

  02 过程

  2.1 引脚

  使用GPIO16

  led

  对应PWM0的输出GPIO16_PWM0_CH0P

  2.2 代码

  包含头文件

  #include 《aos/hal/pwm.h》

  引脚配置

  csi_pin_set_mux(GPIO_PIN_16, GPIO16_PWM0_CH0P);

  PWM配置

  pwm_dev_t pwm;

  pwm.port = 0;

  pwm.config.freq = 5000;

  pwm.config.duty_cycle = 0.2f;

  hal_pwm_init(&pwm);

  启动

  hal_pwm_start(&pwm);

  2.3 测试

  输出不同频率不同占空比的值,使用逻辑分析仪测试。

  pwm.config.freq = 1000;

  pwm.config.duty_cycle = 0.5f;

  led

  pwm.config.freq = 5000;

  pwm.config.duty_cycle = 0.2f;

  led

  2.4 呼吸灯

  while(1)

  {

  for(int i=0;i《=100;i++)

  {

  pwm_cfg.duty_cycle = i/100.0;

  hal_pwm_para_chg(&pwm, pwm_cfg);

  aos_msleep(20);

  }

  for(int i=100;i》=0;i--)

  {

  pwm_cfg.duty_cycle = i/100.0;

  hal_pwm_para_chg(&pwm, pwm_cfg);

  aos_msleep(20);

  }

  }

  可以看到占空比从0~100变化。

  下图是99~100~99的过程。

  led

  将GPIO16接到JP8的GPIO19_LED_B,用GPIO16的占空比控制蓝色LED的亮灭。

  可以看到呼吸灯的效果。实际灯的亮度并不是跟电压呈线性关系的,所以占空比和亮度也不是线性的,所以要按照实际LED的特性进行优化,按照查表得到不同亮度和占空比的对应关系,这样输出才会是均匀变化。

  03 总结

  以上完成了PWM的测试,使用逻辑分析仪测试了占空比和频率的设置的正确性。同时用PWM控制LED实现了呼吸灯的效果。

  编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分