const int buttonPin = 12;
const int redLED = 6;
const int yellowLED = 5;
const int greenLED = 3;
int previousButtonState;
int currentButtonState;
int LEDCounter = 0;
void setup() {
// put your setup code here, to run once:
// Initialize serial communication
Serial.begin(9600);
// Set the button pin as input
pinMode(buttonPin, INPUT);
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
digitalWrite(redLED, HIGH);
previousButtonState = 1;
currentButtonState = 1;
}
void loop() {
// put your main code here, to run repeatedly:
if (buttonWasPressed()) {
incrementLEDs();
}
// Print the state of the button
// Delay a little bit to avoid bouncing
delay(50);
}
bool buttonWasPressed() {
currentButtonState = digitalRead(buttonPin);
if ((previousButtonState == 1) && (currentButtonState == 0)) {
previousButtonState = currentButtonState;
return true;
}
else if ((previousButtonState == 0) && (currentButtonState == 1)) {
previousButtonState = currentButtonState;
return false;
}
else {
return false;
}
}
void incrementLEDs() {
if (LEDCounter == 2) {
LEDCounter = 0;
}
else {
LEDCounter += 1;
}
if (LEDCounter == 0) {
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
}
else if (LEDCounter == 1) {
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
}
else if (LEDCounter == 2) {
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
}
Serial.println(LEDCounter);
}