昨天,我们学习了怎么玩延时开关,我想大家应该也玩了不少新鲜的玩法,今天我们来介绍一种更好玩的东西。通过PWM的方式来调整LED的光亮度。什么是PWM呢,具体请参考极客工坊WIKI词条:PWM
试验用元器件列表:
ocrobot mango控制板(Arduino兼容) | 一块 |
专用面包板跳线 | 一盒 |
面包板 | 一块 |
镊子 | 一把 |
LED发光二极管 | 一个 |
按钮开关 | 两个 |
10K欧姆电阻 | 两个 |
220欧姆电阻 | 一个 |
USB数据连接线 | 一根 |
接着我们来看电路连接图
从上图我们可以看到两个开关分别接到了数字接口,做输入检测,LED接到了板子上带有#号标识的数字接口上,注意只有带#号标识的接口才具备PWM输出功能。
好了,我们照设计的电路来在面包板上搭建电路
电路搭建好如上图。这样仔细检查一遍确认没有问题后,我们来下载程序
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号口目前是否是高电平 { analogWrite(6,n); //使用PWM控制6号口输出,变量n的取值范围是0-255 n=n+5; //每次累加值为5 if (n>=255) { n=255; } //限定最大值为255 delay (300); } if (down==HIGH) //减少亮度 { analogWrite(6,n); n=n-5; if (n<=0) { n=0; } delay (300); } }
转自:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1054