[开源硬件] Arduino入门教程--第十二课--Arduino光照指示器

liyuan66 2013-05-23

本课继续光敏实验,上面我们制作了达文西之灯,这次稍微改造下,将他做成光照度指示器,光敏三极管感受到的光越强,就点亮越多的led,达到指示的目的.

实验材料

ocrobot mango(Arduino兼容板)   1块  
面包板    1块  
面包板专用跳线盒   1盒  
10K欧姆电阻   1枚  
220欧姆电阻   1枚  
四色LED 共4枚  
光敏三极管   1枚  
数据线   1根  


先来看我们设计的电路图,原来是一样的,有一点特别的地方,就是我们四枚LED共用了一个220欧姆电阻, 共用电阻的原则是这样的,总功率不能超过电阻最大设计功率。我们的实验有些特别的地方,就是我们在单位时间内只会点亮1枚LED,所以不存在功率超了的问题。

电路图.png

然后看我的实物照片

IMGP9623_调整大小.JPG

仔细研究搭建电路,希望大家比我搭的好看。。。。。

然后就是程序代码了

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都亮了

转自:http://www.geek-workshop.com/thread-1389-1-1.html
Global site tag (gtag.js) - Google Analytics