Cambiar de led intermitente con potenciometro

Estoy utilizando arduino uno y tengo un codigo pero el problema es que no cambia el led, es decir ,se mantiene en el led 1.
El objetivo es:
-Si tiene un valor de o a 350 encendera el led1 con una intermitencia de 100ms

-Si es de 351 a 700 cambira al led2 con una intermitencia de 500ms.

-Si es de 701 a 1023 cambiara al led3 con una intermitencia de 1000ms (un segundo).

Les comparto mi codigo:

int led1=7;
int led2=6;
int led3=5;

int val=0;

void setup()
{

pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);

}

void loop()
 {
  val=analogRead(A0);
    
    for(val=0 ;val<351;)
      {
        digitalWrite (led1,HIGH);
     delay(100);
        digitalWrite (led1,LOW);
        delay (100);
      } 
          for(val=351 ;val<701;)
      {
        digitalWrite (led2,HIGH);
     delay(500);
        digitalWrite (led2,LOW);
        delay (500);
      }  

         for(val=701 ;val<1024;)
      {
        digitalWrite (led3,HIGH);
     delay(1000);
        digitalWrite (led3,LOW);
        delay (1000);
        }  }

estas usando un bucle for cuando deberias usar un condicional if o switch
https://www.arduino.cc/reference/en/language/structure/control-structure/if/
https://www.arduino.cc/reference/en/language/structure/control-structure/switchcase/
tambien deberias repasar el uso de millis() en el apartado de documentacion o en google para contabilizar tiempo en lugar de delay