Firefly开源社区

标题: Arduino单片机创客进化之路——入门篇1.7《控制PWM输出:让LED呼吸呼吸》 [打印本页]

作者: 暴走的阿Sai    时间: 2016-10-28 15:07
标题: 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代码如下:
  1. /*
  2. 作者:暴走的阿Sai
  3. 时间:2016年9月6日
  4. 发表地址:[url]www.t-firefly.com[/url]
  5. 程序说明:
  6. PWM控制LED作呼吸灯
  7. */
  8. void setup() {
  9.   // 初始化引脚8为输出
  10.   pinMode(8, OUTPUT);
  11. }

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

  20.   for(j=255;j>=0;j--)
  21.   {
  22.     analogWrite(8, j);   // 设置引脚8输出3到0V
  23.     delay(10);              // 延迟10毫秒
  24.   }
  25.   delay(500);
  26. }
复制代码

运行效果如下:


主要用到的函数:
  1. analogWrite()
复制代码



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

———————————————————————————
  Firefly微信公众号       阿Sai微博
———————————————————————————
Firefly官网:http://www.t-firefly.com
Firefly开源社区:http://developer.t-firefly.com






作者: juring    时间: 2016-12-1 13:19
这个是通过dac输出电压不同来调亮度的吧。
不是PWM方式。。。
作者: zenyao05    时间: 2016-12-13 20:15
程序下载到实验板上没有呼吸灯效果。
作者: 暴走的阿Sai    时间: 2016-12-15 15:54
zenyao05 发表于 2016-12-13 20:15
程序下载到实验板上没有呼吸灯效果。

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

上了电阻也没有效果
作者: wambob    时间: 2016-12-15 17:47
这个真的是BUG




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1