Ultrasonic sensor (Distance) controlling LED lights If else statement

Hey forum, i need your help!
My Goal is to make my Ultrasonic distance sensor control my 6 LEDS for an art-installation, the intention is that the closer people come to the installation (the shorter the distance) the faster the LEDs should blink (so I use a shorter delay).
I can see in the serial monitor that the sensor is reading correctly, but is seems like a mistake with my code (probably my IF ELSE statement makes the lights blink in all the different speeds (from slow to fast) at each read no matter what distance the sensor is measuring. Is there another way I can write the distance, or something other than the IF ELSE method that could fix the problem.

I have tried writing the distance like this instead: if (distance>=200 II distance <300), didnt help :confused:



#define Trigpin 7 //trigpinn i 7eren
#define Echopin 6 //Echo i 8 

#define red_led 9 //Rød LED
#define low_led 10 //Grøn LED 
#define high_led 11 //blå LED
#define yellow_led 12 //gul LED
#define one_led 13 //hvid 1 
#define two_led 4 //hvid 2 


float distance;
int duration;
int ll = 700;

void setup() {
  pinMode (Trigpin, OUTPUT);
  pinMode (low_led, OUTPUT);
  pinMode (high_led, OUTPUT);
  pinMode (red_led, OUTPUT);
  pinMode (yellow_led, OUTPUT);
  pinMode (one_led, OUTPUT);
  pinMode (two_led, OUTPUT);
  pinMode (Echopin, INPUT);
  Serial.begin(9600);
  Serial.println ("Den Blinde Burhøne");
  Serial.println ("CAMMA DAHL");
  digitalWrite (low_led, LOW);
  digitalWrite (high_led, LOW);
  digitalWrite (red_led, LOW);
  digitalWrite (yellow_led, LOW);
  digitalWrite (one_led, LOW);
  digitalWrite (two_led, LOW);
 
}

void loop() {
  digitalWrite(Trigpin, LOW);
  delayMicroseconds(2);
  digitalWrite(Trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trigpin, LOW);
  duration = pulseIn(Echopin, HIGH);
  distance = duration * 0.034 / 2;
  delay (11);
  Serial.println (" ");
  Serial.print ("Distance = ");
  Serial.print (distance);
  Serial.print (" CM");
  Serial.println (" ");

   if (distance>=200)//between 200 and 300 LOWLOWLOW 300 delay 
  {
    Serial.println ("distance is over 200");
    digitalWrite (low_led, LOW);
    delay (300);
    digitalWrite (low_led, LOW);
    delay (300);
    digitalWrite (low_led, LOW);

    Serial.println ("distance is over 200");
    digitalWrite (high_led, LOW);
    delay (300);
    digitalWrite (high_led, LOW);
    delay (300);
    digitalWrite (high_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (red_led, LOW);
    delay (300);
    digitalWrite (red_led, LOW);
    delay (300);
    digitalWrite (red_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (yellow_led, LOW);
    delay (300);
    digitalWrite (yellow_led, LOW);
    delay (300);
    digitalWrite (yellow_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (one_led, LOW);
    delay (300);
    digitalWrite (one_led, LOW);
    delay (300);
    digitalWrite (one_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (two_led, LOW);
    delay (300);
    digitalWrite (two_led, LOW);
    delay (300);
    digitalWrite (two_led, LOW);

  }

     if (distance>=150) //between 150 and 200 LOWHIGHLOW delay 100
  {
    Serial.println ("distance is between 150 and 200");
    digitalWrite (low_led, LOW);
    delay (100);
    digitalWrite (low_led, HIGH);
    delay (100);
    digitalWrite (low_led, LOW);

    Serial.println ("distance is between 150 and 200");
    digitalWrite (high_led, LOW);
    delay (100);
    digitalWrite (high_led, HIGH);
    delay (100);
    digitalWrite (high_led, LOW);


    Serial.println ("distance is between 150 and 200");
    digitalWrite (high_led, LOW);
    delay (100);
    digitalWrite (high_led, HIGH);
    delay (100);
    digitalWrite (high_led, LOW);

    
    Serial.println ("distance is between 150 and 200");
    digitalWrite (red_led, LOW);
    delay (100);
    digitalWrite (red_led, HIGH);
    delay (100);
    digitalWrite (red_led, LOW);

    
    Serial.println ("distance is between 150 and 200");
    digitalWrite (yellow_led, LOW);
    delay (100);
    digitalWrite (yellow_led, HIGH);
    delay (100);
    digitalWrite (yellow_led, LOW);

  }

  if (distance>=100) // BETWEEN 100 and 150 LOWHIGHLOW delay 50
  {
    Serial.println ("between 100 and 150");
    digitalWrite (low_led, LOW);
    delay (50);
    digitalWrite (low_led, HIGH);
    delay (50);
    digitalWrite (low_led, LOW);

    Serial.println ("between 100 and 150");
    digitalWrite (high_led, LOW);
    delay (50);
    digitalWrite (high_led, HIGH);
    delay (50);
    digitalWrite (high_led, LOW);


    Serial.println ("between 100 and 150");
    digitalWrite (red_led, LOW);
    delay (50);
    digitalWrite (red_led, HIGH);
    delay (50);
    digitalWrite (red_led, LOW);

       Serial.println ("between 100 and 150");
    digitalWrite (yellow_led, LOW);
    delay (50);
    digitalWrite (yellow_led, HIGH);
    delay (50);
    digitalWrite (yellow_led, LOW);
    
   Serial.println ("between 100 and 150");
    digitalWrite (one_led, LOW);
    delay (50);
    digitalWrite (one_led, HIGH);
    delay (50);
    digitalWrite (one_led, LOW);
    
       Serial.println ("between 100 and 150");
    digitalWrite (two_led, LOW);
    delay (50);
    digitalWrite (two_led, HIGH);
    delay (50);
    digitalWrite (two_led, LOW);

  }

  
  if (distance>=75) //BETWEEN 75 ans 100 LOWHIGHLOW 25 delay
  {
    Serial.println ("between 75 and 100");
    digitalWrite (low_led, LOW);
    delay (25);
    digitalWrite (low_led, HIGH);
    delay (25);
    digitalWrite (low_led, LOW);

    Serial.println ("between 75 and 100");
    digitalWrite (high_led, LOW);
    delay (25);
    digitalWrite (high_led, HIGH);
    delay (25);
    digitalWrite (high_led, LOW);


    Serial.println ("between 75 and 100");
    digitalWrite (red_led, LOW);
    delay (25);
    digitalWrite (red_led, HIGH);
    delay (25);
    digitalWrite (red_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (yellow_led, LOW);
    delay (25);
    digitalWrite (yellow_led, HIGH);
    delay (25);
    digitalWrite (yellow_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (one_led, LOW);
    delay (25);
    digitalWrite (one_led, HIGH);
    delay (25);
    digitalWrite (one_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (two_led, LOW);
    delay (25);
    digitalWrite (two_led, HIGH);
    delay (25);
    digitalWrite (two_led, LOW);
    

   if (distance>=50) //BETWEEN 50 AND 75 LOWHIGHLOW 15 delay
  {
    Serial.println ("between 50 and 75");
    digitalWrite (low_led, LOW); 
    delay (15);
    digitalWrite (low_led, HIGH);
    delay (15);
    digitalWrite (low_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (high_led, LOW);
    delay (15); 
    digitalWrite (high_led, HIGH);
    delay (15);
    digitalWrite (high_led, LOW);
    
        Serial.println ("between 50 and 75");
    digitalWrite (red_led, LOW);
    delay (15); 
    digitalWrite (red_led, HIGH);
    delay (15);
    digitalWrite (red_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (yellow_led, LOW);
    delay (15); 
    digitalWrite (yellow_led, HIGH);
    delay (15);
    digitalWrite (yellow_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (one_led, LOW);
    delay (15); 
    digitalWrite (one_led, HIGH);
    delay (15);
    digitalWrite (one_led, LOW);
    
        Serial.println ("between 50 and 75");
    digitalWrite (two_led, LOW);
    delay (15); 
    digitalWrite (two_led, HIGH);
    delay (15);
    digitalWrite (two_led, LOW);

  }

   if (distance>=30) // BETWEEN 30 AND 50 HIGHLOWHIGH 10 delay
  {
    Serial.println ("Between 30 and 50");
    digitalWrite (low_led, HIGH); 
    delay (10);
    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, HIGH);

        Serial.println ("Between 30 and 50");
    digitalWrite (high_led, HIGH); 
    delay (10);
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, HIGH);

            Serial.println ("Between 30 and 50");
    digitalWrite (red_led, HIGH);
    delay (10); 
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, HIGH);

                Serial.println ("Between 30 and 50");
    digitalWrite (yellow_led, HIGH); 
    delay (10); 
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, HIGH);

     Serial.println ("Between 30 and 50");
    digitalWrite (one_led, HIGH); 
    delay (10); 
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, HIGH);

     Serial.println ("Between 30 and 50");
    digitalWrite (two_led, HIGH); 
    delay (10); 
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, HIGH);
  }

 if (distance>=00) // BETWEEN 00 AND 30 HIGHLOWHIGH 10 delay
 {
    Serial.println ("between 00 and 30");
    digitalWrite (low_led, HIGH);
    delay (5);
    digitalWrite (low_led, HIGH);
    delay (5);
    digitalWrite (low_led, HIGH);

        Serial.println ("between 00 and 30");
    digitalWrite (high_led, HIGH); 
    delay (5);
    digitalWrite (high_led, HIGH);
    delay (5);
    digitalWrite (high_led, HIGH);

            Serial.println ("between 00 and 30");
    digitalWrite (red_led, HIGH); 
    delay (5); 
    digitalWrite (red_led, HIGH);
    delay (5);
    digitalWrite (red_led, HIGH);

                Serial.println ("between 00 and 30");
    digitalWrite (yellow_led, HIGH); 
    delay (5);
    digitalWrite (yellow_led, HIGH);
    delay (5);
    digitalWrite (yellow_led, HIGH);

                    Serial.println ("between 00 and 30");
    digitalWrite (one_led, HIGH); 
    delay (5);
    digitalWrite (one_led, HIGH);
    delay (5);
    digitalWrite (one_led, HIGH);

                    Serial.println ("between 00 and 30");
    digitalWrite (two_led, HIGH); 
    delay (5);
    digitalWrite (two_led, HIGH);
    delay (5);
    digitalWrite (two_led, HIGH);
    
  }

    
  
else
  {
    Serial.println ("over 300"); 

    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, LOW);

       Serial.println ("over 300"); 
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, LOW);

    Serial.println ("Over 300"); 
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, LOW);
    
    Serial.println ("Over 300"); 
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, LOW);

    
    Serial.println ("Over 300"); 
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, LOW);

    
    Serial.println ("Over 300");
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, LOW);
    
  }
}
}

