本课继续光敏实验,上面我们制作了达文西之灯,这次稍微改造下,将他做成光照度指示器,光敏三极管感受到的光越强,就点亮越多的led,达到指示的目的.
实验材料
ocrobot mango(Arduino兼容板) | 1块 | 面包板 | 1块 | 面包板专用跳线盒 | 1盒 | 10K欧姆电阻 | 1枚 | 220欧姆电阻 | 1枚 | 四色LED | 共4枚 | 光敏三极管 | 1枚 | 数据线 | 1根 |
先来看我们设计的电路图,原来是一样的,有一点特别的地方,就是我们四枚LED共用了一个220欧姆电阻, 共用电阻的原则是这样的,总功率不能超过电阻最大设计功率。我们的实验有些特别的地方,就是我们在单位时间内只会点亮1枚LED,所以不存在功率超了的问题。
然后看我的实物照片
仔细研究搭建电路,希望大家比我搭的好看。。。。。
然后就是程序代码了- /*
- 作者:极客工坊-迷你强
- 时间:2012年7月4日
- IDE版本号:1.0.1
- 发布地址:[url]www.geek-workshop.com[/url]
- 作用:Arduino作为光照度显示器,光线越强,led会亮的越多
- */
- void setup ()
- {
- for(int i=2; i<=5;i++) //使用循环方式创建2-5号数字口为输出模式
- {
- pinMode(i,OUTPUT);
- }
- }
- void loop ()
- {
- int n =analogRead(A0); //读取光敏三极管的读数
-
- if (n>=10) //各个颜色层级判断,各个层级数值,大家可根据自己的使用环境进行相应调整,最小0,最大1023
- {
- digitalWrite(2,HIGH);
- digitalWrite(2,LOW);
- }
- if(n>20)
- {
- digitalWrite(3,HIGH);
- digitalWrite(3,LOW);
- }
- if(n>40)
- {
- digitalWrite(4,HIGH);
- digitalWrite(4,LOW);
- }
- if(n>80)
- {
- digitalWrite(5,HIGH);
- digitalWrite(5,LOW);
- }
- }
复制代码 从源代码上可以看出来,我们一个时间范围内,只会点亮1枚LED,因为刷新速度非常快,所以大家看起来4枚LED都亮了。
最后附上我们的演示视频。因为光线比较强,所以LED的亮度不是很明显
|