Probleme code ide

bonjour j essais de crée un compteur de présence vert il y a personne rouge c est occupe avec des détecteur anti collision mais je bloque sur une erreur

je vous met mon code ide


#define LED_VERTE 5
#define LED_ROUGE 7
int barriere;
int capteur = 10;
int capteur2 = 11;
int detection;
int detection2;

void setup() {
  pinMode(capteur, INPUT);
  pinMode(capteur2, INPUT);
  pinMode(LED_VERTE, OUTPUT);

  pinMode(LED_ROUGE, OUTPUT);
  digitalWrite(LED_ROUGE, HIGH);
}

void loop() {
  detection = digitalRead(capteur);
  detection2 = digitalRead(capteur2);
  if ((detection = + 1) && (detection2 = -1)) { // rien

  }
  
  void ouvrir() 
    if (detection  + detection2 == 0); // pas de train
    digitalWrite(LED_ROUGE, LOW);
    digitalWrite(LED_VERTE, HIGH);

    else (detection + detection2 => 1); // train
    digitalWrite(LED_VERTE, LOW);
    digitalWrite(LED_ROUGE, HIGH);


    delay(50);
  }

et voici le message d erreur "C:\Users\syppa\Documents\Arduino\essais_compteur__avec_led\essais_compteur__avec_led.ino: In function 'void loop()':
essais_compteur__avec_led:27:5: error: expected initializer before 'if'
if (detection + detection2 == 0); // pas de train
^~
essais_compteur__avec_led:31:5: error: 'else' without a previous 'if'
else (detection + detection2 => 1); // train
^~~~
essais_compteur__avec_led:31:35: error: expected primary-expression before '>' token
else (detection + detection2 => 1); // train
^
exit status 1
expected initializer before 'if'

merci de votre aide

Attention assignation au lieu de test d’égalité

Il manque { après le nom de la fonction

La fonction loop n’a pas non plus son accolade de fin }

Je pense qu'il faut simplement ôter cette ligne, qui ne sert à rien et crée le problème.

Assignation au lieu de test come le dit @J-M-L mais en plus quand bien même tu mettrais == il y aurait quand même un problème.
detection et detection2 reçoivent leur état d'un digitalRead(). Or digitalRead() retourne HIGH ou LOW

Un point virgule mal placé. Ce devrait sans doute être une accolade ouvrante
Le test peut passer mais c'est une mauvaise pratique si tu veux tester que les 2 variables sont LOW, il faut faire soit:

  • if((detection || detection2) == LOW)

  • if((detection == LOW) && (detection2 == LOW))

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