problème code LDR/LED

Bonjour à tous,
voilà j’ai commencé à programmer sur l’Arduino depuis peu et suis face à un problème :
je suis sur un code qui fait lit la valeur d’une LDR et allume en fonction plus ou moins de LEDs (il y a 10 LEDs en tout). Cette partie fonctionne, maintenant j’aimerais que lorsque à partir de 9 diodes ou plus allumés ou bien seulement 2 diodes ou moins, les 10 diodes se mettent à clignoter. Pour que ce soit plus clair, voici mon ébauche de programme, lire la LDR et allumé les diodes fonctionne. pour le clignotement je ne sais pas trop comment faire :

int led={2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int LDR=A0;
int critical;

void controlLEDs(int value){
int bargraphValue = map(value, 0, 1023, 0, 9);
for(int i=0; i<10; i++){
digitalWrite(led*, (bargraphValue >=i)?HIGH:LOW);*

  • }*
  • critical=bargraphValue;*
    }
    void clignoter(){
    for(int i=0; i<3; i++){
  • digitalWrite(2,HIGH);*
  • digitalWrite(3,HIGH);*
  • digitalWrite(4,HIGH);*
  • digitalWrite(5,HIGH);*
  • digitalWrite(6,HIGH);*
  • digitalWrite(7,HIGH);*
  • digitalWrite(8,HIGH);*
  • digitalWrite(9,HIGH);*
  • digitalWrite(10,HIGH);*
  • digitalWrite(11,HIGH);*
  • delay(1000);*
  • digitalWrite(2,LOW);*
  • digitalWrite(3,LOW);*
  • digitalWrite(4,LOW);*
  • digitalWrite(5,LOW);*
  • digitalWrite(6,LOW);*
  • digitalWrite(7,LOW);*
  • digitalWrite(8,LOW);*
  • digitalWrite(9,LOW);*
  • digitalWrite(10,LOW);*
  • digitalWrite(11,LOW);*
  • delay(1000);*
    }
    }
    void setup(){
  • for(int i=0; i<10; i++)*
    _ pinMode(led*, OUTPUT);_
    _
    Serial.begin(9600);_
    _
    }_
    void loop(){
    controlLEDs(analogRead(LDR));
    if(critical<3 || critical>8){
    void clignoter();
    Serial.println(“clignote”);
    _
    }_
    _
    }*_
    PS : Je cherche également à savoir comment compacter le programme de clignotement sans utiliser de boucle for qui allumera les LEDs les unes après les autres. Est-il possible de mettre à l’état HIGH tout le tableau ? ou existe-t-il une autre solution ?
    Je vous remercie.

Salut

Vite fait j'ai fait un truc comme ça pour ta commande de LED :

unsigned long top = 0;
unsigned long tps = 0;
int interval = 1000;
boolean etat = HIGH;

void setup() {
  // put your setup code here, to run once:
pinMode(13,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:


  tps = millis();

  if(tps - top > interval)  // changement d'etat tous les 1000ms (interval = 1000);
  {
    etat =! etat ;
    top = tps;
  }
  
LED(13,etat); 


}

void LED(int x, boolean etat)
{
  digitalWrite(x, etat);
}

Ca fait clignoter la LED 13 (présente sur la carte Arduino) en changeant son etat toutes les secondes.

C'est une façon de faire ..il y en a pleins d'autres ;) !

Très bien merci, mais je souhaiterais que ce soit les mêmes LEDs qui clignotent sachant qu'en réalité ce programme commande une sorte de bar de LEDs composée de 10 LEDs. Un nombre plus ou moins grand de LEDs s'allume selon la luminosité "remplissant" plus ou moins la bar. Cette bar de LEDs se mettrait à clignoter quelques fois si la bar est presque vide (donc pas beaucoup de lumière donc deux LEDs ou moins allumées) ou presque pleine (donc beaucoup de lumière donc 9 LEDs ou plus allumées). Et ma 2e question est si il est possible d'allumer par exemple 10 LEDs en même temps avec un nombre réduit d'instruction autre que : digitalWrite(2,HIGH); digitalmWrite(3,HIGH); ...