// GPIO LED
#define RedLEDPin 4
#define GreenLEDPin 14
void setup() {
Serial.begin(115200);
pinMode(RedLEDPin, OUTPUT);
pinMode(GreenLEDPin, OUTPUT);
}
// Each LED has its own time - no delay() is used, time is counted with millis()
unsigned long redMillis = millis();
uint8_t redLEDState = LOW;
unsigned long greenMillis = millis();
uint8_t greenLEDState = LOW;
void loop() {
// checks time
unsigned long now = millis();
// Red LED time is 500ms
if (now > redMillis + 500) {
// resets time counter
redMillis = now;
// Changes Red LED state
redLEDState = redLEDState ? LOW : HIGH;
digitalWrite(RedLEDPin, redLEDState);
}
// Green LED time is 200ms
if (now > greenMillis + 200) {
// resets time counter
greenMillis = now;
// Changes Green LED state
greenLEDState = greenLEDState ? LOW : HIGH;
digitalWrite(GreenLEDPin, greenLEDState);
}
}