You should be using else/if structure. Look at your code without the LED flashing code. Think about it, if the distance is greater than 200 then it is also greater than 150 and also greater than 100, etc.

Change the 2nd and subsequent if to else if and your problem should be solved.

   if (distance>=200)//between 200 and 300 LOWLOWLOW 300 delay 
  {
  }
  if (distance>=150) //between 150 and 200 LOWHIGHLOW delay 100
  {
  }
  if (distance>=100) // BETWEEN 100 and 150 LOWHIGHLOW delay 50
  {
  }
  if (distance>=75) //BETWEEN 75 ans 100 LOWHIGHLOW 25 delay
  {
  }
  if (distance>=50) //BETWEEN 50 AND 75 LOWHIGHLOW 15 delay
  {
  }
  if (distance>=30) // BETWEEN 30 AND 50 HIGHLOWHIGH 10 delay
  {
  }
  if (distance>=00) // BETWEEN 00 AND 30 HIGHLOWHIGH 10 delay
  {
  }
  else
  {
  }

Welcome to the forum

If distance is greater than or equal to 200 you do stuff with the LEDs then you test whether distance is greater than or equal to 150, which it obviously is, and you do something different with the LEDs then you do the same for 100 and so on

Change the second and subsequent if statements into if else so that only one of them is ever true

