/* MYSTERY BOX v.1 Peter Rockwell initial code borrowed from: http://arduino.cc/en/Tutorial/Button */ //Numbers of active switch pins const int switchPin1 = 1; const int switchPin2 = 2; const int switchPin3 = 3; const int switchPin4 = 4; const int switchPin5 = 5; const int switchPin6 = 6; const int switchPin7 = 7; const int switchPin8 = 8; const int ledPin = 13; // RED const int blueLedPin = 12; //BLUE // variables will change: int pinState1 = 0; int pinState2 = 0; int pinState3 = 0; int pinState4 = 0; int pinState5 = 0; int pinState6 = 0; int pinState7 = 0; int pinState8 = 0; //pattern that is active int patternState = 0; void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); pinMode(blueLedPin, OUTPUT); // initialize active pins pinMode(switchPin1, INPUT); pinMode(switchPin2, INPUT); pinMode(switchPin3, INPUT); pinMode(switchPin4, INPUT); pinMode(switchPin5, INPUT); pinMode(switchPin6, INPUT); pinMode(switchPin7, INPUT); pinMode(switchPin8, INPUT); } void loop(){ // read the state of the switchPin values: pinState1 = digitalRead(switchPin1); pinState2 = digitalRead(switchPin2); pinState3 = digitalRead(switchPin3); pinState4 = digitalRead(switchPin4); pinState5 = digitalRead(switchPin5); pinState6 = digitalRead(switchPin6); pinState7 = digitalRead(switchPin7); pinState8 = digitalRead(switchPin8); if(patternState==0) { //Blue LED if (pinState4 == HIGH || pinState5 == HIGH) { digitalWrite(blueLedPin, HIGH); } else { digitalWrite(blueLedPin, LOW); } if (pinState1 == LOW && pinState2 == LOW && pinState3 == LOW && pinState4 == HIGH && pinState5 == HIGH && pinState6 == LOW && pinState7 == LOW && pinState8 == LOW) { // turn LED on: digitalWrite(ledPin, HIGH); delay(6000); patternState++; } else { // turn LED off: digitalWrite(ledPin, LOW); } } if(patternState==1) { //Blue LED if (pinState1 == HIGH || pinState2 == HIGH || pinState3 == HIGH || pinState7 == HIGH) { digitalWrite(blueLedPin, HIGH); } else { digitalWrite(blueLedPin, LOW); } if (pinState1 == HIGH && pinState2 == HIGH && pinState3 == HIGH && pinState4 == LOW && pinState5 == LOW && pinState6 == LOW && pinState7 == HIGH && pinState8 == LOW) { // turn LED on: digitalWrite(ledPin, HIGH); delay(6000); patternState++; } else { // turn LED off: digitalWrite(ledPin, LOW); } } else if(patternState ==2) { //Blue LED if (pinState1 == HIGH || pinState4 == HIGH || pinState5 == HIGH || pinState8 == HIGH) { digitalWrite(blueLedPin, HIGH); } else { digitalWrite(blueLedPin, LOW); } if (pinState1 == HIGH && pinState2 == LOW && pinState3 == LOW && pinState4 == HIGH && pinState5 == HIGH && pinState6 == LOW && pinState7 == LOW && pinState8 == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); delay(6000); patternState ++; } else { // turn LED off: digitalWrite(ledPin, LOW); } } else if(patternState ==3) { //Blue LED if (pinState1 == HIGH || pinState3 == HIGH || pinState6 == HIGH || pinState8 == HIGH) { digitalWrite(blueLedPin, HIGH); } else { digitalWrite(blueLedPin, LOW); } if (pinState1 == HIGH && pinState2 == LOW && pinState3 == HIGH && pinState4 == LOW && pinState5 == LOW && pinState6 == HIGH && pinState7 == LOW && pinState8 == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); delay(6000); patternState ++; } else { // turn LED off: digitalWrite(ledPin, LOW); } } else if(patternState ==4) { //Blue LED if (pinState2 == HIGH || pinState3 == HIGH || pinState4 == HIGH || pinState7 == HIGH || pinState8 == HIGH) { digitalWrite(blueLedPin, HIGH); } else { digitalWrite(blueLedPin, LOW); } if (pinState1 == LOW && pinState2 == HIGH && pinState3 == HIGH && pinState4 == HIGH && pinState5 == LOW && pinState6 == LOW && pinState7 == HIGH && pinState8 == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); delay(6000); patternState = 0; } else { // turn LED off: digitalWrite(ledPin, LOW); } } }