//reduced to 2 and added building lights
//3 arc welders for brass factory
/* was The McGrath case sketch modified for 3 welders */
int frontlight = 2; // front light
int backlight = 3; //back light
int nightlight = 5;
int welder1a = 7; // Welder 1
int welder1b = 8;
int welder2a = 9; // Welder 2
int welder2b = 10;
int togglePin = A2; // Toggle Pin
void setup() {
pinMode(frontlight, OUTPUT);
pinMode(backlight, OUTPUT);
pinMode(nightlight, OUTPUT);
pinMode(welder1a, OUTPUT);
pinMode(welder1b, OUTPUT);
pinMode(welder2a, OUTPUT);
pinMode(welder2b, OUTPUT);
digitalWrite(nightlight, HIGH);
pinMode(togglePin, INPUT); // Set toggle pin as input
randomSeed(analogRead(A7));
}
void loop() {
// Check if toggle pin is high
if (digitalRead(togglePin) == HIGH) {
digitalWrite(frontlight, HIGH);
delay(5000);
digitalWrite(backlight, HIGH);
delay(2000);
byte randNum = random(0, 3);
switch (randNum) {
case 0:
welder1();
welder2();
welder1();
break;
case 1:
welder2();
welder2();
break;
}
}
else {
// Code to execute if the condition is false
digitalWrite(backlight, LOW);
delay(5000);
digitalWrite(frontlight, LOW);
}
}
void welder1() {
int i, count;
count = random(10, 40); // selects a random number of flashes between 10 and 40 in each burst
for (i = 0; i < count; i++) // applies the number of times through the loop
{
digitalWrite(welder1a, HIGH); //LED on
delay (30);//wait 30mS
digitalWrite(welder1b, HIGH);
delay (30); //wait 30mS
delay(random(30)); //wait 1 to 30mS
digitalWrite(welder1a, LOW); // LED 0ff
digitalWrite(welder1b, LOW);
delay(random(200)); //wait up to 200ms between flashes
}
delay(random(2000, 5000)); // wait between 2 and 10 seconds between bursts
}
void welder2() {
int i, count;
count = random(10, 40); // selects a random number of flashes between 10 and 40 in each burst
for (i = 0; i < count; i++) // applies the number of times through the loop
{
digitalWrite(welder2a, HIGH); //LED on
delay (30);//wait 30mS
digitalWrite(welder2b, HIGH);
delay (30); //wait 30mS
delay(random(30)); //wait 1 to 30mS
digitalWrite(welder2a, LOW); // LED 0ff
digitalWrite(welder2b, LOW);
delay(random(200)); //wait up to 200ms between flashes
}
delay(random(1000, 7000)); // wait between 2 and 10 seconds between bursts
}