Salut à tous,
je debute dans la programmation de l'arduino.
j'ai fait pas mal de recherches avec google, j'en ai la tete pleine, je m'avoue vaincu car j'atteint mes limites de competence.
j'ai bien trouvé la fonction mais je n'arrive pas à l'adapter à mon cas.
j'ai créé un programme qui compte des impulsions via un interrupteur.
tout simple.
quand l'interrupteur est ouvert par de soucis, il ne se passe rien dans le moniteur
quand il est fermé et qu'il reste fermé l'incrementation continue, logique.
je cherche à ne compter que le changement d’état.
j'ai bien vu la fonction interrupt mais je n'arrive pas à m'en servir.
voici mon programme, et merci d'avance
const int APPUI=1; // constante état du BP - appui sur niveau bas
const int PAS_APPUI=0; // constante état du BP - relâché sur niveau haut
const int BP=2; //declaration constante de broche (interrupteur)
// Les variables sont modifiées au cours du programme
int buttonPushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int buttonState = 0; //Variable pour l'état actuel du bouton poussoir
int lastButtonState = 0; // Variable pour l'état précédent du bouton poussoir
int ETAT_BP=0; // variable témoin de l'état du BP
void setup() {
pinMode(BP, OUTPUT); //met la broche en entree
Serial.begin(9600);
}
void loop(){ // debut de la fonction loop()
// --- ici instructions à exécuter par le programme principal ---
ETAT_BP=digitalRead(BP); // lit l'état du BP et met la valeur 0/1 dans la variable
if (ETAT_BP==APPUI){ // si l'état du BP est appuyé (càd si variable état BP = 0)
buttonPushCounter++;
// affiche les messages sur le PC
Serial.println("APPUI");
Serial.print("nombre d'appuis: ");
Serial.println(buttonPushCounter, DEC); // affiche la valeur au format décimal
}
}