#include "bouton.h" #include "rgb_lcd.h" //Constructeur bouton::bouton() : capteur(), etat(0) {} bouton::bouton(int pin) : capteur(pin), etat(0) {} //Accesseur de etat bool bouton::lire_etat() { int buttonState = digitalRead(this->getpin()); if (buttonState == HIGH) { this->etat = 1; // Met à jour etat } else { this->etat = 0; // Met à jour etat } return this->etat; } // Redéfinition de l'opérateur bool bouton::operator!() const { return this->etat == 0; } bool choix_bouton(bouton &Brelief, bouton &Bplat) { //Attends que les 2 bouttons soient relachés while (!(!Brelief) || !(!Bplat)) { Brelief.lire_etat(); Bplat.lire_etat(); delay(10); } //Attends que l'un des boutons soit appuyé while (!Brelief && !Bplat) { Brelief.lire_etat(); Bplat.lire_etat(); delay(10); } //Stocke l'état des boutons bool reliefPresse = Brelief.lire_etat(); bool platPresse = Bplat.lire_etat(); //Boucle qui renvoie 1 si bouton relief et renvoie 0 si bouton plat if (reliefPresse) { while (Brelief.lire_etat() == 1) { delay(10); } return 1; } else if (platPresse) { while (Bplat.lire_etat() == 1) { delay(10); } return 0; } return 0; };