//Pin Assignments for the LEDs
#define GREEN_LED_PIN 9
#define RED_LED_PIN 3
// Millisecond delays for each LED's ON/OFF states
#define GREEN_LED_ON_TIME 100
#define GREEN_LED_OFF_TIME 558
#define RED_LED_ON_TIME 324
#define RED_LED_OFF_TIME 469
// State variables for LEDs
bool green_led_state = false;
bool red_led_state = false;
// Timing variables
uint32_t green_next_toggle_time = 0;
uint32_t red_next_toggle_time = 0;
// Function to toggle LEDs
void toggle_led(int pin, bool state) {
digitalWrite(pin, state ? HIGH : LOW);
Serial.print("LED on pin ");
Serial.print(pin);
Serial.print(" State: ");
Serial.println(state ? "ON" : "OFF");
}
void setup() {
// put your setup code here, to run once:
// Initialize serial communication for debugging
Serial.begin(9600);
// Initialize LED pins
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(RED_LED_PIN, OUTPUT);
// Initialize LEDs to OFF
toggle_led(GREEN_LED_PIN, false);
toggle_led(RED_LED_PIN, false);
}
void loop() {
// put your main code here, to run repeatedly:
// Get the current time in milliseconds
uint32_t current_time = millis();
// Handle Green LED toggling
if (current_time >= green_next_toggle_time) {
if (green_led_state) {
toggle_led(GREEN_LED_PIN, false);
green_led_state = false;
green_next_toggle_time = current_time + GREEN_LED_OFF_TIME;
} else {
toggle_led(GREEN_LED_PIN, true);
green_led_state = true;
green_next_toggle_time = current_time + GREEN_LED_ON_TIME;
}
}
// Handle Red LED toggling
if (current_time >= red_next_toggle_time) {
if (red_led_state) {
toggle_led(RED_LED_PIN, false);
red_led_state = false;
red_next_toggle_time = current_time + RED_LED_OFF_TIME;
} else {
toggle_led(RED_LED_PIN, true);
red_led_state = true;
red_next_toggle_time = current_time + RED_LED_ON_TIME;
}
}
}