159 lines
2.9 KiB
C++
159 lines
2.9 KiB
C++
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);
|
|
}
|
|
|
|
|
|
|
|
|