arduino人体红外和光敏控制LED灯
作者:野牛程序员:2023-07-06 07:09:15Arduino阅读 3113
当你使用Arduino控制LED灯时,可以结合人体红外传感器和光敏传感器来实现根据环境条件控制LED灯的亮灭。
首先,你需要连接硬件组件。将人体红外传感器和光敏传感器连接到Arduino板上。接线图和电路示例可以在相关的传感器文档中找到。
接下来,你可以使用Arduino编程语言来编写代码。以下是一个基本的示例,它使用人体红外传感器和光敏传感器来控制LED灯:
// 引入所需的库
#include <Adafruit_Sensor.h>
#include <Adafruit_TSL2561_U.h>
// 定义连接的引脚
const int ledPin = 13; // LED连接到13号引脚
const int pirPin = 2; // 人体红外传感器连接到2号引脚
// 创建光敏传感器实例
Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345);
void setup()
{
// 初始化串口通信
Serial.begin(9600);
// 设置LED引脚为输出模式
pinMode(ledPin, OUTPUT);
// 设置人体红外传感器引脚为输入模式
pinMode(pirPin, INPUT);
// 初始化光敏传感器
tsl.begin();
// 设置光敏传感器增益和时间
tsl.enableAutoRange(true);
tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS);
}
void loop()
{
// 读取人体红外传感器状态
int pirState = digitalRead(pirPin);
// 读取光敏传感器光强
sensors_event_t event;
tsl.getEvent(&event);
float illuminance = event.light;
// 如果检测到人体或者环境光强小于某个阈值,则点亮LED
if (pirState == HIGH || illuminance < 100)
{
digitalWrite(ledPin, HIGH); // 点亮LED
}
else
{
digitalWrite(ledPin, LOW); // 关闭LED
}
// 打印传感器数据
Serial.print("PIR: ");
Serial.println(pirState);
Serial.print("Illuminance: ");
Serial.println(illuminance);
// 等待一段时间
delay(1000);
}请注意,以上代码仅为示例,并假设你已正确连接传感器。你可能需要根据你实际使用的硬件进行适当的调整和修改。
此代码使用人体红外传感器检测是否有人体移动,或者使用光敏传感器检测环境光强。如果检测到人体或环境光强小于某个阈值(这里设置为100),则点亮LED灯;否则,关闭LED灯。在代码中,通过digitalWrite()函数将LED引脚设置为高电平或低电平来控制LED灯的亮灭。
请注意,光敏传感器可能需要额外的库和设置。在示例代码中,我们使用了Adafruit的TSL2561库来处理光敏传感器。
在使用该代码之前,确保你已正确安装和配置所需的库,并将硬件连接正确。你可以根据需要进行调整和修改代码,以适应你的具体情况。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:arduino人体红外感应模块
- 下一篇:arduino光敏控制led
