Bonjour
ceci explique peut être cela ! ![]()
teste çà
const int buttonPin = 2; //assigne le bouton à la pin2
const int ledPin = 8; //assigne la led 1 à la pin8
const int ledPin2 = 9; //assigne la led 2 à la pin9
int buttonstate = 0; //le bouton est initialement à l'état bas
volatile int comptageImpulsion=0; //le compteur d'impulsions est initialement à 0
void setup(){
pinMode(buttonPin,INPUT); //entree numérique 2
pinMode(ledPin,OUTPUT); //sortie numérique 8
pinMode(ledPin2,OUTPUT); //sortie numérique 9
Serial.begin(115200);
attachInterrupt(0, gestionINT0, RISING); // attache l'interruption externe n°0 à la fonction gestionINT0()
}
void loop(){
buttonstate = digitalRead(buttonPin);
if (buttonstate == HIGH) { //si le bouton est à l'état haut
digitalWrite(ledPin,HIGH); //le courant est envoyé sur la borne 2, la LED s’allume
}
int state= comptageImpulsion % 4; // modulo
if (state==3 ) //Utilisation Modulo si le comptage d'impulsion est le 4éme
{
digitalWrite(ledPin2,LOW); //le courant est coupé sur la borne 9, la LED s’éteind
delay (500); //pendant 500ms pour visualiser la coupure
}
digitalWrite(ledPin2,HIGH); //le courant est envoyé sur la borne 9, la LED s’allume
}
void gestionINT0() //la fonction appelée par l'interruption externe n°0
{
comptageImpulsion=comptageImpulsion+1; //incrémente la variable de comptage
Serial.print("Nombre impulsions = ");
Serial.println(comptageImpulsion); //permet de visualiser le nombre d'impulsion sur le moniteur série
}