/* Debounce Each time the input pin goes from LOW to HIGH (e.g. because of a push-button press), the output pin is toggled from LOW to HIGH or HIGH to LOW. There's a minimum delay between toggles to debounce the circuit (i.e. to ignore noise). created 28 October 2009 by Riaan Cornelius */ // constants won't change. They're used here to // set pin numbers: const int buttonPin = 0; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin for testing const int BUTTON1 = 1; const int BUTTON2 = 2; const int BUTTON3 = 3; const int BUTTON4 = 4; const int BUTTON5 = 5; const int BUTTON1LOW = 970; const int BUTTON1HIGH = 1024; const int BUTTON2LOW = 850; const int BUTTON2HIGH = 950; const int BUTTON3LOW = 700; const int BUTTON3HIGH = 800; const int BUTTON4LOW = 400; const int BUTTON4HIGH = 650; const int BUTTON5LOW = 250; const int BUTTON5HIGH = 350; // Variables will change: int ledState = HIGH; // the current state of the output pin int buttonState; // the current reading from the input pin int lastButtonState = LOW; // the previous reading from the input pin // the following variables are long's because the time, measured in miliseconds, // will quickly become a bigger number than can be stored in an int. long lastDebounceTime = 0; // the last time the output pin was toggled long debounceDelay = 50; // the debounce time; increase if the output flickers void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { // read the state of the switch into a local variable: int reading = analogRead(buttonPin); int tmpButtonState = LOW; // the current reading from the input pin if(reading>BUTTON5LOW && readingBUTTON4LOW && readingBUTTON3LOW && readingBUTTON2LOW && readingBUTTON1LOW && reading debounceDelay) { // whatever the reading is at, it's been there for longer // than the debounce delay, so take it as the actual current state: buttonState = tmpButtonState; Serial.println(buttonState); } // save the reading. Next time through the loop, // it'll be the lastButtonState: lastButtonState = tmpButtonState; // set the LED using the state of the button for testing: switch(buttonState){ case BUTTON1: digitalWrite(ledPin, buttonState>0); break; case BUTTON2: digitalWrite(ledPin, buttonState>0); break; case BUTTON3: digitalWrite(ledPin, buttonState>0); break; case BUTTON4: digitalWrite(ledPin, buttonState>0); break; case BUTTON5: digitalWrite(ledPin, buttonState>0); break; } }