Go Down

Topic: Arduino uno - interruption pour comptage (Read 370 times) previous topic - next topic

zoilgust

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

}

}


zoilgust

ah c'est bon ... en fait j'ai donné la reponse dans ma question

j'ai fait un programme de changement d'etat et ça fonctionne ;)

maintenant je cherche à n'afficher qu'une impulsion sur 4, je vais y arriver !

Go Up