接线图:
引脚连接:
1. 将 PIR 信号引脚连接到 arduino 数字 引脚 13。
2. 将 PIR V+ 引脚连接 到 arduino 5v 引脚。
3. 将 PIR GND 引脚连接到 arduino GND 引脚。
4. 将arduino数字 引脚12连接 到220欧姆电阻,并将该电阻连接到 LED V+ 引脚。
5. 将 LED GND 引脚连接到 arduino GND 引脚。
6. 将蜂鸣器 V+ 引脚连接 到 arduino 数字 引脚 11
7. 将蜂鸣器 GND 引脚连接到 arduino GND 引脚。
程序代码:
//校准传感器的时间
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime; int pirPin = 13; //PIR传感器输入13引脚
int ledPin = 12; //led灯珠连接到12引脚
int Buzzer = 11; //蜂鸣器连接到11引脚。/
//SETUP
void setup(){Serial.begin(9600);pinMode(pirPin, INPUT);pinMode(ledPin, OUTPUT);pinMode(Buzzer, OUTPUT);digitalWrite(pirPin, LOW);//给传感器一些时间校准Serial.print("校准传感器 ");for(int i = 0; i < calibrationTime; i++){Serial.print(".");delay(1000);}Serial.println(" done");Serial.println("SENSOR ACTIVE");delay(50);}//LOOP
void loop(){if(digitalRead(pirPin) == HIGH){//如果PIR检测到有人移动时,将给13引脚返回高电平。digitalWrite(ledPin, HIGH); //如果有人移动,则设置led为高电平,点亮led,蜂鸣器警报500毫秒。tone(Buzzer,500);if(lockLow){ lockLow = false; Serial.println("---");Serial.print("检测到有人在运动的时间为: ");Serial.print(millis()/1000);Serial.println(" 秒时"); delay(50);} takeLowTime = true;}if(digitalRead(pirPin) == LOW){ //PIR锁定结束后返回低电平,PIR再次进入到检测状态。 digitalWrite(ledPin, LOW); //关闭led显示。noTone(Buzzer);//关闭蜂鸣器。if(takeLowTime){lowIn = millis(); //记录返回低电平时,进入系统的时间。 takeLowTime = false; }if(!lockLow && millis() - lowIn > pause){ lockLow = true; Serial.print("移动停止在: "); Serial.print((millis() - pause)/1000);Serial.println(" sec");delay(50);}}}