Les interruption externes peuvent être câblées sur les broches 2 et 3 de l'ATmega 328. On utilisera la fonction attachInterrupt() pour configurer la gestion des interruptions externes.
#define PIN_2 0 #define PIN_3 1 void traitementSurInterruption(); void setup() { attachInterrupt(PIN_2, traitementSurInterruption, RAISING); }
Le troisième argument est une constante, le mode de déclenchement de l'interruption qui prendra une des valeurs suivantes: LOW, CHANGE, RAISING, FALLING.
Le temps du traitement de l'interruption externe (lors de l’exécution du gestionnaire d'interruption), les interruptions internes ne sont pas prises en compte et les fonctions qui les utilises peuvent être perturbées notamment:
Le gestionnaire d’interruption doit être le plus court possible.
Si, dans un partie spécifique du programme on souhaite éviter que le traitement soit interrompu par des interruptions on peut faire appel à la fonction noInterrupt() puis réactiver les interruptions avec interrupts(). Lorsque noInterrupts() est appelée, les fonctions delay(), milli() Serial() utilisant les interruptions internes ne fonctionneront pas jusqu’à ce que la fonction interrupts() soit appellée.