Créer une interruption externe dans Arduino

Adruino a plusieurs types d'interruptions.L'interruption est un processus par lequel arduino arrête sa tâche régulière ou arrête sa boucle et passe à la fonction d'interruption pour terminer la tâche de fonction d'interruption donnée.Interruption externe créée en externe.Il n'y a que deux broches d'interruption externes dans arduino uno . Il s'agit de la broche numérique 2 et de la broche numérique 3.

Après l'initialisation de l'interruption externe s'il y a un changement de signal dans cette broche. Ensuite, cela créera une interruption externe.

Étape 1: broches d'interruption externes

L'Arduino uno a deux broches d'interruption externes Digital pin 2 et Digital pin 3.

L'Arduino Mega a 6 broches d'interruption externes, broche numérique 2, broche numérique 3, broche numérique 21, broche numérique 20, broche numérique 19 et broche numérique 18.

Étape 2: Fonction Arduino AttachInterrupt ()

La fonction attachInterrupt () est utilisée pour créer une interruption externe.

Syntaxe
attachInterrupt (interruption, ISR, mode)

attachInterrupt (broche, ISR, mode) (Arduino Due uniquement)

Paramètres

interruption: le numéro de l'interruption (int)

broche: le numéro de broche (Arduino Due uniquement)

ISR: l'ISR à appeler lorsque l'interruption se produit; cette fonction ne doit prendre aucun paramètre et ne retourner rien. Cette fonction est parfois appelée service de routine routine.mode: définit le moment où l'interruption doit être déclenchée. Quatre constantes sont prédéfinies en tant que valeurs valides:

(1) LOW: pour déclencher l'interruption chaque fois que la broche est basse,

(2) CHANGE: pour déclencher l'interruption chaque fois que la broche change de valeur

(3) RISING: pour se déclencher lorsque la broche passe de bas en haut,

(4) CHUTE: pour quand la goupille passe de haut en bas.

La carte Due permet également:

HIGH pour déclencher l'interruption chaque fois que la broche est haute. (Arduino Due uniquement)

Retour:

aucun.

Vous pouvez également le voir sur la page arduino.Link: //www.arduino.cc/en/Reference/AttachInterrup ...

Étape 3: écriture d'un code d'interruption externe (étape 1)

But à faire: Nous allons initialiser notre aruino pour détecter l'interruption externe dans la broche numérique 2. Grâce à cette interruption externe, nous voulons terminer une tâche.La tâche consiste à basculer la LED sur la broche 13. allumé, puis après avoir obtenu l'interruption externe, la broche 13 est désactivée.

NB: Dans la fonction d'interruption, delay () et millis () ne fonctionnent pas, mais vous ne pouvez utiliser que delayMicroseconds ().

Faisons le.......

Étape 4: Écriture d'un code d'interruption externe (Void Setup ()) (étape-2)

Dans la configuration vide (), nous devons initialiser la broche numérique 13 en tant que fonction de sortie et d'interruption attatchInterrupt ().

void setup()

{

pinMode (13, SORTIE);

attachInterrupt (0, clignotement, CHUTE);

}

Ici, la broche 13 est déclarée comme sortie. Dans la fonction attachInterrupt (), le premier paramètre est "0" .Ceci est zéro parce que nous utiliserons la broche numérique 2 comme interruption externe. Ici "clignotement" est une fonction d'interruption. Vous pouvez donner n'importe quel nom si vous voulez.Il y a quatre états en mode, ils sont LOW, CHANGE, RISING, FALLING et un supplémentaire pour Arduino en raison de HIGH.Nous utilisons FALLING.Arduino fonctionne en signal numérique.Dans le signal numérique a quatre états.Ils sont illustrés dans la figure Nous utilisons FALLING, cela signifie que chaque fois que la broche 2 détecte un signal de front descendant, il ira en fonction d'interruption et terminera la tâche.

Étape 5: Écriture d'un code d'interruption externe (boucle vide ()) (étape 3)

Normalement, dans ce code, nous ne faisons rien dans la boucle, mais vous pouvez ajouter n'importe quel type de tâche à travers le code.Donc dans mon cas:

boucle vide ()

{

// Ajoutez votre tâche

}

Étape 6: Écriture d'un code d'interruption externe (Void Blink ()) (étape 4)

Maintenant, nous allons écrire la fonction d'interruption "clignotant". Puisqu'il s'agit d'une fonction d'interruption. Donc, dans cette fonction, nous ne pouvons pas utiliser delay () et millis ().

vide clignote ()

{

digitalWrite (13, ! digitalRead (13)); // Basculer la LED sur la broche 13

}

Étape 7: Écriture d'un code d'interruption externe (code final) (étape 5)

void setup()

{

pinMode (13, SORTIE);

attachInterrupt (0, clignotement, CHUTE);

}

boucle vide ()
{

// Ajoutez votre tâche

}

vide clignote ()

{

digitalWrite (13, ! digitalRead (13)); // Basculer la LED sur la broche 13

}

Articles Connexes