本课继续光敏实验,上面我们制作了达文西之灯,这次稍微改造下,将他做成光照度指示器,光敏三极管感受到的光越强,就点亮越多的led,达到指示的目的.
实验材料
ocrobot mango(Arduino兼容板) | 1块 |
面包板 | 1块 |
面包板专用跳线盒 | 1盒 |
10K欧姆电阻 | 1枚 |
220欧姆电阻 | 1枚 |
四色LED | 共4枚 |
光敏三极管 | 1枚 |
数据线 | 1根 |
先来看我们设计的电路图,原来是一样的,有一点特别的地方,就是我们四枚LED共用了一个220欧姆电阻, 共用电阻的原则是这样的,总功率不能超过电阻最大设计功率。我们的实验有些特别的地方,就是我们在单位时间内只会点亮1枚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都亮了