Faire varier l'allumage des leds grâce à un potentiomètre et un bouton poussoir

Bonsoir,

Je dois réaliser le programme d'un blink challenge avec 5 led en alternant 4 modes:

  • led éteintes
  • led allumées
  • led clignotantes (période de 1s)
  • led fonctionnant en chenillard (période de 1s)
    On souhaite pouvoir faire varier la période des modes 3 et 4 entre 0.05s et 5s à l'aide d'un potentiomètre.

Voici le programme que j'ai pour l'instant réalisé:
//compteur de boucles
int compteur =0;

byte led;
byte broche;

void setup()
{
for (broche = 8; broche <= 13; broche++)
{
pinMode(broche,OUTPUT);
}
}

void loop()
{
//1ére animation, effet escargot avec inversion
//reproduire 4 fois le cycle suivant

for (compteur =1 ; compteur <= 3 ; compteur++)
{
// allumer chaque led et l'éteindre sur une cadence de 50 milliseconde
// Escargot de l'extérieur vers l'intérieur

for (led = 8 ; led <= 13 ; led++)
{
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}

// allumer chaque led et l'éteindre sur une cadence de 50 milliseconde
// Escargot de l'intérieur vers l'extérieur
// la led 10 n'est pas rallumé puisqu'elle fais partie de la boucle précédente

for (led = 12 ; led >= 8 ; led--)
{
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
}
}

//reproduire 10 fois le cycle suivant
//2éme animation,clignotement de toutes les LEDS

for(compteur = 1 ; compteur <= 5 ; compteur++)
{
for (led = 13 ; led >= 8 ; led--)
{
digitalWrite(led,HIGH);
}
delay(100);

for (led = 13 ; led >= 8 ; led--)
{
digitalWrite(led,LOW);
}
delay(100);
}
}

J'aimerais que vous m'aidez afin de rajouter le potentiomètre (relié à A0) et le bouton poussoir (relié à D7) à partir de la fonction milis.

Cordialement

A LIRE