arrêter une boucle après 15 min

bonjour

je suis débutant en programmation pourriez vous me venir en aide

j'ai ma carte électronique de mon robot de piscine qui a pris l'eau, et j'ai un Arduino et une carte module a 4 relais, j'ai réussi en glanant quelque code par si par la a faire que cela fonctionne, mais je souhaite le mettre en stop après un temps donner.

après mise sous tension le robot avance 10 s stop 1 seconde et recule 10s stop 1seconde et ainsi de suite

// robot.piscine
//2017.05.28
#define RELAY_1 5
#define RELAY_2 3 
 

void setup() 
{ 
  pinMode(RELAY_1, OUTPUT); //avance
  pinMode(RELAY_2, OUTPUT); //recule

  
  digitalWrite(RELAY_1,HIGH);// met le relais au repos par défaut
  digitalWrite(RELAY_2,HIGH);// met le relais au repos par défaut
 
  
  } 
 
 
void loop() 

{ 
  digitalWrite(RELAY_1, LOW);   // turn the relay on
  delay(10000);          // wait for a second
  digitalWrite(RELAY_1, HIGH);   // turn the relay off
{  
  delay(1000);          // wait for a second
{
  digitalWrite(RELAY_2, LOW);   // turn the relay on 
  delay(10000);          // wait for a second
  digitalWrite(RELAY_2, HIGH);   // turn the relay off
{
    delay(1000);          // wait for a second

  }}}}

merci pour votre aide

Si il n'y a absolument que ça, tu peux mettre un delay(900000); en fin de boucle, ca mettra en pause pour 15min le programme.

Cependant, c'est pas la meilleure alternative si toutefois le code devrai faire autre chose

bonjour

merci pour ta réponse

je n'ai rien d'autre mise a part un bouton marche arrêt et des leds pour voir dans quel sens il va

merci

bonjour

merci pour ta réponse

mais cela ne fonctionne pas

je les peut être pas mis au bon endroit

merci

bonjour,
déjà vire des { dans ton code

void loop()

{
  digitalWrite(RELAY_1, LOW);   // turn the relay on
  delay(10000);          // wait for a second
  digitalWrite(RELAY_1, HIGH);   // turn the relay off
{ //ICI
  delay(1000);          // wait for a second
{//ICI
  digitalWrite(RELAY_2, LOW);   // turn the relay on
  delay(10000);          // wait for a second
  digitalWrite(RELAY_2, HIGH);   // turn the relay off
{//ICI
    delay(1000);          // wait for a second

  }}} //ICI
}

mais cela ne fonctionne pas

qu'est ce qui ne fonctionne pas?

mets le code modifié

Bonjour,

Il suffit que tu regardes depuis combien de temps ton programme fonctionne (donné par millis()). Si ce temps dépasse le temps fonctionnement tu fais une boucle infinie ou alors tu mets le processeur en standby
Tu ne pourra redémarrer que par une remise sous tension

void loop()
{
  digitalWrite(RELAY_1, LOW);   // turn the relay on
  delay(10000);          // wait for a second
  digitalWrite(RELAY_1, HIGH);   // turn the relay off
  delay(1000);          // wait for a second
  digitalWrite(RELAY_2, LOW);   // turn the relay on
  delay(10000);          // wait for a second
  digitalWrite(RELAY_2, HIGH);   // turn the relay off
  delay(1000);          // wait for a second

  if (millis()>15*60000UL)
    while(1);           // le programme est arrêté
}

Remarque tous les {} dans ton code ne servent à rien

bonjour et merci

cela fonctionne

j'ai maintenant un soucis mais sur le transformateur en 24 V dc, mais personne ne va pouvoir m'aider il est mort je vais donc en acheté des que possible

merci encore