In addition to this, the only difference between the LED code is the length of the delay()s so instead of repeating the LED code put it in a function and either call it with the delay() period as a parameter or make the delay() period a global variable

1 Like

Thank you so much :slight_smile: ill try that!

Thank you for the explenation, that makes sense :slight_smile:

Since all the LEDs behave the same, it makes sense to put their pins in an array, so we can loop over them when we want to use them later.

uint8_t const ledPins[] = {10, 11, 9, 12, 13, 4}; // low, high, red, yellow, one, two.

The behaviour of an LED seems to have two properties (the blink time and a pattern) that depend on the distance. This can be captured in a structure as follows.

struct Blinker {
  uint16_t const distance;
  uint8_t const blinkTime;
  uint8_t const pattern[3];
};

Now we can define the behaviour of the LEDs.

Blinker const blinkers[] = {
  {200, 300, {LOW, LOW, LOW}},
  {150, 100, {LOW, HIGH, LOW}},
  {100, 50, {LOW, HIGH, LOW}},
  {75, 25, {LOW, HIGH, LOW}},
  {50, 15, {LOW, HIGH, LOW}},
  {30, 10, {HIGH, LOW, HIGH}},
  {0, 5, {HIGH, HIGH, HIGH}}};

This can be used to create the desired pattern with a few lines of code.

