Arduino单片机创客进化之路——入门篇1.7《控制PWM输出:让LED呼吸呼吸》

本帖最后由 暴走的阿Sai 于 2016-10-28 15:07 编辑

之前的课程我们学习到Arduino的GPIO可以输入与输出电平来控制LED,我们有没有办法控制LED的亮度呢?今天我们来让引脚产生PWM输出来达到此目的。

器件

数量

Fireduino开发平台

1块

万用板

1块

LED(发光二极管)

1个

220欧姆电阻

1个

杜邦线

2条

PWM(脉冲宽度调制)主要是处理器发送模拟信号电平进行数字编码的方法,通常发送方波,然后通过调节占空比使其达到电压可以模拟输出。

Fireduino的低电平为0V,高电平为3V。使用PWM调节范围则是0~3V

连线图如下:

Arduino代码如下:

/*
 作者:暴走的阿Sai
 时间:2016年9月6日
 发表地址:[url]www.t-firefly.com[/url]
 程序说明:
 PWM控制LED作呼吸灯
 */
void setup() {
  // 初始化引脚8为输出
  pinMode(8, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  int i,j;
  for(i=0;i<=255;i++)
  {
    analogWrite(8, i);   // 设置引脚8输出0到3V
    delay(10);              // 延迟10毫秒
  }

  for(j=255;j>=0;j--)
  {
    analogWrite(8, j);   // 设置引脚8输出3到0V
    delay(10);              // 延迟10毫秒
  }
  delay(500);
}

运行效果如下:
1.7.gif

主要用到的函数:

analogWrite()

———————————————————————————
【教程传送】Arduino单片机创客进化之路教程汇总贴
【Fireduino QQ交流群】:450340779
———————————————————————————

Firefly微信公众号 阿Sai微博

———————————————————————————

Firefly官网:http://www.t-firefly.com

Firefly开源社区:http://developer.t-firefly.com

这个是通过dac输出电压不同来调亮度的吧。
不是PWM方式。。。

程序下载到实验板上没有呼吸灯效果。

zenyao05 发表于 2016-12-13 20:15
程序下载到实验板上没有呼吸灯效果。

要接上电阻,可以加大延迟来看看

暴走的阿Sai 发表于 2016-12-15 15:54
要接上电阻,可以加大延迟来看看

上了电阻也没有效果

这个真的是BUG