//initialize servo library and servos #include Servo topcenter; Servo topright; Servo topleft; Servo center; Servo bottomright; Servo bottomleft; Servo bottomcenter; //initialize variables int const buttonstart = 8; int const buttonreset = 12; int currentstate = 0; //initialize buzzer variables //initialize variables const int buzzer = 10; int incrementfreq = 100; int delayval = 10; int interval = 100; int deccutoff = 1500; int inccutoff = 1500; int startinc = 500; int startdec = 2200; int beeptone = 3500; int sirenrep = 0; //initialize servo parameters int const traise = 1800; int const tlower = 1000; int const trraise = 1700; int const trlower = 1000; int const tlraise = 1400; int const tllower = 1000; int const craise = 1900; int const clower = 1500; int const brraise = 1900; int const brlower = 1000; int const blraise = 1700; int const bllower = 1000; int const braise = 2000; int const blower = 1200; void setup() { // put your setup code here, to run once: //setup button setup pinMode (buttonstart, INPUT_PULLUP); pinMode (buttonreset, INPUT_PULLUP); pinMode (buzzer, OUTPUT); //Attach servos topcenter.attach(9); topright.attach(3); topleft.attach(2); center.attach(4); bottomright.attach(5); bottomleft.attach(6); bottomcenter.attach(7); //Return to home topcenter.writeMicroseconds(tlower); topright.writeMicroseconds(trlower); topleft.writeMicroseconds(tllower); delay(20); bottomleft.writeMicroseconds(bllower); bottomright.writeMicroseconds(brlower); bottomcenter.writeMicroseconds(blower); delay(100); center.writeMicroseconds(clower); delay(100); currentstate==3; } void loop() { // put your main code here, to run repeatedly: if (digitalRead(buttonreset)==0){ //Go to 9 center.writeMicroseconds(craise); delay(100); topcenter.writeMicroseconds(traise); bottomcenter.writeMicroseconds(braise); delay(50); topright.writeMicroseconds(trraise); topleft.writeMicroseconds(tlraise); bottomright.writeMicroseconds(brraise); delay(50); currentstate=2; } if (currentstate==2 && digitalRead(buttonstart)==0){ // Go to 8 currentstate=0; delay(800) ; bottomleft.writeMicroseconds(blraise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 7 delay(950); topleft.writeMicroseconds(tllower); bottomleft.writeMicroseconds(bllower); bottomcenter.writeMicroseconds(blower); delay(100); center.writeMicroseconds(clower); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 6 delay(850); topright.writeMicroseconds(trlower); delay(50); center.writeMicroseconds(craise); delay(50); topleft.writeMicroseconds(tlraise); bottomleft.writeMicroseconds(blraise); bottomcenter.writeMicroseconds(braise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 5 delay(850); bottomleft.writeMicroseconds(bllower); delay(100); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 4 delay(850); topcenter.writeMicroseconds(tlower); bottomcenter.writeMicroseconds(blower); delay(100); topright.writeMicroseconds(trraise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 3 delay(850); topleft.writeMicroseconds(tllower); delay(100); bottomcenter.writeMicroseconds(braise); topcenter.writeMicroseconds(traise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 2 delay(850); bottomright.writeMicroseconds(brlower); delay(100); bottomleft.writeMicroseconds(blraise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 1 delay(850); topcenter.writeMicroseconds(tlower); bottomleft.writeMicroseconds(bllower); bottomcenter.writeMicroseconds(blower); delay(50); center.writeMicroseconds(clower); delay(50); bottomright.writeMicroseconds(brraise); tone(buzzer, beeptone); delay(50); noTone(buzzer); //Go to 0 delay(850); topcenter.writeMicroseconds(traise); topleft.writeMicroseconds(tlraise); bottomleft.writeMicroseconds(blraise); bottomcenter.writeMicroseconds(braise); delay(100); currentstate=1; tone(buzzer, beeptone); delay(50); noTone(buzzer); } if (currentstate==1 && sirenrep<30){ //ring buzzer int i = startinc; // starting pitch of increasing loop while(i < inccutoff) { i=i+incrementfreq;// increment tone(buzzer, i); // Emit the noise delay(delayval); } delay(interval); // A short break in between each whoop int k = startdec; // starting pitch of decreasing loop while(k > deccutoff) { k=k-incrementfreq; tone(buzzer, k); // Emit the noise delay(delayval); noTone(buzzer); sirenrep++; } //Return to home topcenter.writeMicroseconds(tlower); topright.writeMicroseconds(trlower); topleft.writeMicroseconds(tllower); delay(20); bottomleft.writeMicroseconds(bllower); bottomright.writeMicroseconds(brlower); bottomcenter.writeMicroseconds(blower); delay(100); center.writeMicroseconds(clower); delay(100); currentstate==3; } }