void blink(uint16_t const distance) {
  size_t i;
  for (i = 0; distance < blinkers[i].distance; i++);
  // `blinkers[i]` contains the blink time and pattern we want.

  Serial.print("distance ");
  Serial.print(distance);
  Serial.print(" is larger or equal than ");
  Serial.println(blinkers[i].distance);

  for (uint8_t const pin: ledPins) {
    // Loop over the pins and apply the pattern.
    digitalWrite(pin, blinkers[i].pattern[0]);
    delay(blinkers[i].blinkTime);
    digitalWrite(pin, blinkers[i].pattern[1]);
    delay(blinkers[i].blinkTime);
    digitalWrite(pin, blinkers[i].pattern[2]);
  }
}

This function can be called to replace the large amount of conditional statements, i.e., you can replace everything from

to the end of the loop function with:

  blink(distance);

Here is an interactive example:

Thank you so much everybody, it works perfectly now :slight_smile:

Please post your working sketch so that the topic has an example of how you fixed it

1 Like

This is the code that i have now, it hasnt been modified into being a function yet, so there is probably a smarter/shorter way to write it . But it works as i intended :slight_smile:


#define Trigpin 7 //trigpinn i 7eren
#define Echopin 6 //Echo i 8 

#define red_led 9 //Rød LED
#define low_led 10 //Grøn LED 
#define high_led 11 //blå LED
#define yellow_led 12 //gul LED
#define one_led 13 //hvid 1 
#define two_led 4 //hvid 2 


float distance;
int duration;
int ll = 700;

void setup() {
  pinMode (Trigpin, OUTPUT);
  pinMode (low_led, OUTPUT);
  pinMode (high_led, OUTPUT);
  pinMode (red_led, OUTPUT);
  pinMode (yellow_led, OUTPUT);
  pinMode (one_led, OUTPUT);
  pinMode (two_led, OUTPUT);
  pinMode (Echopin, INPUT);
  Serial.begin(9600);
  Serial.println ("Den Blinde Burhøne");
  Serial.println ("CAMMA DAHL");
  digitalWrite (low_led, LOW);
  digitalWrite (high_led, LOW);
  digitalWrite (red_led, LOW);
  digitalWrite (yellow_led, LOW);
  digitalWrite (one_led, LOW);
  digitalWrite (two_led, LOW);
 
}

