/*
Sketch uses 1118 bytes (3%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
*/
#define PIN_A 2
#define PIN_B 3
#define PIN_C 4
void setup() {
// Initial pin mode setup
pinMode(PIN_A, INPUT);
pinMode(PIN_B, INPUT);
pinMode(PIN_C, INPUT);
}
void loop() {
light_led(PIN_A, PIN_B, PIN_C); // LED1: A -> B
delay(200);
light_led(PIN_B, PIN_A, PIN_C); // LED2: B -> A
delay(200);
light_led(PIN_A, PIN_C, PIN_B); // LED3: A -> C
delay(200);
light_led(PIN_C, PIN_A, PIN_B); // LED4: C -> A
delay(200);
light_led(PIN_B, PIN_C, PIN_A); // LED5: B -> C
delay(200);
light_led(PIN_C, PIN_B, PIN_A); // LED6: C -> B
delay(200);
}
// Function to turn on one LED
// After each function call the IO pins are reset as INPUTS
void light_led(uint8_t high_pin, uint8_t low_pin, uint8_t z_pin) {
// Set pins as input to start (disables all LEDs)
pinMode(PIN_A, INPUT);
pinMode(PIN_B, INPUT);
pinMode(PIN_C, INPUT);
// Apply drive to desired pins
pinMode(high_pin, OUTPUT);
pinMode(low_pin, OUTPUT);
digitalWrite(high_pin, HIGH);
digitalWrite(low_pin, LOW);
}