problème de code, fonctionnel ou pas ?

Bonjour, je m’appelle Benoit, et je suis un Noob en codage arduino, je programme sur l’autre automate type millénium … mais c’est pas du C
Pour mon projet d’embouteilleuse j’ai créé un programme qui ne fonctionne pas en compilation.
Pk, je sais pas? j’ai essayé de chercher sur le forum mais je n’ai eu que des réponses de mariée.
Soit je mis prend très mal, soit il va falloir plus d’expérience.
Pour expliquer mon projet:

je dois mettre en bouteilles des bières, j’ai trois cannes équipés de trois électrovannes le tout alimentée par une pompe. chaque canne est équipée d’un contact fin de cours afin de détecter la présence d’une bouteille mise en avant.
Les trois cannes peuvent servir en même temps.
Il y a une fonction en plus qui est le mode lavage, qui, via un bouton spécifique met en fonction la pompe et ouvres les 3 électrovannes peux importer la position des fin de cours.
voila mon code:

// embouteilleuse à biére v1




void setup() {

 Serial.begin(9600);
  pinMode (2, INPUT); // bec 1
  pinMode (3, INPUT); // bec 2
  pinMode (4, INPUT); // bec 3
  pinMode (5, INPUT); // bec marche
  pinMode (6, INPUT); // lavage
  pinMode (7, OUTPUT); // EV1
  pinMode (8, OUTPUT); // EV2
  pinMode (9, OUTPUT); // EV3
  pinMode (10, OUTPUT); // pompe
 
}

void loop() {
if (digitalRead(2) == HIGH && digitalRead(5) == HIGH) // marche + bouteille bec 1
do (digitalWrite(10, HIGH); 
delay(100);
digitalWrite(7, HIGH)
delay(1000)
  
if (digitalRead(3) == HIGH && digitalRead(5) == HIGH) // marche + bouteille bec 2
do digitalWrite(10, HIGH);
delay(100);
digitalWrite(8, HIGH);
delay(1000);
  
if (digitalRead(4) == HIGH && digitalRead(5) == HIGH) // marche + bouteille bec 3
do digitalWrite(10, HIGH);
delay(100);
digitalWrite(9, HIGH);
delay(1000);
 
if (digitalRead(5) == HIGH) // lavage
do digitalWrite(10, HIGH);
delay(100);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, HIGH);
delay(1000);
 }

messages erreurs

Arduino : 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Carte : "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"





















C:\Users\bemo\Desktop\beerfiller_v2\beerfiller_v2.ino: In function 'void loop()':

beerfiller_v2:23:27: error: expected ')' before ';' token

 do (digitalWrite(10, HIGH);

                           ^

beerfiller_v2:24:1: error: expected 'while' before 'delay'

 delay(100);

 ^~~~~

beerfiller_v2:24:1: error: expected '(' before 'delay'

beerfiller_v2:24:6: error: could not convert 'delay(100)' from 'void' to 'bool'

 delay(100);

 ~~~~~^~~~~

beerfiller_v2:24:11: error: expected ')' before ';' token

 delay(100);

           ^

beerfiller_v2:26:1: error: expected ';' before 'delay'

 delay(1000)

 ^~~~~

beerfiller_v2:36:1: error: expected 'while' before 'delay'

 delay(100);

 ^~~~~

beerfiller_v2:36:1: error: expected '(' before 'delay'

beerfiller_v2:36:6: error: could not convert 'delay(100)' from 'void' to 'bool'

 delay(100);

 ~~~~~^~~~~

beerfiller_v2:36:11: error: expected ')' before ';' token

 delay(100);

           ^

beerfiller_v2:42:1: error: expected 'while' before 'delay'

 delay(100);

 ^~~~~

beerfiller_v2:42:1: error: expected '(' before 'delay'

beerfiller_v2:42:6: error: could not convert 'delay(100)' from 'void' to 'bool'

 delay(100);

 ~~~~~^~~~~

beerfiller_v2:42:11: error: expected ')' before ';' token

 delay(100);

           ^

exit status 1

expected ')' before ';' token



Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Merci de votre aide
Cordialement

Bonjour

Les doublons ne sont pas admis sur ce forum

sur ce forum un titre doit évoquer la nature du problème rencontré.
le tien 'A l'aide' est du style 'titre à la con' selon les termes du modérateur

Rédites ce titre, réédites également le contenu du message pour y faire figurer le message d'erreur en compilation

Bonjour,

Formates correctement ton code (avec CTRL t ou CMD t) et tu verras plus facilement les problèmes.

Le problème principal c'est que pour regrouper plusieurs instructions dans un if c'est {} et non 'do'

kamill:
Bonjour,

Formates correctement ton code (avec CTRL t ou CMD t) et tu verras plus facilement les problèmes.

Le problème principal c'est que pour regrouper plusieurs instructions dans un if c'est {} et non 'do'

Bonjour et merci, effectivement cela marche en compilation, merci de ton retour

Bonjour, as tous, je viens de téléverser le programme et je ne comprend rien c'a fait n'importe quoi les sortie commute toutes seules sans que j 'appuie sur aucun bouton, avez vous une idée la je suis perdu

Oui , une idée : que tu décrives en détail ton montage, chose que tu aurais du faire d'office (Règles du Forum)

al1fch:
Oui , une idée : que tu décrives en détail ton montage, chose que tu aurais du faire d'office (Règles du Forum)

Bonjour, désolé, mais je suis débutant, par montage tu entends "physique"
Je pense avoir tout bien expliqué dans mon premier post,
ci apres la maquette que j'ai réalisé pour le test

téléchargement.png

téléchargement.png

Pas evident , du moins pour moi, de verifier sur la photo le câblage des boutons....j'ai quand un même un doute ....et ait l'impression qu'avec ce câblage les boutons paraissent tous actionnés au codeet qu'il réagit en conséquence.

Faire un schéma , même a main levée.

On ne voit pas grand chose sur ta photo, mais il ne semble pas y avoir de résistance de pulldown (ni de pullup) alors que tu les as déclaré en INPUT. Si c'est le cas tu lis n'importe quoi sur les entrées.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.