Les interruptions dans Arduino sont un moyen de détourner le programme principal pour exécuter une routine d’interruption en réponse à un événement spécifique. Les interruptions permettent aux programmes de réagir rapidement à des entrées provenant de boutons-poussoirs, de capteurs, etc., sans affecter les autres tâches en cours d’exécution.
Il y a deux types d’interruptions dans Arduino : les interruptions externes et les interruptions pin change.
Les interruptions externes se produisent lorsque le niveau logique change sur une broche désignée, ce qui peut être utilisé pour détecter un bouton-poussoir enfoncé ou relâché. Elles peuvent être déclenchées par un changement de niveau logique sur une broche définie en utilisant la fonction attachInterrupt().
Les interruptions pin change se produisent lorsque la valeur logique change sur n’importe quelle broche qui a été configurée pour les interruptions pin change. Elles peuvent être déclenchées en utilisant la fonction PCintPort.
Voici un exemple simple d’utilisation des interruptions externes dans Arduino :
const int bouton = 2; // Broche du bouton-poussoir
int compteur = 0; // Compteur de pressions de bouton
void setup() {
pinMode(bouton, INPUT_PULLUP); // Configurer la broche comme entrée avec une résistance de pull-up
attachInterrupt(digitalPinToInterrupt(bouton), compteurBouton, FALLING); // Attacher une interruption pour détecter les chutes de niveau logique
}
void loop() {
// Votre code principal ici
}
void compteurBouton() {
compteur++; // Incrémenter le compteur à chaque pression de bouton
}
Il est important de noter que les interruptions peuvent affecter les performances de votre programme, car elles interrompent le code principal pour exécuter la routine d’interruption. Il est donc important de minimiser le temps d’exécution de la routine d’interruption et de ne pas utiliser d’interruptions pour des tâches qui peuvent être accomplies par le code principal.