// Pin assignments
const int signal1Pin = 2; // Pin for signal 1
const int signal2Pin = 3; // Pin for signal 2
const int signal3Pin = 4; // Pin for signal 3
const int signal4Pin = 5; // Pin for signal 4
const int potPin = A0;    // Pin for the slide potentiometer

// Variables
int speed = 500; // Speed value in milliseconds

void setup() {
  pinMode(signal1Pin, OUTPUT);
  pinMode(signal2Pin, OUTPUT);
  pinMode(signal3Pin, OUTPUT);
  pinMode(signal4Pin, OUTPUT);
}

void loop() {
  // Generate signal 1
  digitalWrite(signal1Pin, HIGH);
  delay(speed / 2);
  digitalWrite(signal1Pin, LOW);
  delay(speed / 2);

  // Generate signal 2
  digitalWrite(signal2Pin, HIGH);
  delay(speed / 2);
  digitalWrite(signal2Pin, LOW);
  delay(speed / 2);

  // Generate signal 3
  digitalWrite(signal3Pin, HIGH);
  delay(speed / 2);
  digitalWrite(signal3Pin, LOW);
  delay(speed / 2);

  // Generate signal 4
  digitalWrite(signal4Pin, HIGH);
  delay(speed / 2);
  digitalWrite(signal4Pin, LOW);
  delay(speed / 2);

  // Read potentiometer value and adjust the speed
  int potValue = analogRead(potPin);
  speed = map(potValue, 0, 1023, 1000, 100); // Map potentiometer value to speed range (100ms to 1000ms)
}