Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////
- // WE TRIED //
- //////////////
- int timeDelay = 100;
- int currentTime;
- int lastState = LOW;
- int lastMotion = LOW;
- unsigned long time;
- bool armMode; // safe = 0, armed = 1
- bool isExecuted = false;
- bool isAlarm = false;
- // 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
- int buttonState = digitalRead(7);
- int motionState;
- if (lastState == LOW && buttonState == HIGH) {
- armMode = !armMode;
- }
- lastState = buttonState;
- // check mode
- 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(timeDelay);
- digitalWrite(13, LOW);
- noTone(buzzer);
- delay(timeDelay);
- }
- motionState = digitalRead(2);
- // enable alarm
- if (lastMotion == LOW && motionState == HIGH) { isAlarm = true; }
- else if (lastMotion == HIGH && motionState == LOW) { noTone(buzzer); }
- if (isAlarm == true) {
- tone(buzzer, 1760);
- delay(500);
- tone(buzzer, 1397);
- delay(500);
- } else { noTone(buzzer); }
- }
- lastState = buttonState;
- lastMotion = motionState;
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement