Barra led con tre tempi e lampeggi differenti

Salve, perdonate la mia poca esperienza con il linguaggio di programmazione…
Come da titolo, avrei la necessità di far lampeggiare una barra led con tre diverse “frequenze” di lampeggio e con tempi diversi.
Sono riuscito a scrivere il codice del programma utilizzando la funzione delay() per determinare la “frequenza” del lampeggio, mentre per determinare la durata del lampeggio ho pensato di contare il numero dei lampeggi definendo la variabile “conta”.
Tutto funziona correttamente ma terminata l’esecuzione del terzo ed ultimo ciclo, la barra led si spegne… e sono costretto a premere il pulsante reset per far ripartire il ciclo.
Come posso fare per far ripartire il ciclo in automatico? dove ho sbagliato?
Confido in un vostro gradito aiuto.
Vi ringrazio.
Ecco il codice:

#define ledPin 7
int conta = 0; // variabile del contatore
void setup() {
pinMode(ledPin, OUTPUT); // imposta il pin digitale ledPin come uscita
}
void loop() {
if(conta<2000){
digitalWrite(ledPin, HIGH); // accende ledPin
delay(500); //attende mezzo secondo
digitalWrite(ledPin, LOW); //spegne ledPin
delay(500); //attende mezzo secondo
conta++; // incrementa la variabile conta}
}
if((conta>=2000)&&(conta<=4000)){
digitalWrite(ledPin, HIGH); // accende ledPin
delay(1000); //attende un secondo
digitalWrite(ledPin, LOW); //spegne ledPin
delay(1000); //attende un secondo
conta++; // incrementa la variabile conta
}
if((conta>=4000)&&(conta<=6000)){
digitalWrite(ledPin, HIGH); // accende ledPin
delay(2000); //attende due secondi
digitalWrite(ledPin, LOW); //spegne ledPin
delay(2000); //attende due secondi
conta++; // incrementa la variabile conta
}}

mi fanno sorridere sketch com il tuo... ricordano tanto la prima volta che mi trovai davanti a un computer tutto mio.

comunque.... cosa succede quando la variabile conta arriva a 6001 ?

Tutto si ferma.... :confused:

Alberto81: Tutto si ferma.... :confused:

esatto. come a Roma quando piove

Come potrei fare per azzerare i conteggi e ripartire con un nuovo ciclo? potreste darmi un suggerimento?

a questo punto continua con un IF e azzera la variabile conta if (conta>=6001) { etc etc

Perdona la mia ignoranza potresti spiegarti meglio...

if((conta>=4000)&&(conta<=6000)){
 digitalWrite(ledPin, HIGH); // accende ledPin
 delay(2000); //attende due secondi
 digitalWrite(ledPin, LOW); //spegne ledPin
 delay(2000); //attende due secondi
 conta++; // incrementa la variabile conta
}

if (conta >= 6001 ) {
  conta = 0 ; // Azzera la varibile e rincomincia da capo
}

} // chiude Loop

Grazie! sei stato gentilissimo!