int leftSwitchPin=2; int rightSwitchPin=12; int leftLEDPin=3; int ghostLEDPin=5; int rightLEDPin=10; int leftVal = 0; // left variable for reading the pin status int leftCounter = 0; int leftCurrentState = 0; int leftPreviousState = 0; int rightVal = 0; // right variable for reading the pin status int rightCounter = 0; int rightCurrentState = 0; int rightPreviousState = 0; void setup() { pinMode(leftSwitchPin,INPUT); pinMode(rightSwitchPin,INPUT); pinMode(leftLEDPin, OUTPUT); pinMode(ghostLEDPin, OUTPUT); pinMode(rightLEDPin, OUTPUT); beginSerial(9600); } void loop(){ //left side start leftVal = digitalRead(leftSwitchPin); // read input value if (leftVal == HIGH) { // check if the input is HIGH (button released) leftCurrentState = 1; } else { leftCurrentState = 0; } if(leftCurrentState != leftPreviousState){ if(leftCurrentState == 1){ leftCounter = leftCounter + 1; Serial.print("leftCounter = "); Serial.println(leftCounter); } } leftPreviousState = leftCurrentState; switch(leftCounter){ case 0: // turn LED off digitalWrite(leftLEDPin,LOW); digitalWrite(ghostLEDPin,LOW); digitalWrite(rightLEDPin,LOW); break; case 1: // turn LED on digitalWrite(leftLEDPin,HIGH); digitalWrite(ghostLEDPin,HIGH); digitalWrite(rightLEDPin,LOW); break; case 2: leftCounter = 0; } // right side start rightVal = digitalRead(rightSwitchPin); // read input value if (rightVal == HIGH) { // check if the input is HIGH (button released) rightCurrentState = 1; } else { rightCurrentState = 0; } if(rightCurrentState != rightPreviousState){ if(rightCurrentState == 1){ rightCounter = rightCounter + 1; Serial.print("rightCounter = "); Serial.println(rightCounter); } } rightPreviousState = rightCurrentState; switch(rightCounter){ case 0: // turn LED off digitalWrite(leftLEDPin,LOW); digitalWrite(ghostLEDPin,LOW); digitalWrite(rightLEDPin,LOW); break; case 1: // turn LED on digitalWrite(leftLEDPin,LOW); digitalWrite(ghostLEDPin,HIGH); digitalWrite(rightLEDPin,HIGH); break; case 2: rightCounter = 0; } if (leftCounter == 1 && rightCounter == 1){ digitalWrite(leftLEDPin,HIGH); digitalWrite(ghostLEDPin,HIGH); digitalWrite(rightLEDPin,HIGH); delay(30); digitalWrite(leftLEDPin,LO`W); digitalWrite(ghostLEDPin,LOW); digitalWrite(rightLEDPin,LOW); delay(30); } if((leftCounter+rightCounter)>2) { leftCounter=0; rightCounter=0; } }