Problème sur un programme arduino

Bonjour, j'ai créé un programme arduino servant à compter des niveaux dans un parcours.
Pour faire simple, à chaque fois que je presse un bouton, cela incrémente une valeur de 1 et quand cette valeur correspond à 4, cela incrémente une autre valeur de 1 et remet la première à 0.
En outre, quand je presse un autre bouton, cela remet la première valeur à 0.

Seule chose, ça déconne et les leds de l'interface clignotent dans tous les sens...

Aidez-moi SVPP! J'ai mis en pièce jointe le fichier et ai collé le code...

Merci d'avance.
Hugo Quintart

Compte_point_fpv.ino (1.7 KB)

const int greenPin = 6; // la led verte est sur la pin 6
const int yellowPin = 5; // la led jaune est sur la pin 5
const int redPin = 4; // la led rouge est sur la pin 4
const int okPin = 3; // l'entrée du bouton de validation est sur la pin 3
const int nonokPin = 2; // l'entrée du bouton de message de non validation est sur la pin 2

int comptePoint;
int niveau;

void setup() {
  // paramétrer les variable
  comptePoint = 0;
  niveau = 1;
  // paramétrer les pins
  // Pins des leds
  pinMode(greenPin, OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(redPin, OUTPUT);

  //Pin des boutons
  pinMode(okPin, INPUT);
  pinMode(nonokPin, INPUT);
  //Initialiser le moniteur série
  Serial.begin(9600);

}

void loop() {
  // condition de comptage de point
  if (digitalRead(okPin == HIGH)) {
    digitalWrite(greenPin, HIGH);
    Serial.println(niveau);
    comptePoint + 1;
    delay(500);
    Serial.print(" er parcours              ");
    Serial.print(comptePoint);
    Serial.print(" point(s)");
    delay(500);
    digitalWrite(greenPin, LOW);

  }
  if (digitalRead(nonokPin == HIGH)) {
    digitalWrite(redPin, HIGH);
    Serial.println(" Parcours recommencé. Cause: Raté parcours");
    comptePoint = 0;
    delay(500);
    digitalWrite(redPin, LOW);

  }
  else {

  }
  if (comptePoint = 4) {
    comptePoint = 0;
    niveau + 1;
    Serial.println(" Parcours Suivant ");

  }
  else {

  }
  if (niveau = 2) {
    digitalWrite(yellowPin, HIGH);
    Serial.println("Dernier Niveau");

  }
  else {

  }
  if (niveau == 2) {
    if (comptePoint == 4) {
      Serial.println(" Bravo, ");
      Serial.println(" Vous avez Gagné ");
    }
  }

}

Oops

if (comptePoint = 4)

Et encore.

Est-ce une erreur?

Quel est mon erreur?

if (digitalRead(okPin) == HIGH)

Ah ben mais oui
Quel con que je suis...

Et ça va réussir ducoup?

comptePoint + 1;

comptePoint++;

"comptePoint++1" ?

ou juste "comptePoint++" ?

comptePoint = comptePoint + 1;

comptePoint += 1;

comptePoint ++;

Désolé... ça ne marche tjrs pas...
N'y a-t-il rien d'autre?

Bonjour,

Il y a d'autres erreurs
ici if (comptePoint = 4) { ==> if (comptePoint == 4) {
et ici if (niveau = 2) { ==> if (niveau == 2) {

J'ai modifié cela mais non, toujours pas...
désolé

Mets ton nouveau programme

voila

void loop() {
  // condition de comptage de point
  if (digitalRead((okPin) == HIGH)) {
    digitalWrite(greenPin, HIGH);
    Serial.println("parcours  ");
    comptePoint++;
    delay(500);
    Serial.print(niveau);
    Serial.print("                                           ");
    Serial.print(comptePoint);
    Serial.print(" point(s)");
    delay(500);
    digitalWrite(greenPin, LOW);

  }
  if (digitalRead((nonokPin) == HIGH)) {
    digitalWrite(redPin, HIGH);
    Serial.println(" Parcours recommencé. Cause: Raté parcours");
    comptePoint = 0;
    delay(500);
    digitalWrite(redPin, LOW);

  }
  else {

  }
  if (comptePoint == 4) {
    comptePoint = 0;
    niveau = niveau + 1;
    Serial.println(" Parcours Suivant ");

  }
  else {

  }
  if (niveau = 2) {
    digitalWrite(yellowPin, HIGH);
    Serial.println("Dernier Niveau");

  }
  else {

  }
  if (niveau == 2) {
    if (comptePoint == 4) {
      Serial.println(" Bravo, ");
      Serial.println(" Vous avez Gagné ");
    }
  }

}

Il y a toujours les erreurs
if (digitalRead((okPin) == HIGH)) { ==> if (digitalRead(okPin) == HIGH) {

Il y a aussi un if (niveau = 2) { qui reste

qui doit être corrigé par un

if (niveau == 2){

oui, mais on se demande pourquoi il y a deux tests identiques qui se suivent

c'est-à-dire?

@kamill