Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////////
- // NOTE: BLINKING RED MEANS IN ARMING MODE //
- /////////////////////////////////////////////
- int armTimeDelay = 100; // arming sound delay
- int alarmTimeDelay = 500; // alarm sound delay
- int buttonState = 0; // declare state of button
- int currentTime; // declare current tick for arming sound effect
- int lastState = LOW; // toggle state
- unsigned long time; // declare time var (tick)
- bool armMode; // safe = 0, armed = 1
- bool isExecuted = false; // init current time once for the time diff
- bool isAlarm = false; // alarm switch
- // component vars
- int buzzer = 6;
- void setup()
- {
- pinMode(13, OUTPUT); // red led
- pinMode(12, OUTPUT); // green led
- pinMode(7, INPUT_PULLUP); // button
- pinMode(buzzer, OUTPUT); // if the buzzer has 3 legs, connect signal to 6 instead
- pinMode(2, INPUT); // motion sensor
- Serial.begin(9600);
- }
- void loop()
- {
- time = millis();
- // switch modes from safe to armed [cannot be repeated for now, idk how to fix it]
- buttonState = digitalRead(7);
- if (lastState == LOW && buttonState == HIGH) {
- Serial.println(armMode);
- armMode = !armMode;
- }
- lastState = buttonState;
- // check mode and reset all state
- if (armMode == false) {
- digitalWrite(13, LOW);
- digitalWrite(12, HIGH);
- noTone(buzzer);
- isExecuted = false;
- isAlarm = false;
- } else {
- digitalWrite(12, LOW);
- // arming beep and light loop
- if (isExecuted == false) {
- isExecuted = true;
- currentTime = time;
- }
- // limit loop to 2 seconds
- int timeDiff = time - currentTime;
- if (timeDiff >= 2000 && timeDiff <= 2100) {
- digitalWrite(13, LOW);
- } else if (timeDiff < 2000) {
- digitalWrite(13, HIGH);
- tone(buzzer, 220);
- delay(armTimeDelay);
- digitalWrite(13, LOW);
- noTone(buzzer);
- delay(armTimeDelay);
- }
- // enable alarm
- if (digitalRead(2) == HIGH) { isAlarm = true; }
- else { noTone(buzzer); }
- if (isAlarm == true) {
- tone(buzzer, 1760);
- delay(alarmTimeDelay);
- tone(buzzer, 1397);
- delay(alarmTimeDelay);
- } else { noTone(buzzer); }
- }
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement