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);
- }
- }
- }