当前位置:首页Arduino > 正文

arduino人体感应灯

作者:野牛程序员:2023-07-06 07:06:46Arduino阅读 2899

Arduino人体感应灯是一种基于Arduino开发板的项目,利用人体红外传感器(PIR传感器)检测到人体活动并控制灯光的项目。

下面是一个简单的Arduino人体感应灯的示例代码:

// 引入必要的库
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_TSL2561_U.h>

// 定义人体红外传感器连接的引脚
const int pirPin = 2;
// 定义LED灯连接的引脚
const int ledPin = 13;

// 创建一个Adafruit_TSL2561_U对象
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);

void setup()
{
  // 初始化串口通信
  Serial.begin(9600);

  // 初始化人体红外传感器引脚
  pinMode(pirPin, INPUT);
  // 初始化LED灯引脚
  pinMode(ledPin, OUTPUT);

  // 初始化TSL2561传感器
  if (!tsl.begin())
  {
    Serial.println("未找到TSL2561传感器,请检查连接!");
    while (1);
  }
  // 设置传感器增益
  tsl.setGain(TSL2561_GAIN_16X);
  // 设置传感器整合时间
  tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
}

void loop()
{
  // 读取人体红外传感器状态
  int pirStatus = digitalRead(pirPin);

  // 检测到人体活动时,打开LED灯
  if (pirStatus == HIGH)
  {
    digitalWrite(ledPin, HIGH);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }

  // 读取环境光强度
  sensors_event_t event;
  tsl.getEvent(&event);

  // 输出环境光强度到串口监视器
  if (event.light)
  {
    Serial.print("环境光强度:");
    Serial.print(event.light);
    Serial.println(" lux");
  }
  delay(500);  // 延迟一段时间
}

在这个示例代码中,我们首先引入了所需的库,包括Wire库、Adafruit_Sensor库和Adafruit_TSL2561_U库(用于环境光强度传感器)。

然后,我们定义了人体红外传感器连接的引脚和LED灯连接的引脚。

setup()函数中,我们初始化了串口通信、人体红外传感器引脚和LED灯引脚。然后,我们初始化TSL2561传感器,并设置传感器的增益和整合时间。

loop()函数中,我们首先读取人体红外传感器的状态。如果检测到人体活动,我们打开LED灯,否则关闭LED灯。

接下来,我们读取环境光强度,并将其输出到串口监视器。

最后,我们在loop()函数中添加了延迟,以便在每次循环之间有一段时间的间隔。

请注意,这只是一个简单的示例代码,实际的项目可能需要根据具体需求进行更多的调整和扩展。此外,你可能需要根据你所使用的具体红外传感器和LED灯的规格和引脚连接进行适当的修改。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击