Problème, parfois la boucle de mon programme ne s'exécute pas entièrement et reprend à zéro au milieu d'un cycle

pilotage de 5 electrovannes

a marqué ce sujet comme résolu.

Bonjour à tous

J’utilise depuis peu l’arduino pour contrôler 5 électrovannes. J’ai appris le langage de programmation et les branchements de la carte et j’ai pu rapidement lancer une routine pour ouvrir et fermer mes éléctrovannes. Les premières routines se sont bien exécutées mais maintenant les actions réalisés par mon montage ne suivent pas mon programme.

Voici mon programme :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int A = 8;
int B = 7;
int C = 6;
int D = 5;
int E = 4;

void setup() {
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
}

void loop() {

// PHASE 1 : vannes A,B,C,D,E ouvertes
  digitalWrite(A, HIGH);    
  digitalWrite(B, HIGH);
  digitalWrite(C, HIGH);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  delay(10000);      

// PHASE 2 : fermeture des vannes A, D et E
  digitalWrite(A, LOW);    
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  delay (5000);  

// PHASE 3 :  ouverture des  vannes A et D ; fermeture des vannes B et C   
  digitalWrite(A, HIGH);    
  digitalWrite(D, HIGH);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  delay (5000);  

// PHASE 4 :  ouverture des vannes B et E ;  fermeture de la vanne D
  digitalWrite(B, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, HIGH);
  delay(60000);     

// PHASE 5 : fermeture des vannes A, B et E
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(E, LOW);
  delay(1000);
}

Les phases 1 et 2 sont bien exécutées mais la procédure ne continue pas vers les phases suivantes et recommence à la phase 1.

Je laisse alors allumé mon montage qui tourne en boucle entre les phases 1 et 2, puis au bout d’un certain temps la routine se met en route et fonctionne comme prévue. Elle s’exécute normalement, puis le problème réapparait, après la phase 2 (ou parfois après la phase 3) on repart à la phase 1 au lieu de continuer la procédure.

En bref au lieu de se dérouler entièrement, PARFOIS mon programme interrompt son cycle pour recommencer au départ.

Je ne comprend pas d’où vient le problème, d’autant plus que le problème n’est pas constant, certaine fois le cycle est bien exécuté.

J’ai pensé à des faux contacts …

J’ espère avoir été clair. Si vous avez rencontré ce problème ou si vous avez des pistes, des idées pour résoudre ce problème ça m’aiderais beaucoup.

Merci

+0 -0

Bonjour Cedric,

Pourrais tu éditer ton sujet pour que le code soit correctement formaté ?

Pour cela, facile : clique sur "Editer" en haut à droite de ton message, sélectionne le code source dans ton message, clique sur l’icone <> et sectionne le langage dans la liste (Arduino, le premier de la deuxième colonne je pense)

Merci d’avance, ça aidera les membres à lire ton code et ainsi a mieux pouvoir t’aider.

Voici le code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
int A = 8; int B = 7; int C = 6; int D = 5; int E = 4;

void setup() { pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); }

void loop() {

// PHASE 1 : vannes A,B,C,D,E ouvertes digitalWrite(A, HIGH);
digitalWrite(B, HIGH); digitalWrite(C, HIGH); digitalWrite(D, HIGH); digitalWrite(E, HIGH); delay(10000);

// PHASE 2 : fermeture des vannes A, D et E digitalWrite(A, LOW);
digitalWrite(D, LOW); digitalWrite(E, LOW); delay (5000);

// PHASE 3 : ouverture des vannes A et D ; fermeture des vannes B et C
digitalWrite(A, HIGH);
digitalWrite(D, HIGH); digitalWrite(B, LOW); digitalWrite(C, LOW); delay (5000);

// PHASE 4 : ouverture des vannes B et E ; fermeture de la vanne D digitalWrite(B, HIGH); digitalWrite(D, LOW); digitalWrite(E, HIGH); delay(60000);

// PHASE 5 : fermeture des vannes A, B et E digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(E, LOW); delay(1000); }
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte