Je ne sais pas comment marche ta librairie mais si elle utilise des fonctions genre "delay" c'est normal que ca ne marche pas puisque une interruption (tel que ton "blink") désactive les delays.
Dans un premier temps tu peux essayer de mettre une LED en sortie et de lui faire changer d'état à chaque fois que tu appuies sur le bouton :
void blink() // la fonction appelée par l'interruption externe n°0
{
static int etat = HIGH; //déclare la variable et la garde en mémoire
digitalWrite(maSortie, etat);
etat = !etat;
}
C'est assez simple à faire en fait, il suffit de mettre dans un booléen l'état du bouton. Ensuite, tu compares l'état actuel de ton bouton par rapport à ce que t'as enregistré dans le booléen
j'ai un switch qui est relié à la pin3 de mon arduino.
[...]
int pin = 3;
[...]
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, FALLING); // attache l'interruption externe n°0 à la fonction blink
Je ne sais pas si attachInterrupt(0, blink, FALLING) va attacher l'ISR blink à l'interruption externe émise par le pin 3 sur front descendant, néanmoins, mettre la pin 3 en sortie et la brancher sur un interrupteur me semble étrange.
Sauf erreur de ma part, l'interruption 0 correspond à la broche 2 (et non pas 3)...
@olyte : Ce que tu proposes est une vérification de temps en temps de l'état du bouton. Ca ne marchera que si le programme n'est pas trop long. Dans l'exemple ca devrait effectivement être OK, mais si le programme était trèèèès long, il y aurait un effet de "lag" sur le bouton.
Après il n'y a pas de solution universelle, tout dépend de l'utilisation et du comportement recherché...
@alex : Ce que tu peux faire c'est déjà t'assurer que le bouton est branché sur la bonne broche, mettre cette dernière en entrée puis ensuite déclarer l'interruption et faire clignoter une LED avec cette dernière. Ensuite essaie de rajouter ta transmission avec l'écran.
[Arduino] Incrémenter une valeur lors d'un flanc descendant
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !