eteindre led avec relais et double condition

Bonjour !
Alors voila mon petit problème,
J’ai un potentiomètre, une LED et un relais.
J’aimerai que l’arduino lise les valeurs du potentiomètre.
Je détermine un seuil ici 600.
Si le potentiomètre dépasse ce seuil, alors une variable i s’incrémente de +1.
Lorsque cette variable i devient supérieure à 10, le relais change d’état et la LED s’éteint (elle était jusque ici allumée).
Alors j’ai essayé pleins de choses avec différentes structures de IF mais ça ne marche pas.
J’arrive pas à ordonner mes idées pour que cela marche.
Pourriez vous m’aider ?
Merci beaucoup!
:slight_smile:
PS: j’ai un arduino MEGA 2560, une shiel proto et un relais arduino de chez microbot allimenté en 5V.

void setup() {
  // put your setup code here, to run once:
pinMode(13,OUTPUT);
Serial.begin(9600);
 int i = 0;
}

void loop() {
  // put your main code here, to run repeatedly:
 int valeur = analogRead(A0);
int i;
 if (valeur < 600)
  {i=i;
  digitalWrite(13,HIGH);
   }
  else 
  {
    i=i+1;
    if (i>10)
    {
      digitalWrite(13,LOW);
    }
  }
 Serial.println(i);
 delay(100);
}

deja tu initialise mal ta variable...

et a plusieurs endroit..

et surtout que i=i; ça sert a rien...

un seuil?? superieur ou inferieur a 600?

(valeur < 600) <= la c'est toujours inferieur..

int i =0;

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


void loop() {

 int valeur = analogRead(A0);

 if (valeur >= 600)
  {
  i++;
  digitalWrite(13,HIGH);
  Serial.println(i);
   }

    if (i>=10)digitalWrite(13,LOW);
    
  }

 delay(100);
}

Je ferais plutôt quelque chose comme ça :

void setup() {
  pinMode(13,OUTPUT);
  digitalWrite(13,HIGH);
  Serial.begin(9600);
  int valeur = analogRead(A0); // <-- la première mesure analogique est _toujours_ fausse : autant la faire ici
  delay(2000);  // <-- une temporisation pour régler le potentiomètre
}

void loop() {
  int valeur = analogRead(A0);
  if (valeur > 600)  i=i+1;
  if (i>10) digitalWrite(13,LOW);
  Serial.println(i);
  delay(100);  // <-- augmenter ce chiffre si ça va trop vite
}

Attention, ça ira très vite : le potentiomètre sera lu tous les dixièmes de secondes, donc le seuil de 10 pour i sera atteint très rapidement.

Ensuite, il reste à faire la partie relais.