Bonjour
il y a quelques temps j'ai sollicité votre aide
https://forum.arduino.cc/index.php?topic=574440.0
Mais je suis a nouveau confronté a un autre problème:
- appuie bouton 1 = incrémente ma variable.
- appuie bouton 2 = décrémente ma variable.
- appuie sur les deux boutons = envoie mes données vers l'écran de débug.
- appuie de nouveau sur les deux boutons = sortie du mode 'envoie vers écran' de débug.
Mon soucis c'est que quelques fois en sortant (donc appuie sur mes deux boutons) j'incrémente ou décrémente ma variable.
Je cherche donc une solution simple, peut être une tempo pour que lorsque je quitte le mode d'affichage ce dernier reste encore actif afin de bien vérifier la valeur de ma variable (qui est affichée sur cet écran).
pour l'instant voila comment je m'y prend (grand débutant)
initialisation:
int pinBouton1 = 11; // Bouton 1 branché sur le pin 11
int pinBouton2 = 12; // Bouton 2 branché sur le pin 12
void setup() {
//définition des modes
pinMode(pinBouton1, INPUT_PULLUP);
pinMode(pinBouton2, INPUT_PULLUP);
Serial.begin(9600);
}
Puis dans mon Loop:
boolean etatBouton1 = digitalRead(pinBouton1);
boolean etatBouton2 = digitalRead(pinBouton2);
if (etatBouton1 == LOW) //test si bouton 1 appuyé pour decrementer
{
Decrementation ();
}
if (etatBouton2 == LOW) //test si bouton 2 appuyé pour incrementer
{
Incrementation();
}
if (etatBouton1 == LOW && etatBouton2 == LOW)// teste si 2 boutons appuyees
{
AllumeEcran ();
};
mes sous routines pour tester:
void AllumeEcran (void) {
led_allumee = !led_allumee; //inversion du bouléen
digitalWrite(pin_led, led_allumee ? HIGH : LOW);
}
void Decrementation (void) {
MaVarible = MaVarible - 0.10;
Serial.print("variable decremente : ");
Serial.println(MaVarible , 2);
delay(500);
}
void Incrementation (void) {
MaVarible = MaVarible + 0.10;
Serial.print("variable incremente : ");
Serial.println(MaVarible , 2);
delay(500);
}
Donc je fait juste la mise au point sur ce petit bout de code avant de l'intégrer.
Pour simuler L'envoie ou non vers l'écran j'allume simplement la led 13.
Tout marche a peu près comme je le voudrais, sauf que je n'arrive pas a trouver une solution simple pour maintenir en fonction mon affichage d'écran (pour test ma led 13) quelques secondes apres avoir fait un appuie simultané sur mes deux boutons.
Je suis preneurs de pistes. Merci par avance
Alain