Projet Control module

Merci pour votre réponse :slight_smile:

Cependant je n'y arrive pas :

//   G F + A B
//   | | | | |   -> pins and segments they control
//   ---------
//  F|   A   |B
//   |---G---|   -> segments
//  E|   D   |C
//   ---------
//   | | | | |   -> pins and segments they control
//   E D + C DP

// 7 Segments Pin correspondance
const int A = 2;
const int B = 3;
const int C = 4;
const int D = 5;
const int E = 6;
const int F = 7;
const int G = 8;

// Push bouton
const int BUTTON = 10;
const int BUTTON2 = 11;

// Led remplace solenoid
const int LedSA = A14;
const int LedSB = A13;
const int LedSClutch = A12;
const int LedSLockup = A7;
const int LedSPressure = A6;


// on when pin is high
// off when pin is low
const int ON = HIGH;
const int OFF = LOW;

//vitesse
int vitesse = 1;


// action push bouton
int Push = +1;   
int Push2 = -1;   


void setup() {
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  pinMode(BUTTON2, INPUT_PULLUP);
  pinMode(LedSA, OUTPUT);        //solenoid A
  pinMode(LedSB, OUTPUT);        //solenoid B
  pinMode(LedSClutch, OUTPUT);   //solenoid Overrun Clutch 
  pinMode(LedSLockup, OUTPUT);  //solenoid Lock-up
  pinMode(LedSPressure, OUTPUT); //solenoid Line Pressure
 
}

void loop() { // début du loop  

  
  Push = digitalRead(BUTTON);                 // action bouton +
if (Push == HIGH)                             // pression capté
  vitesse++;                                  // vitesse +1
    delay(100);                                // temps de pression nécessaire
     switch (vitesse) { //début du cycle 1-4 
      case 1:                 //-
        Vitesse1();
         break;
         while(digitalRead(BUTTON));
      case 2:                 //
        Vitesse2();                        // A partir de 1 monter à 4
         break;  
         while(digitalRead(BUTTON)); 
      case 3:                 //
        Vitesse3();
         break;
         while(digitalRead(BUTTON));
      case 4:                 //-
        Vitesse4();
         break;
         
   }//fin cycle 1-4



  Push2 = digitalRead(BUTTON2);                 // action bouton -
if (Push2 == HIGH)                              // pression capté
  --vitesse;                                    //vitesse -1
    delay(100);                                  // temps de pression nécessaire
    switch (vitesse) {
      case 4:                 //-
        Vitesse4();
         break;
         while(digitalRead(BUTTON));
      case 3:                //
        Vitesse3();                        // A partir de 4 descendre à 1
         break;
         while(digitalRead(BUTTON));
      case 2:                //
        Vitesse2();
         break;
         while(digitalRead(BUTTON));
      case 1:                //-
        Vitesse1();
         break;
         
    }//fin cycle 4-1


} //fin du loop
   




// 1 => BC
void Vitesse1() {
  digitalWrite(A, OFF);
  digitalWrite(B, ON);
  digitalWrite(C, ON);
  digitalWrite(D, OFF);
  digitalWrite(E, OFF);
  digitalWrite(F, OFF);
  digitalWrite(G, OFF);
  digitalWrite(LedSA, HIGH);       
  digitalWrite(LedSB, LOW);       
  digitalWrite(LedSClutch, LOW);   
  digitalWrite(LedSLockup, LOW);
  digitalWrite(LedSPressure, HIGH); 
   
}

// 2 => ABDEG
void Vitesse2() {
  digitalWrite(A, ON);
  digitalWrite(B, ON);
  digitalWrite(C, OFF);
  digitalWrite(D, ON);
  digitalWrite(E, ON);
  digitalWrite(F, OFF);
  digitalWrite(G, ON);
  digitalWrite(LedSA, HIGH);       
  digitalWrite(LedSB, HIGH);       
  digitalWrite(LedSClutch, LOW);   
  digitalWrite(LedSLockup, LOW);
  digitalWrite(LedSPressure, HIGH);
}

// 3 => ABCDG
void Vitesse3() {
  digitalWrite(A, ON);
  digitalWrite(B, ON);
  digitalWrite(C, ON);
  digitalWrite(D, ON);
  digitalWrite(E, OFF);
  digitalWrite(F, OFF);
  digitalWrite(G, ON);
  digitalWrite(LedSA, HIGH);       
  digitalWrite(LedSB, HIGH);       
  digitalWrite(LedSClutch, HIGH);   
  digitalWrite(LedSLockup, LOW);
  digitalWrite(LedSPressure, HIGH); 
}

// 4 => BCFG
void Vitesse4() {
  digitalWrite(A, OFF);
  digitalWrite(B, ON);
  digitalWrite(C, ON);
  digitalWrite(D, OFF);
  digitalWrite(E, OFF);
  digitalWrite(F, ON);
  digitalWrite(G, ON);
  digitalWrite(LedSA, LOW);       
  digitalWrite(LedSB, LOW);       
  digitalWrite(LedSClutch, HIGH);   
  digitalWrite(LedSLockup, LOW);
  digitalWrite(LedSPressure, HIGH); 
}

le bouton + et - fonctionne bien mais si je reste appuiyé sur l'un deux sa passe au dernier directe ex:
si 1 affiché et que je reste un peu appuyé il monte jusqu'à 4 et inversement.