Arduino入门教程--第五课--按钮PWM控制LED亮度
昨天,我们学习了怎么玩延时开关,我想大家应该也玩了不少新鲜的玩法,今天我们来介绍一种更好玩的东西。通过PWM的方式来调整LED的光亮度。什么是PWM呢,具体请参考极客工坊WIKI词条:PWM试验用元器件列表:
ocrobot mango控制板(Arduino兼容)一块专用面包板跳线一盒面包板一块镊子一把LED发光二极管一个按钮开关两个10K欧姆电阻两个220欧姆电阻一个USB数据连接线一根
接着我们来看电路连接图
http://image.geek-workshop.com/forum/201210/03/144820lzlpd3hq576z6w53.png
从上图我们可以看到两个开关分别接到了数字接口,做输入检测,LED接到了板子上带有#号标识的数字接口上,注意只有带#号标识的接口才具备PWM输出功能。
好了,我们照设计的电路来在面包板上搭建电路
电路搭建好如上图。这样仔细检查一遍确认没有问题后,我们来下载程序
ARDUINO 代码复制打印
/*
作者:极客工坊
时间:2012年5月29日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:通过两个开关来控制led的亮度
*/
int n=0;
void setup ()
{
pinMode(4,INPUT);
pinMode(6,OUTPUT); //该端口需要选择有#号标识的数字口
pinMode(10,INPUT);
}
void loop()
{
int up =digitalRead(4); //读取4号口的状态
int down = digitalRead(10); //读取10号口的状态
if (up==HIGH) //判断4号口目前是否是高电平
{
n=n+5; //每次累加值为5
if (n>=255) {
n=255;
} //限定最大值为255
analogWrite(6,n); //使用PWM控制6号口输出,变量n的取值范围是0-255
delay (300);
}
if (down==HIGH) //减少亮度
{
n=n-5;
if (n<=0) {
n=0;
}
analogWrite(6,n);
delay (300);
}
}
多谢楼主分享,谢谢 多谢楼主分享 谢谢分享
页:
[1]
