【DFRobot WiDo WiFi物联网开发板试用体验】4 PWM调光灯

  • 开发
  • 物联网
  • 高电平
  • xukejing
  • LV5工程师
  • |      2017-06-20 21:40:20
  • 浏览量 697
  • 回复:0
今天我们来做个厉害的,PWM调光灯,调光精度就定个1024级吧。 PWM调光原理有些像控制脉冲灯,只是延时精度更高,使用微秒级延时。 我们来一起写个定义PWM的函数,精度就定为1024级吧,用01023表示各个亮度。函数需要一个int型输入,表示高电平脉宽,也就是亮度值。
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);

}
然后写个主函数,给pwm_led函数输入01023不同的值,灯的亮度是不一样的。
int i;

void setup() {

  pinMode(LED_BUILTIN, OUTPUT);

}

void loop() 

{

  i=100;

  pwm_led(i);

  delay(500);

  i=300;

  pwm_led(i);

  delay(500);

  i=500;

  pwm_led(i);

  delay(500);

}

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);

}

现在大家都学会调光了吧,接下来就可以做一些光效了,比如呼吸效果。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

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

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