//copyright Bruce Lunde 2019 //Fire Extinguisher Simulator // Setup Variables int lightPin = 0; int latchPin = 11; int clockPin = 9; int dataPin = 12; int lightPin2 = 1; int lightPin3 = 2; int lightPin4 = 3; int lightPin5 =4; int ledsLit = 0; int leds = 0; int readingEnough1 = 0; int readingEnough2 = 0; int readingEnough3 = 0; int readingEnough4 = 0; int bias = 0; int ringerlight = 8; int readAll = 0; void setup() { pinMode(ringerlight, OUTPUT); // this variable sets up the output we'll use to turn on Light and Buzzer when a successful sweep is completed Serial.begin(9600); //open the serial port so we can see the outputs for debugging digitalWrite(ringerlight, LOW); //make sure buzzer and light are off to begin } void loop() { //start the main program readAll = 0; int reading5 = analogRead(lightPin5); // read the photocell that is looking for ambiant light around the simulator bias = reading5; //setup a bia that we can use to make sure there is a brighter light hitting the photocells above the ambiant light int reading = analogRead(lightPin); //read each photocell successively, if they are hit by the bright light, set the flag if (reading > (150+bias)) readingEnough1 = readingEnough1 + 1; delay(20); int reading2 = analogRead(lightPin2); if (reading2 > (150+bias)) readingEnough2 = readingEnough2 + 1; delay(20); int reading3 = analogRead(lightPin3); if (reading3 > (150+bias)) readingEnough3 = readingEnough3 + 1; delay(20); int reading4 = analogRead(lightPin4); if (reading4 > (150+bias)) readingEnough4 = readingEnough4 + 1; delay(20); Serial.print(reading); // output to the serial monitor so we can debug they system Serial.print(" : "); Serial.print(reading2); Serial.print(" : "); Serial.print(reading3); Serial.print(" : "); Serial.println(reading4); Serial.print("BIAS: "); Serial.println(reading5); Serial.print(readingEnough1); Serial.print(" : "); Serial.print(readingEnough2); Serial.print(" : "); Serial.print(readingEnough3); Serial.print(" : "); Serial.println(readingEnough4); readAll = readingEnough1 + readingEnough2 + readingEnough3 + readingEnough4; //count to see if every photocell has received a bright light Serial.print("readAll : "); Serial.println(readAll); delay(50); if (readAll >= 12) // if all photocells have bee hit, we can ring the buzzer and light up the tower LED { ringBuzzerLight(); } } void ringBuzzerLight() { int threshold = 5; Serial.println("You hit all Photocells"); for (int r = 0; r <=5; r++) { Serial.println(r); if (r == threshold){ digitalWrite(ringerlight,LOW); readingEnough1 = 0; readingEnough2 = 0; readingEnough3 = 0; readingEnough4 = 0; break; } digitalWrite(ringerlight, HIGH); delay(500); digitalWrite(ringerlight,LOW); delay(500); } }