You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
C++
62 lines
1.3 KiB
C++
const int buttonPin = 2;
|
|
|
|
const int ledPin1 = 11;
|
|
const int ledPin2 = 12;
|
|
const int ledPin3 = 13;
|
|
|
|
int buttonState = 0;
|
|
|
|
int direction = 1;
|
|
|
|
void setup() {
|
|
pinMode(buttonPin, INPUT);
|
|
|
|
pinMode(ledPin1, OUTPUT);
|
|
pinMode(ledPin2, OUTPUT);
|
|
pinMode(ledPin3, OUTPUT);
|
|
}
|
|
|
|
void loop() {
|
|
int buttonStatePrev = buttonState;
|
|
buttonState = digitalRead(buttonPin);
|
|
|
|
// only trigger change when button gets pressed
|
|
|
|
if (buttonState == HIGH) {
|
|
if (buttonStatePrev == LOW) {
|
|
direction *= -1;
|
|
}
|
|
|
|
digitalWrite(ledPin1, HIGH);
|
|
digitalWrite(ledPin2, HIGH);
|
|
digitalWrite(ledPin3, HIGH);
|
|
delay(10);
|
|
} else {
|
|
digitalWrite(ledPin1, LOW);
|
|
digitalWrite(ledPin2, LOW);
|
|
digitalWrite(ledPin3, LOW);
|
|
|
|
if (direction == 1) {
|
|
digitalWrite(ledPin3, LOW);
|
|
digitalWrite(ledPin1, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin1, LOW);
|
|
digitalWrite(ledPin2, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin2, LOW);
|
|
digitalWrite(ledPin3, HIGH);
|
|
delay(250);
|
|
} else {
|
|
digitalWrite(ledPin1, LOW);
|
|
digitalWrite(ledPin3, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin3, LOW);
|
|
digitalWrite(ledPin2, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin2, LOW);
|
|
digitalWrite(ledPin1, HIGH);
|
|
delay(250);
|
|
}
|
|
}
|
|
}
|