【DFRobot WiDo WiFi物联网开发板试用体验】5 呼吸灯

  • 小伙伴
  • 开发
  • 物联网
  • BREATH
  • 收益
  • xukejing
  • LV5工程师
  • |      2017-06-20 21:54:10
  • 浏览量 933
  • 回复:0
就像它的名字一样,呼吸灯的光效就是是缓慢变量然后缓慢变暗。这个过程的要点就是过渡要平滑,并且最亮的时候不要突然灭了,或者最暗的时候不要突然发生闪光。 我们前面写的那个1024级精度的PWM调光函数正好可以做这个事。所以,我们在它基础上再构造一个函数,用于按呼吸的规律控制pwm_led函数的输入量。这个breath函数如下
void breath()

{

  for(i=0;i<1024;i++)

  {

    pwm_led(i);

  }

  delay(500);

  for(i=1023;i>=0;i--)

  {

    pwm_led(i);

  }

  digitalWrite(LED_BUILTIN, LOW);

  delay(500);

}
然后,依然是要写个主函数,能让这个呼吸函数跑起来。
int i;

void setup() {

  pinMode(LED_BUILTIN, OUTPUT);

}

void loop() 

{

  breath();

}

void pwm_led(int k)

{

  if(k<0)

  k=0;

  if(k>1023)

  k=1023;

  digitalWrite(LED_BUILTIN, LOW);

  delayMicroseconds(1023-k);

  digitalWrite(LED_BUILTIN, HIGH);  

  delayMicroseconds(k);

}

void breath()

{

  for(i=0;i<1024;i++)

  {

    pwm_led(i);

  }

  delay(500);

  for(i=1023;i>=0;i--)

  {

    pwm_led(i);

  }

  digitalWrite(LED_BUILTIN, LOW);

  delay(500);

}

读完我的这几篇帖子,小伙伴们应该收益颇丰。 对于怎么写函数,大伙儿模仿我这几篇帖子就好,但也别死记硬背,要留其神,遗其形。 千万不要拘泥于代码格式、变量类型和变量名字,学会灵活运用,融会贯通。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子