int mainswitch = 2; int setbutton = 3; int startbutton = 4; int ledon = 5; int led1s = 6; int led2s = 7; int led5s = 8; int led10s = 9; int led20s = 10; int led30s = 11; int ledinfinits = 12; int buzzer = A3; int relay = 13; int selected = 0; int timer = 1000; void setup() { pinMode(relay, OUTPUT); digitalWrite(relay, LOW); pinMode(led1s, OUTPUT); pinMode(led2s, OUTPUT); pinMode(led5s, OUTPUT); pinMode(led10s, OUTPUT); pinMode(led20s, OUTPUT); pinMode(led30s, OUTPUT); pinMode(ledinfinits, OUTPUT); pinMode(startbutton, INPUT_PULLUP); pinMode(setbutton, INPUT_PULLUP); pinMode(mainswitch, INPUT_PULLUP); pinMode(ledon, OUTPUT); // pinMode(buzzer, OUTPUT); Serial.begin(9600); } void loop() { if(digitalRead(mainswitch) == LOW){ if (digitalRead(setbutton) == LOW){ while(digitalRead(setbutton) == LOW); if(selected < 6) selected++; else selected = 0; } switch(selected){ case 0: setledoff(); digitalWrite(led1s, HIGH); timer = 1000; break; case 1: setledoff(); digitalWrite(led2s, HIGH); timer = 2000; break; case 2: setledoff(); digitalWrite(led5s, HIGH); timer = 5000; break; case 3: setledoff(); digitalWrite(led10s, HIGH); timer = 10000; break; case 4: setledoff(); digitalWrite(led20s, HIGH); timer = 20000; break; case 5: setledoff(); digitalWrite(led30s, HIGH); timer = 30000; break; case 6: setledoff(); digitalWrite(ledinfinits, HIGH); timer = 600000; break; } if(digitalRead(startbutton) == LOW){ while(digitalRead(startbutton) == LOW); powerstart(); } } else{ setledoff(); } } void setledoff(){ for (int i = 6; i <13; i++){ digitalWrite(i, LOW); } } void powerstart(){ int buzzeron = false; for(int i = 0; i < 3000; i++){ digitalWrite(ledon, HIGH); delay(1); digitalWrite(ledon, LOW); if (i % 500 == 0){ if (buzzeron) noTone(buzzer); else tone(buzzer, 440); buzzeron = !buzzeron; } if(digitalRead(startbutton) == LOW or digitalRead(mainswitch) == HIGH){ while(digitalRead(startbutton) == LOW); break; } } noTone(buzzer); int current = 0; tone(buzzer, 1000); digitalWrite(relay, HIGH); bool signalon = true; while(current < timer){ current += 1; delay(1); if(digitalRead(startbutton) == LOW or digitalRead(mainswitch) == HIGH){ while(digitalRead(startbutton) == LOW); break; } if (current % 100 == 0) signalon = !signalon; if(signalon){ digitalWrite(ledon, HIGH); } else{ digitalWrite(ledon, LOW); } } digitalWrite(relay, LOW); digitalWrite(ledon, LOW); noTone(buzzer); }