创客联盟网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

开思网在线3D打印服务
查看: 22613|回复: 4
打印 上一主题 下一主题

Arduino小白自学教程008——让led有多级亮度+视频!

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-23 23:03:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家有没有见过那种萤火虫灯的呢?
它另外的一个名字叫呼吸灯,所谓的呼吸灯就是led由灭逐渐到最亮,再由最亮到灭的过程。
这节我们学的招数:
analogWrite(X,Y);
是不是觉得跟digitalWrite(6,HIGH);似曾相识呢?
analogWrite(X,Y);可以这样理解为就是控制电压输出,
X为控制的脚
Y为设定的电压值
X也是只能填数字,但是这个数字只能是(3,5,6,9,10,11),就是我们AI板子上带有“~”的引脚)。因为只有这几个脚才能输出变化的电压,Y是不是直接填5V呢?不是的!Y只能填写0-255其中一个数。其实就是一个映射!其实就是把5V分为256份,例如我输出5V,我就应该把Y写成255,如果我想输出0V,我就应该把Y写成0,又如我想输出2.5V,我就应该把Y写成127【(2.5/5)*256-1】

硬件按上图连接好,程序如下:
void setup(){   }void loop(){    analogWrite(6,255);}编译下载后,我们可以看到接在6脚的LED亮度很高。 我们再把程序改下把analogWrite(6,255)改成analogWrite(6,1)
再编译下载,这时是不是可以看到LED灯的亮度几乎灭掉了呢?说明你已经成功控制6脚的电压输出了!
如果我想做出LED由灭逐渐到最亮的效果,我们会这样写的:
void setup()
{   
}
void loop()
{
    analogWrite(6,0);
    analogWrite(6,1);
    analogWrite(6,2);
    analogWrite(6,3);





    analogWrite(6,252);
    analogWrite(6,253);
    analogWrite(6,254);
    analogWrite(6,255);
}
额,如果你够耐心的你可以这样写完,但是你一定会累死的。程序编写是可以很智能的,有人早就想到有这样的情况,所以他们设置了for语句。那到底怎么用呢?
从上面的程序我们可以发现一个规律analogWrite(6,Y);Y只是从0一直递增到255。
这时我们可以用条语句告诉程序,程序啊!程序!你就是把Y不断换成从0到255的数就可以了,其他东西不要改变。
这是我们就可以翻译成
for(int i=0;i<255;i++)
{
analogWrite(6,i);
delay(10);
}
for的结构是这样的for(循环变量初始化;循环判断条件;循环变量增值)
for(int i=0;i<255;i++)的意思是int i=0产生一个变量i,并且初始化i=0,然后判断条件就是i是否小于255,i++的意思就是i自加1。
然后程序就执行analogWrite(6,i)一次。
知道i加到255时候,255不是小于255,不满足条件所以就跳出这个循环,即把这255次的任务完成了。
可能我说得还不够清楚,大家慢慢体会下,我再举个例子,例如我弄个a从10数到20。
for(int a=10;a<21,a++)。又如我想弄个b从30数到0。for(int b=30;b<0;b--)
如果大家还是不是很理解那就多尝试下,多想想,总会想通的,这个for循环是特别的好用,能让我们省写好多代码。

analogWrite的用法就讲到这里,这条语句实质就是用来控制引脚电压而已,例如如果控制LCD背光屏的亮度,我们就可能用到这条语句咯!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持
2
发表于 2013-7-28 01:04:58 | 只看该作者

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
3
发表于 2013-8-4 22:47:06 | 只看该作者

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
4
发表于 2013-8-11 15:57:08 | 只看该作者

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5
发表于 2013-9-17 19:29:09 | 只看该作者

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|手机版|创客联盟网  

GMT+8, 2024-12-22 10:18 , Processed in 0.026316 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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