const int led1 = 11;
const int led2 = 10;
const int led3 = 9;
const int button = 2;
int lastButton = LOW;
int curButton = LOW;
int curPosition = 0;
int debounce (int last)
{
int current = digitalRead(button);
if(last != current)
{
delay(5);
current = digitalRead(button);
}
return current;
}
void setup() {
pinMode(led1, OUTPUT);
digitalWrite(led1, HIGH);
pinMode(led2, OUTPUT);
digitalWrite(led2, HIGH);
pinMode(led3, OUTPUT);
digitalWrite(led3, HIGH);
pinMode(button, INPUT);
digitalWrite(button, HIGH);
}
void loop() {
curButton = debounce(lastButton);
if(lastButton == HIGH && curButton == LOW)
{
curPosition = (curPosition+1) % 8;
digitalWrite(led1, curPosition & 0x01 ? LOW : HIGH);
digitalWrite(led2, curPosition & 0x02 ? LOW : HIGH);
digitalWrite(led3, curPosition & 0x04 ? LOW : HIGH);
}
lastButton = curButton;
}