用arduino做一个光控灯

      实验器件:

带有arduino ide的电脑一台;

      Arduino板一个;

      光敏开关一个;

      导线若干;

      led灯一个;

      电阻2个;

 

   光敏传感器的工作原理:

光传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。

光敏传感器内装有一个高精度的光电管,光电管内有一块由”针式二管”组成的小平板,当向光电管两端施加一个反向的固定压时,任何光了对它的冲击都将导致其释放出电子,结果是,当光照强度越高,光电管的电流也就越大,电流通过一个电阻时,电阻两端的电压被转换成可被采集器的数模转换器接受的0-5V电压,然后采集以适当的形式把结果保存下来。简单的说,光敏传感器就是利用光敏电阻受光线强度影响而阻值发生变化的原理向机器人主机发送光线强度的模拟信号。 光敏电阻器又叫光感电阻,其工作原理是基于内光电效应。 光敏电阻是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。

实验代码

 

int photoresistancePin = A0;  //定义变量photoresistance=A0,为电压读取端口。

int ledPin = 13;   //设置led数字IO脚

int val = 0;       //定义变量i

void setup() { 

  pinMode(ledPin, OUTPUT);  //设置ledPin脚模式,为输出

void loop() { 

  val = analogRead(photoresistancePin);    //从传感器读取值

  if(val<=512)

{      

    /*512=2.5V,想让传感器敏感一些的时候,把数值调高,

     想让传感器迟钝的时候把数值调低。*/

    digitalWrite(ledPin, LOW);//当光照强度过强时led灭。

  }

  else

{

    digitalWrite(ledPin, HIGH); //当光照强度过低时led亮。

  }

}

实验线路图及结果:

用arduino做一个光控灯_第1张图片用arduino做一个光控灯_第2张图片

 

 

你可能感兴趣的:(嵌入式学习,嵌入式学习实践)