昨天,我们学习了怎么玩延时开关,我想大家应该也玩了不少新鲜的玩法,今天我们来介绍一种更好玩的东西。通过PWM的方式来调整LED的光亮度。什么是PWM呢,具体请参考极客工坊WIKI词条:PWM
试验用元器件列表:
ocrobot mango控制板(Arduino兼容) | 一块 | 专用面包板跳线 | 一盒 | 面包板 | 一块 | 镊子 | 一把 | LED发光二极管 | 一个 | 按钮开关 | 两个 | 10K欧姆电阻 | 两个 | 220欧姆电阻 | 一个 | USB数据连接线 | 一根 |
接着我们来看电路连接图
从上图我们可以看到两个开关分别接到了数字接口,做输入检测,LED接到了板子上带有#号标识的数字接口上,注意只有带#号标识的接口才具备PWM输出功能。
好了,我们照设计的电路来在面包板上搭建电路
电路搭建好如上图。这样仔细检查一遍确认没有问题后,我们来下载程序
- /*
- 作者:极客工坊
- 时间:2012年5月29日
- IDE版本号:1.0.1
- 发布地址:[url=http://www.geek-workshop.com]www.geek-workshop.com[/url]
- 作用:通过两个开关来控制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);
- }
- }
复制代码
下载好程序后就能进行实验了,以下是实验视频
==========分割线 下面为扩展阅读==========
本次实验所用到的语法请点击关键字进入极客工坊WIKI查看,词条内容在WIKI中不定期更新。
void
setup()
loop()
pinMode()
digitalRead()
analogWrite()
delay()
if
int
|