[开源硬件] Arduino入门教程--第十一课--Arduino达文西之灯(光敏实验)

liyuan66 2013-05-21

大家应该都看过周星驰的《国产007》,里面有一只坑爹的太阳能手电筒,有光才能亮,没光绝对不亮!我们今天只做的达文西之灯的创意就是源自于此,只做一个有光才能亮的LED灯(好吧,我承认这玩意坑爹)。

实验材料

ocrobot mango(Arduino兼容版)   一块  
面包板   一块  
面包板专用跳线   一盒  
光敏三极管    一枚
10K欧姆电阻   一枚  
任意颜色LED   一枚  
220欧姆电阻   一枚  
数据线   一根  

              

然后我们来搭建实验电路

2012-7-8 13-04-51.png

此次实验的电路略显复杂,我们简单讲解一下,LED部分大家都比较清楚,从13号引脚到地线,中间串接220欧姆的保护电 阻,然后就是光敏三极管的部分,光明三极管有凸起的一边为发射极,此端接A0检测口,同时并联一个10K欧姆的分压电阻到地线以扩展光敏三极管的灵敏度 (此处电阻越小灵敏度越高)。另一极使用5V输入。

我们来搭建实际电路


IMGP9533_调整大小.jpg

搭建好电路我们就开始下载程序了

int a =300;     //此处需是环境基础亮度变量,请查看自己的亮度数值,
                //填写到此处数值要略大于所测得的数据但小于灯光下的数据
void setup ()
{
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}
void loop()
{
  int n = analogRead(A0);            //读取模拟口A0数值
  Serial.println(n);
  if (n>= a )                   //对光线强度进行判断,如果比我们的预设值大 就点亮LED否则就关闭
  {
    digitalWrite(13,HIGH);
  }
  else
  {
    digitalWrite(13,LOW);
  }
}

 

 


本次实验的源代码有个变量需要进行校准,大家应该还记得上次实验的串口管理器的数据输出,本次实验依旧要用到,大家下载好程序后,需要打开串口管理器看一 下目前的环境光的数值,然后打开电灯再记录一下数值(数据刷新很快,不需要精确值,只要比他大一些就可以,但是别大于开灯后的数值)。 然后根据您的环境光的数值,来修改我们的基准值。修改后再次下载好程序,就可以体验到传说中有光才能亮的达文西之灯。。

再次提醒本次实验的参数需要根据您当时的环境光线进行调整的,切记切记~~~!!

 

 

 

转自:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1340

Global site tag (gtag.js) - Google Analytics