/* * "POK(h)ER FACE" by Tanya Ukositkul * created March 2010 * Turns on and off light emitting diodes(LED) connected to digital * pin 8, when pressing a pushbutton attached to pin 2 or 6. * Each time a button is pressed, the two LEDs blink. * 1st press = 1 blink, 2nd = 2 blinks, 3rd = 3 blinks, and so on. * Each time the LEDs blink faster. --------------------- * The circuit: * 2 LEDs attached from pin 8 to ground * pushbuttons attached to pin 2 and 6 from 10K potentiometer * 10K potentiometer attached to 5V+ and ground --------------------- * With original code "Button" in exmaples, * created 2005, by DojoDave * modified 17 Jun 2009, by Tom Igoe * http://www.arduino.cc/en/Tutorial/Button --------------------- */ // constants won't change. They're used here to // set pin numbers: const int buttonPin = 2; // the number of the pushbutton pin const int buttonPin2 = 6; // the number of the second pushbutton pin const int ledPin = 8; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the 1st pushbutton status int buttonState2 = 0; // variable for reading the 2nd pushbutton status int buttonCount = 0; // variable for counting how many times the buttons were pressed int old_buttonCount = 0; // variable for storing how many times the buttons were pressed void setup() { // initializes the LEDs pin as an output: pinMode(ledPin, OUTPUT); // initializes the pushbutton pins as inputs: pinMode(buttonPin, INPUT); pinMode(buttonPin2, INPUT); } void loop(){ // reads the state of the pushbuttons value: buttonState = digitalRead(buttonPin); buttonState2 = digitalRead(buttonPin2); // checks if one of the pushbuttons is pressed. // if it is, the buttonState or buttonState2 is HIGH. // if one of them is HIGH, add one to old_button // to get the current count of buttonCount: if (buttonState == HIGH || buttonState2 == HIGH) { buttonCount = old_buttonCount + 1; } // checks how many time the buttons were pressed, // and performs according to the number of times counted. if (buttonCount == 1) { digitalWrite(ledPin, HIGH); // turns LEDs on delay(800); // keeps them on digitalWrite(ledPin,LOW); // turns LEDs off buttonCount = 0; // resets buttonCount old_buttonCount = 1; // stores how many times a button // was pressed } else if (buttonCount == 2) { digitalWrite(ledPin, HIGH); delay(800); digitalWrite(ledPin,LOW); delay(500); digitalWrite(ledPin, HIGH); delay(800); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 2; } else if (buttonCount == 3) { digitalWrite(ledPin, HIGH); delay(700); digitalWrite(ledPin,LOW); delay(400); digitalWrite(ledPin, HIGH); delay(700); digitalWrite(ledPin,LOW); delay(400); digitalWrite(ledPin, HIGH); delay(700); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 3; } else if (buttonCount == 4) { digitalWrite(ledPin, HIGH); delay(600); digitalWrite(ledPin,LOW); delay(400); digitalWrite(ledPin, HIGH); delay(600); digitalWrite(ledPin,LOW); delay(400); digitalWrite(ledPin, HIGH); delay(600); digitalWrite(ledPin,LOW); delay(400); digitalWrite(ledPin, HIGH); delay(600); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 4; } else if (buttonCount == 5) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 5; } else if (buttonCount == 6) { digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); delay(300); digitalWrite(ledPin, HIGH); delay(400); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 6; } else if (buttonCount == 7) { digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin,LOW); buttonCount = 0; old_buttonCount = 7; } else if (buttonCount == 8) { digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin,LOW); delay(200); digitalWrite(ledPin, HIGH); delay(15000); buttonCount = 0; old_buttonCount = 8; } else if (buttonCount == 9) { buttonCount = 0; // resets buttonCount old_buttonCount = 0; // resets old_buttonCount } else { digitalWrite(ledPin, LOW); // turns LEDs off everytime // buttonCount is reset to zero } }