Merci pour votre réponse
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.