void loop() {
  digitalWrite(Trigpin, LOW);
  delayMicroseconds(2);
  digitalWrite(Trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trigpin, LOW);
  duration = pulseIn(Echopin, HIGH);
  distance = duration * 0.034 / 2;
  delay (11);
  Serial.println (" ");
  Serial.print ("Distance = ");
  Serial.print (distance);
  Serial.print (" CM");
  Serial.println (" ");

   if (distance>=300)//between 200 and 300 LOWLOWLOW 300 delay 
  {
    Serial.println ("distance is over 200");
    digitalWrite (low_led, LOW);
    delay (300);
    digitalWrite (low_led, LOW);
    delay (300);
    digitalWrite (low_led, LOW);

    Serial.println ("distance is over 200");
    digitalWrite (high_led, LOW);
    delay (300);
    digitalWrite (high_led, LOW);
    delay (300);
    digitalWrite (high_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (red_led, LOW);
    delay (300);
    digitalWrite (red_led, LOW);
    delay (300);
    digitalWrite (red_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (yellow_led, LOW);
    delay (300);
    digitalWrite (yellow_led, LOW);
    delay (300);
    digitalWrite (yellow_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (one_led, LOW);
    delay (300);
    digitalWrite (one_led, LOW);
    delay (300);
    digitalWrite (one_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (two_led, LOW);
    delay (300);
    digitalWrite (two_led, LOW);
    delay (300);
    digitalWrite (two_led, LOW);

  }

   else if (distance>=200)//between 200 and 300 LOWLOWLOW 300 delay 
  {
    Serial.println ("distance is over 200");
    digitalWrite (low_led, LOW);
    delay (300);
    digitalWrite (low_led, HIGH);
    delay (300);
    digitalWrite (low_led, LOW);

    Serial.println ("distance is over 200");
    digitalWrite (high_led, LOW);
    delay (300);
    digitalWrite (high_led, HIGH);
    delay (300);
    digitalWrite (high_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (red_led, LOW);
    delay (300);
    digitalWrite (red_led, HIGH);
    delay (300);
    digitalWrite (red_led, LOW);
    
    Serial.println ("distance is over 200");
    digitalWrite (yellow_led, LOW);
    delay (300);
    digitalWrite (yellow_led, HIGH);
    delay (300);
    digitalWrite (yellow_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (one_led, LOW);
    delay (300);
    digitalWrite (one_led, HIGH);
    delay (300);
    digitalWrite (one_led, LOW);

        Serial.println ("distance is over 200");
    digitalWrite (two_led, LOW);
    delay (300);
    digitalWrite (two_led, HIGH);
    delay (300);
    digitalWrite (two_led, LOW);

  }

    else if (distance>=150) //between 150 and 200 LOWHIGHLOW delay 100
  {
    Serial.println ("distance is between 150 and 200");
    digitalWrite (low_led, LOW);
    delay (200);
    digitalWrite (low_led, HIGH);
    delay (200);
    digitalWrite (low_led, LOW);

    Serial.println ("distance is between 150 and 200");
    digitalWrite (high_led, LOW);
    delay (200);
    digitalWrite (high_led, HIGH);
    delay (200);
    digitalWrite (high_led, LOW);

    Serial.println ("distance is between 150 and 200");
    digitalWrite (high_led, LOW);
    delay (200);
    digitalWrite (high_led, HIGH);
    delay (200);
    digitalWrite (high_led, LOW);

    
    Serial.println ("distance is between 150 and 200");
    digitalWrite (red_led, LOW);
    delay (200);
    digitalWrite (red_led, HIGH);
    delay (200);
    digitalWrite (red_led, LOW);

    Serial.println ("distance is between 150 and 200");
    digitalWrite (yellow_led, LOW);
    delay (200);
    digitalWrite (yellow_led, HIGH);
    delay (100);
    digitalWrite (yellow_led, LOW);

        Serial.println ("distance is between 150 and 200");
    digitalWrite (one_led, LOW);
    delay (200);
    digitalWrite (one_led, HIGH);
    delay (100);
    digitalWrite (one_led, LOW);

        Serial.println ("distance is between 150 and 200");
    digitalWrite (two_led, LOW);
    delay (200);
    digitalWrite (two_led, HIGH);
    delay (100);
    digitalWrite (two_led, LOW);

  }

  else if (distance>=100) // BETWEEN 100 and 150 LOWHIGHLOW delay 50
  {
    Serial.println ("between 100 and 150");
    digitalWrite (low_led, LOW);
    delay (50);
    digitalWrite (low_led, HIGH);
    delay (50);
    digitalWrite (low_led, LOW);

    Serial.println ("between 100 and 150");
    digitalWrite (high_led, LOW);
    delay (50);
    digitalWrite (high_led, HIGH);
    delay (50);
    digitalWrite (high_led, LOW);


    Serial.println ("between 100 and 150");
    digitalWrite (red_led, LOW);
    delay (50);
    digitalWrite (red_led, HIGH);
    delay (50);
    digitalWrite (red_led, LOW);

       Serial.println ("between 100 and 150");
    digitalWrite (yellow_led, LOW);
    delay (50);
    digitalWrite (yellow_led, HIGH);
    delay (50);
    digitalWrite (yellow_led, LOW);
    
   Serial.println ("between 100 and 150");
    digitalWrite (one_led, LOW);
    delay (50);
    digitalWrite (one_led, HIGH);
    delay (50);
    digitalWrite (one_led, LOW);
    
       Serial.println ("between 100 and 150");
    digitalWrite (two_led, LOW);
    delay (50);
    digitalWrite (two_led, HIGH);
    delay (50);
    digitalWrite (two_led, LOW);

  }

  
  else if (distance>=75) //BETWEEN 75 ans 100 LOWHIGHLOW 25 delay
  {
    Serial.println ("between 75 and 100");
    digitalWrite (low_led, LOW);
    delay (25);
    digitalWrite (low_led, HIGH);
    delay (25);
    digitalWrite (low_led, LOW);

    Serial.println ("between 75 and 100");
    digitalWrite (high_led, LOW);
    delay (25);
    digitalWrite (high_led, HIGH);
    delay (25);
    digitalWrite (high_led, LOW);


    Serial.println ("between 75 and 100");
    digitalWrite (red_led, LOW);
    delay (25);
    digitalWrite (red_led, HIGH);
    delay (25);
    digitalWrite (red_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (yellow_led, LOW);
    delay (25);
    digitalWrite (yellow_led, HIGH);
    delay (25);
    digitalWrite (yellow_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (one_led, LOW);
    delay (25);
    digitalWrite (one_led, HIGH);
    delay (25);
    digitalWrite (one_led, LOW);

        Serial.println ("between 75 and 100");
    digitalWrite (two_led, LOW);
    delay (25);
    digitalWrite (two_led, HIGH);
    delay (25);
    digitalWrite (two_led, LOW);
    
  }
   else if (distance>=50) //BETWEEN 50 AND 75 LOWHIGHLOW 15 delay
  {
    Serial.println ("between 50 and 75");
    digitalWrite (low_led, LOW); 
    delay (15);
    digitalWrite (low_led, HIGH);
    delay (15);
    digitalWrite (low_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (high_led, LOW);
    delay (15); 
    digitalWrite (high_led, HIGH);
    delay (15);
    digitalWrite (high_led, LOW);
    
        Serial.println ("between 50 and 75");
    digitalWrite (red_led, LOW);
    delay (15); 
    digitalWrite (red_led, HIGH);
    delay (15);
    digitalWrite (red_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (yellow_led, LOW);
    delay (15); 
    digitalWrite (yellow_led, HIGH);
    delay (15);
    digitalWrite (yellow_led, LOW);

        Serial.println ("between 50 and 75");
    digitalWrite (one_led, LOW);
    delay (15); 
    digitalWrite (one_led, HIGH);
    delay (15);
    digitalWrite (one_led, LOW);
    
        Serial.println ("between 50 and 75");
    digitalWrite (two_led, LOW);
    delay (15); 
    digitalWrite (two_led, HIGH);
    delay (15);
    digitalWrite (two_led, LOW);

  }

  else if (distance>=30) // BETWEEN 30 AND 50 HIGHLOWHIGH 10 delay
  {
    Serial.println ("Between 30 and 50");
    digitalWrite (low_led, HIGH); 
    delay (10);
    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, HIGH);

        Serial.println ("Between 30 and 50");
    digitalWrite (high_led, HIGH); 
    delay (10);
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, HIGH);

            Serial.println ("Between 30 and 50");
    digitalWrite (red_led, HIGH);
    delay (10); 
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, HIGH);

                Serial.println ("Between 30 and 50");
    digitalWrite (yellow_led, HIGH); 
    delay (10); 
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, HIGH);

     Serial.println ("Between 30 and 50");
    digitalWrite (one_led, HIGH); 
    delay (10); 
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, HIGH);

     Serial.println ("Between 30 and 50");
    digitalWrite (two_led, HIGH); 
    delay (10); 
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, HIGH);
  }

 else if (distance>=00) // BETWEEN 00 AND 30 HIGHLOWHIGH 10 delay
 {
    Serial.println ("between 00 and 30");
    digitalWrite (low_led, HIGH);
    delay (5);
    digitalWrite (low_led, HIGH);
    delay (5);
    digitalWrite (low_led, HIGH);

        Serial.println ("between 00 and 30");
    digitalWrite (high_led, HIGH); 
    delay (5);
    digitalWrite (high_led, HIGH);
    delay (5);
    digitalWrite (high_led, HIGH);

            Serial.println ("between 00 and 30");
    digitalWrite (red_led, HIGH); 
    delay (5); 
    digitalWrite (red_led, HIGH);
    delay (5);
    digitalWrite (red_led, HIGH);

                Serial.println ("between 00 and 30");
    digitalWrite (yellow_led, HIGH); 
    delay (5);
    digitalWrite (yellow_led, HIGH);
    delay (5);
    digitalWrite (yellow_led, HIGH);

                    Serial.println ("between 00 and 30");
    digitalWrite (one_led, HIGH); 
    delay (5);
    digitalWrite (one_led, HIGH);
    delay (5);
    digitalWrite (one_led, HIGH);

                    Serial.println ("between 00 and 30");
    digitalWrite (two_led, HIGH); 
    delay (5);
    digitalWrite (two_led, HIGH);
    delay (5);
    digitalWrite (two_led, HIGH);
    
  }

    
  
else
  {
    Serial.println ("over 300"); 

    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, LOW);
    delay (10);
    digitalWrite (low_led, LOW);

       Serial.println ("over 300"); 
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, LOW);
    delay (10);
    digitalWrite (high_led, LOW);

    Serial.println ("Over 300"); 
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, LOW);
    delay (10);
    digitalWrite (red_led, LOW);
    
    Serial.println ("Over 300"); 
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, LOW);
    delay (10);
    digitalWrite (yellow_led, LOW);

    
    Serial.println ("Over 300"); 
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, LOW);
    delay (10);
    digitalWrite (one_led, LOW);

    
    Serial.println ("Over 300");
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, LOW);
    delay (10);
    digitalWrite (two_led, LOW);
    
  }
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.