/*Midland wool lights tower building C. */
//tower building c
//random lights
#define towerfirstfloor 2
#define towersecondfloor 3
#define towerthirdfloor 4
#define towerfourthfloor 5
#define towerfifthfloor 6
// 7 empty
//first on and last off
#define officewhite 8 //white
// constant lights
#define officeyellow 9 //yellow
#define towerclock 10
//security
#define officesecurity 11
//toggle day and night
#define Switch A5
//********************************************
void setup() {
//random lights
//building A
//building C
pinMode(towerfirstfloor, OUTPUT);
pinMode(towersecondfloor, OUTPUT);
pinMode(towerthirdfloor, OUTPUT);
pinMode(towerfourthfloor, OUTPUT);
pinMode(towerfifthfloor, OUTPUT);
pinMode(towerclock, OUTPUT);
digitalWrite(towerclock, HIGH);
pinMode(officewhite, OUTPUT);
pinMode(officeyellow, OUTPUT);
digitalWrite(officeyellow, HIGH);
pinMode(Switch, INPUT);
randomSeed(analogRead(A7));
//security
pinMode(officesecurity, OUTPUT);
Serial.begin(115200);
}
//Routine
void loop() {
static int prev_val = LOW;
int val = digitalRead(Switch);
// only react to changes in the switch position
if (val != prev_val) {
if (val == HIGH) {
turnonLights();
} else {
turnoffLights();
}
prev_val = val;
}
delay(50);
}
//**************************************************
void turnonLights()
{
digitalWrite(officewhite, HIGH);
delay(3000);
digitalWrite(officesecurity, LOW);
delay(random(500,1000));
int lights_lit = 0;
while (lights_lit < 5) {
int Lights;
do { // find a random light that is not yet lit
Lights = random(2, 7);
} while (digitalRead(Lights) == HIGH);
int dlay = random(500, 1000);
digitalWrite(Lights, HIGH);
lights_lit += 1;
delay(dlay);
}
}
//**************************************************
void turnoffLights() {
digitalWrite(officesecurity, HIGH);
delay(random(700,2000));
int lights_lit = 5;
while (lights_lit > 0) {
int Lights;
do { // find a random light that is still lit
Lights = random(2, 7);
} while (digitalRead(Lights) == LOW);
int dlay = random(700, 2000);
digitalWrite(Lights, LOW);
lights_lit -= 1;
delay(dlay);
}
delay(3000);
digitalWrite(officewhite, LOW);
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led8:A
led8:C
led9:A
led9:C
led10:A
led10:C
led1:A
led1:C
sw1:1
sw1:2
sw1:3