Advertisement
iArcsinE

Untitled

Nov 26th, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. //////////////
  2. // WE TRIED //
  3. //////////////
  4.  
  5. int timeDelay = 100;
  6. int currentTime;
  7. int lastState = LOW;
  8. int lastMotion = LOW;
  9. unsigned long time;
  10. bool armMode; // safe = 0, armed = 1
  11. bool isExecuted = false;
  12. bool isAlarm = false;
  13.  
  14. // component vars
  15. int buzzer = 6;
  16.  
  17. void setup()
  18. {
  19.   pinMode(13, OUTPUT);  // red led
  20.   pinMode(12, OUTPUT);  // green led
  21.   pinMode(7, INPUT_PULLUP); // button
  22.   pinMode(buzzer, OUTPUT);  // if the buzzer has 3 legs, connect signal to 6 instead
  23.   pinMode(2, INPUT);  // motion sensor
  24.   Serial.begin(9600);
  25. }
  26.  
  27. void loop()
  28. {
  29.   time = millis();
  30.   // switch modes from safe to armed
  31.   int buttonState = digitalRead(7);
  32.   int motionState;
  33.   if (lastState == LOW && buttonState == HIGH) {
  34.     armMode = !armMode;
  35.   }
  36.  
  37.   lastState = buttonState;
  38.  
  39.   // check mode
  40.   if (armMode == false) {
  41.     digitalWrite(13, LOW);
  42.     digitalWrite(12, HIGH);
  43.     noTone(buzzer);
  44.     isExecuted = false;
  45.     isAlarm = false;
  46.   } else {
  47.     digitalWrite(12, LOW);
  48.    
  49.     // arming beep and light loop
  50.     if (isExecuted == false) {
  51.       isExecuted = true;
  52.       currentTime = time;
  53.     }
  54.    
  55.   // limit loop to 2 seconds
  56.     int timeDiff = time - currentTime;
  57.     if (timeDiff >= 2000 && timeDiff <= 2100) {
  58.         digitalWrite(13, LOW);
  59.        
  60.     } else if (timeDiff < 2000) {
  61.       digitalWrite(13, HIGH);
  62.         tone(buzzer, 220);
  63.       delay(timeDelay);
  64.       digitalWrite(13, LOW);
  65.         noTone(buzzer);
  66.       delay(timeDelay);
  67.     }
  68.    
  69.     motionState = digitalRead(2);
  70.     // enable alarm
  71.     if (lastMotion == LOW && motionState == HIGH) { isAlarm = true; }
  72.     else if (lastMotion == HIGH && motionState == LOW) { noTone(buzzer); }
  73.     if (isAlarm == true) {
  74.       tone(buzzer, 1760);
  75.         delay(500);
  76.         tone(buzzer, 1397);
  77.         delay(500);
  78.     } else { noTone(buzzer); }  
  79.   }
  80.  
  81.   lastState = buttonState;
  82.   lastMotion = motionState;
  83.   delay(10);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement