当前位置:首页  <  应用教程  <  【应用教程】简易人体感应小夜灯...
【应用教程】简易人体感应小夜灯
编辑:neil 2017-10-19 浏览次数:1062

      光线传感器是使用光敏电阻作为感应元件,环境光线的改变,会引起光敏电阻阻值的变化,从而产生信号引脚电压的变化,Arduino 控制器模拟接口读取到电压变化,会控制 LED 的亮度变化,来实现在不同环境光线下,产生不同的亮度。装置中使用到红外热释电传感器,是用来检测是否有人经过,所以这个装置就可以实现在夜晚,有人经过的时候小夜灯会亮起。


使用硬件

1、光线传感器 * 1 个

2、Arduino UNO 控制器 * 1 个

3、LED 发光模块 * 1 个

4、红外热释电传感器 * 1 个

5、mini 面包板

6、9V 1A 电源适配器

7、USB 数据线 * 1 条

8、3P 传感器连接线 * 2 条

9、实验跳线 * 若干

软件环境:Arduino IDE 1.8.1 / 奥松编程吧

编程语言:Arduino C 语言 / 图形化编程语言


接线说明:

* LED 发光模块 S 连接 Arduino UNO 控制器 D3 引脚

* 光线传感器 S 连接 Arduino UNO 控制器 A0 引脚

* 红外热释电传感器 S 连接 Arduino UNO 控制器 D2 引脚

* 三个传感器的 + 连接在一起,并连接到 Arduino UNO 控制器的 5V 引脚 

三个传感器的 - 连接在一起,并连接到 Arduino UNO 控制器的 GND 引脚

* 9V 1A 电源适配器连接到 Arduino UNO 控制器的 DC 接口,进行供电

 

硬件接线图:

实物接线图:


Arduino C 语言代码例子程序:

#define LED 3
#define PIR 2
void setup() {
  //Serial.begin(9600);
  pinMode(LED,OUTPUT);
  pinMode(PIR,INPUT);
}

void loop() {
int val = analogRead(A0);
int val1 = digitalRead(PIR);
//Serial.println(val);
if(val1 == 1 && val > 700)
{
  int value = map(val,700,1024,50,255);
  analogWrite(LED,value);
  delay(1000);
  }
  else
  {
    digitalWrite(LED,LOW);
    }
}

奥松编程吧图形化例子程序:

    本实验的效果就是在夜晚,光线传感器的值检测大于 700 时,如果有人经过,LED 模块就会亮起,亮起延时 1 秒,然后再重新检测,LED 发光模块的亮度与环境光线有关,环境光线越强,LED 的亮度就会越低。

    这里给大家提供的只是一个建议的接线和代码方案,我们当然可以多使用几个 LED 制作亮度更高的小夜灯,或者使用现在广泛应用的 3D 打印技术为你的小夜灯打印一个外壳,让它变得更漂亮,你还有什么更好的创意呢?动手试一试吧!


创造源创客,创意自奥松

-------------------------------------------------------------------------------------------------------------------------------

秀创客教学视频:supermaker.tv

微信号:奥松机器人

京东:alsrobot.jd.com

淘宝:robotbase.taobao.com

天猫robotbase.tmall.com

QQ群:16816196(讨论,解惑)

新浪微博:@奥松机器人基地