Arduino: Interrupts

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Prof. Dr.-Ing. Schneider Bei einem Interrupt wird durch ein Ereignis, beispielsweise ein Signal von außen, das Hauptprogramm gestoppt und ein anderes Programm ausgeführt. Das externe Signal kann zum Beispiel ein kurzer Puls von einem sich drehenden Magneten sein. Damit jedes Signal des sich drehenden Magneten auch gezählt wird, kann damit ein Interrupt ausgelöst werden, der einen Zähler um 1 erhöht. attachInterrupt() Diese Funktion löst mittels Signal an einem definierten digitalen Port einen Interrupt aus, der eine wählbare Programmfunktion aufruft. attachInterrupt(InterruptNummer, Funktion, Mode) Parameter InterruptNummer Die Arduino-Standardboards können zwei Interrupts erfassen, die die Nummer 0 (angeschlossen an Pin 2) und die Nummer 1 (angeschlossen an Pin 3) besitzen. Parameter Funktion Durch das Erkennen des Eingangssignals an den erwähnten Ports kann eine auszuführende Funktion angegeben werden.

Parameter Mode Dieser Parameter gibt an, bei welcher Signaländerung ein Interrupt ausgelöst werden soll. LOW: Löst den Interrupt aus, wenn Pin auf LOW geht. CHANGE: Löst den Interrupt aus, wenn sich das Signal am Pin ändert. RISING: Löst den Interrupt aus, wenn sich das Signal von LOW auf HIGH ändert. FALLING: Löst den Interrupt aus, wenn sich das Signal von HIGH auf LOW ändert.

Beispiel

Die Funktion alarm wird bei ansteigendem Signal an Pin 2 ausgeführt.

include attachInterrupt(0, alarm, RISING);
void alarm()
{
// Anweisungen
}

detachInterrupt() Schaltet den Interrupt aus. detachInterrupt(InterruptNummer) InterruptNummer: 0 oder 1 (bei Arduino-Standardboards)

Quelle: [1]

Nützliche Befehle

Befehl Funktion
attachInterrupt(InterruptNummer, Funktion, Mode) Diese Funktion löst mittels Signal an einem definierten digitalen Port einen Interrupt aus, der eine wählbare Programmfunktion aufruft.
InterruptNummer Die Arduino-Standardboards können zwei Interrupts erfassen, die die Nummer 0 (angeschlossen an Pin 2) und die Nummer 1 (angeschlossen an Pin 3) besitzen.
Parameter Funktion Masse (GND)
Parameter Mode Dieser Parameter gibt an, bei welcher Signaländerung ein Interrupt ausgelöst werden soll.

LOW: Löst den Interrupt aus, wenn Pin auf LOW geht.
CHANGE: Löst den Interrupt aus, wenn sich das Signal am Pin ändert.
RISING: Löst den Interrupt aus, wenn sich das Signal von LOW auf HIGH ändert.
FALLING: Löst den Interrupt aus, wenn sich das Signal von HIGH auf LOW ändert.

detachInterrupt(InterruptNummer) Schaltet den Interrupt aus.

InterruptNummer: 0 oder 1 (bei Arduino-Standardboards)

Videos

YouTube: Interrupts am Arduino einsetzten

Literatur

  1. Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL



→ zurück zum Hauptartikel: Informatikpraktikum 1: Arduino Praxiseinstieg