智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
楼主: znck007
打印 上一主题 下一主题

[Arduino入门教程]第七课--程序PWM控制LED亮度[呼吸灯]

  [复制链接]

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
跳转到指定楼层
楼主
发表于 2014-3-25 16:14:02 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
前两课我们用按钮,用电位器通过PWM方式调节LED的亮度,今天我们玩个简单的,纯粹用编程的手法来让LED渐明渐暗,如同呼吸一般,所以我们给它起了一个神奇的名字,呼吸灯。

其实本课的电路是这几课中最简单的。俗称最开始的质量最好,最后的偷工减料最严重。。。。。开个玩笑。

试验用元器件列表:


ocrobot mango控制板(Arduino兼容)  一块  
面包板  一块  
面包板专用跳线  一盒  
任意颜色LED  一个  
220欧姆电阻  一个  
USB数据线  一根  

准备好以上元器件,我们就着手设计电路图,如下图



同样的,因为是PWM试验,所以LED的数字接口一定要选用带#号标识的数字口,只有带#号的数字输出口才具有硬件PWM输出功能。

然后我们就依据电路连接图来搭建自己的试验电路,我搭建的电路如下:






好了,下面大家来看程序,这可是今天的主角:
希望大家自己动手调整几个延时参数,让呼吸灯的效果更真实,具有美感

[C] 纯文本查看 复制代码
/*
 作者:极客工坊
 时间:2012年6月8日
 IDE版本号:1.0.1
 发布地址:[url]www.geek-workshop.com[/url]
 作用:通过循环语句控制PWM来达到呼吸灯效果
*/
 
void setup ()
{
  pinMode(11,OUTPUT);
}
 
void loop()
{
  for (int a=0; a<=255;a++)                //循环语句,控制PWM亮度的增加
  {
    analogWrite(11,a);
    delay(8);                             //当前亮度级别维持的时间,单位毫秒            
  }
    for (int a=255; a>=0;a--)             //循环语句,控制PWM亮度减小
  {
    analogWrite(11,a);
    delay(8);                             //当前亮度的维持的时间,单位毫秒  
  }
  delay(800);                             //完成一个循环后等待的时间,单位毫秒
}



然后,我们将程序下载到ocrobot mango(Arduino兼容)控制板中,就能看到效果了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-6-17 22:03 , Processed in 0.091789 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表