基于arduino做一个人体感应灯需要的代码
时间: 2024-01-21 13:19:45 浏览: 22
以下是一个基于Arduino的人体感应灯的代码,需要连接一个人体感应模块和LED灯:
```
// 定义人体感应模块的信号引脚
int sensorPin = 2;
// 定义LED灯的信号引脚
int ledPin = 13;
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置人体感应模块的信号引脚为输入模式
pinMode(sensorPin, INPUT);
// 设置LED灯的信号引脚为输出模式
pinMode(ledPin, OUTPUT);
}
void loop() {
// 读取人体感应模块的信号
int sensorValue = digitalRead(sensorPin);
// 如果检测到人体移动
if (sensorValue == HIGH) {
// 打开LED灯
digitalWrite(ledPin, HIGH);
// 输出信息到串口
Serial.println("Motion detected!");
} else {
// 关闭LED灯
digitalWrite(ledPin, LOW);
}
}
```
当人体感应模块检测到有人移动时,会将信号引脚的电平从低变为高,通过代码中的if语句判断是否检测到人体移动并控制LED灯开启或关闭。同时,将信息输出到串口方便调试。
相关问题
基于Arduino的使用人体红外感应器测浴室人流量的代码
以下是一个基于 Arduino 的使用人体红外感应器测浴室人流量的简单代码示例:
```C++
// 声明引脚
int pirPin = 2; // 人体红外感应器接口
int ledPin = 13; // LED 灯接口
// 计数器变量
int count = 0;
void setup() {
pinMode(pirPin, INPUT); // 设置人体红外感应器引脚为输入模式
pinMode(ledPin, OUTPUT); // 设置 LED 灯引脚为输出模式
Serial.begin(9600); // 初始化串口通信,波特率为9600
}
void loop() {
int val = digitalRead(pirPin); // 读取人体红外感应器的值
if (val == HIGH) { // 如果有人经过
digitalWrite(ledPin, HIGH); // 点亮 LED 灯
delay(5000); // 延时 5 秒
count++; // 计数器加 1
Serial.print("当前人流量为:"); // 输出当前人流量
Serial.println(count);
} else {
digitalWrite(ledPin, LOW); // 熄灭 LED 灯
}
}
```
该代码使用人体红外感应器检测有没有人经过,并在检测到人经过时点亮 LED 灯,计数器加 1,并通过串口通信输出当前人流量。请注意,这只是一个示例代码,实际应用需要根据具体情况进行修改。
基于processing的使用人体红外感应器测浴室人流量的代码
以下是一个基于Processing的人体红外感应器测浴室人流量的简单代码示例:
```java
import processing.serial.*;
Serial arduino; // 串口通信对象
int sensorPin = 2; // 人体感应器连接的Arduino引脚
int peopleCount = 0; // 浴室内人数计数器
void setup() {
size(400, 400);
// 初始化串口通信,需要和Arduino连接的串口号一致
arduino = new Serial(this, "COM3", 9600);
// 设置人体感应器引脚为输入模式
arduino.write("pinMode " + sensorPin + " INPUT\r\n");
}
void draw() {
background(255);
// 读取人体感应器状态
arduino.write("digitalRead " + sensorPin + "\r\n");
arduino.bufferUntil('\n');
}
void serialEvent(Serial port) {
String sensorValue = port.readStringUntil('\n');
// 如果人体感应器检测到有人,人数计数器加1
if (sensorValue.trim().equals("1")) {
peopleCount++;
}
// 在屏幕上显示当前浴室内人数
textAlign(CENTER, CENTER);
textSize(32);
text("People Count: " + peopleCount, width/2, height/2);
}
```
这个代码示例使用了Processing的Serial库来和Arduino进行串口通信,通过读取人体感应器的状态来检测浴室内的人数,并在屏幕上显示当前人数。需要注意的是,这个示例代码并没有考虑到多个人同时进入或离开浴室的情况,可能不够精确。如果需要更精确的人流量测量,可以使用更高级的传感器或算法。