// Define the GPIO pin
const int signalPin = 2; // GPIO pin for the signal
// Define the durations and the number of toggles for each interval
const unsigned long durations[] = {800, 500, 100}; // Durations in milliseconds
const int numToggles[] = {1, 2, 5}; // Number of toggles per second for each duration
void setup() {
// Initialize the GPIO pin as an output
pinMode(signalPin, OUTPUT);
digitalWrite(signalPin, LOW); // Start with the signal LOW
}
void loop() {
// Iterate through each duration
for (int i = 0; i < 3; i++) {
unsigned long duration = durations[i];
int toggles = numToggles[i];
unsigned long toggleInterval = duration / 2;
// Generate the signal for 1 second
unsigned long startTime = millis();
while (millis() - startTime < 1000) {
// Toggle the signal pin
digitalWrite(signalPin, HIGH);
delay(toggleInterval);
digitalWrite(signalPin, LOW);
delay(toggleInterval);
}
}
}