Created
January 6, 2025 18:42
-
-
Save StuffAndyMakes/813d6e19ce670f13d6b2864b873e5d64 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Arduino.h> | |
#define PIN_LED_A 13 | |
#define PIN_LED_B 12 | |
#define PIN_LED_C 11 | |
#define LED_A_STATE_SWITCH_INTERVAL 500 // milliseconds between LED state change | |
#define LED_B_STATE_SWITCH_INTERVAL 300 // milliseconds between LED state change | |
#define LED_C_STATE_SWITCH_INTERVAL 200 // milliseconds between LED state change | |
unsigned long ledNextStateFlipA = 0, ledNextStateFlipB = 0, ledNextStateFlipC = 0; | |
uint8_t ledStateA = LOW, ledStateB = LOW, ledStateC = LOW; | |
void setup(void) { | |
pinMode(PIN_LED_A, OUTPUT); | |
digitalWrite(PIN_LED_A, LOW); | |
pinMode(PIN_LED_B, OUTPUT); | |
digitalWrite(PIN_LED_B, LOW); | |
pinMode(PIN_LED_C, OUTPUT); | |
digitalWrite(PIN_LED_C, LOW); | |
} | |
void loop(void) { | |
if (millis() > ledNextStateFlipA) { | |
ledNextStateFlipA = millis() + LED_A_STATE_SWITCH_INTERVAL; | |
ledStateA = (ledStateA == LOW ? HIGH : LOW); | |
digitalWrite(PIN_LED_A, ledStateA); | |
} | |
if (millis() > ledNextStateFlipB) { | |
ledNextStateFlipB = millis() + LED_B_STATE_SWITCH_INTERVAL; | |
ledStateB = (ledStateB == LOW ? HIGH : LOW); | |
digitalWrite(PIN_LED_B, ledStateB); | |
} | |
if (millis() > ledNextStateFlipC) { | |
ledNextStateFlipC = millis() + LED_C_STATE_SWITCH_INTERVAL; | |
ledStateC = (ledStateC == LOW ? HIGH : LOW); | |
digitalWrite(PIN_LED_C, ledStateC); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment