int sensorPin = 7; // the sensor (a switch on the box) connects to pin 7 int flashPin = 13; // an LED that lights up when the alarm sounds int buzzerPin = 3; // the buzzer connects to pin 3 int Status = 0; // 0 = exit delay, 1 = armed, 2 = triggered int sensor = 0; // the current sensor reading void setup() { pinMode(sensorPin, INPUT); pinMode(flashPin, OUTPUT); pinMode(buzzerPin, OUTPUT); } void loop() { if (Status == 0) { // first time through the loop — arm the alarm delay(3000); // gives you 3 seconds to close the box tone(buzzerPin, 725, 40); // a short beep... delay(200); tone(buzzerPin, 725, 40); // ...and another, so it double-beeps when armed Status = 1; // armed — don't run this block again } if (Status == 1) { sensor = digitalRead(sensorPin); // read the switch } if (sensor == 0) { // the box has been opened Status = 2; } if (Status == 2) { // triggered — flash the LED and sound the alarm digitalWrite(flashPin, HIGH); tone(buzzerPin, 725, 1000); delay(1000); tone(buzzerPin, 330, 1000); delay(1000); } }