sitemap link mailform link home

Externe Interrupts

Beitrag vom 11. Januar 2017

Die Pins 2 und 3 des Arduino UNO können für die Auslösung von Hardware-Interrupts genutzt werden. Das heißt, dass man z.B. einen Taster anschließen kann. Dieser löst dann bei einer steigenden oder fallenden Flanke (LOW-HIGH oder HIGH-LOW) einen Interrupt aus.

Folgende Befehle sollten in der setup()-Funktion stehen:

int interruptNumber = 0; // Interrupt von Pin 2

Oder: int interruptNumber = 1; // Interrupt von Pin 3

attachInterrupt(interruptNumber, interruptRoutine, RISING); // LOW-HIGH-Flanke

Außerdem muss natürlich noch die eigentliche Interrupt Service Routine definiert werden:

void interruptRoutine() { Befehle...}

Noch eleganter ist übrigens die folgende Schreibweise:

attachInterrupt(digitalPinToInterrupt(pin), InterruptRoutine, RISING)

Die Funktion digitalPinToInterrupt ermittelt selbständig die richtige interruptNumber, die dem entsprechenden Pin zugeordnet ist.

Siehe auch:

Externer Link https://www.arduino.cc/en/Reference/attachInterrupt

Das folgende Beispiel ermöglicht das Ein- und Ausschalten einer Melodiefolge, die im Lautsprecher wiedergegeben wird. Der Taster an Pin 2 arbeitet als Toggle.

Der Taster "hängt" an +5 Volt, so dass bei geschlossenem Taster auch + 5 Volt an Pin 2 anliegen. Bei geöffnetem Taster "zieht" der Widerstand 10 kΩ das Potential an Pin 2 auf 0 Volt. Das Weglassen des Widerstandes führt meist zu einem chaotischen Verhalten, da atmosphärische Störungen oder Funksignale vom Smartphone usw. zu Potentialänderungen am Pin 2 führen würden. Sie können es gerne einmal ausprobieren - es kann dabei nichts kaputt gehen. Meist wird die LED flackern.

Der Kondensator 15 nF sorgt dafür, dass das sogenannte Tastenprellen gedämpft wird. Ganz perfekt funktioniert diese simple Methode aber nicht. Es gibt dafür spezielle Hardware bzw. Software, um das Problem professionell zu lösen. Für dieses einfache Beispiel ist es so aber ausreichend.

Zur Funktion als "Toggle"-Schalter:

Sobald der Taster einmal gedrückt wird, startet die Musik und die LED leuchtet.

Wenn der Taster ein zweites Mal gedrückt wird, dann erlischt die LED und die Musiksequenz wird noch bis zum Ende (max. 8 Töne) abgespielt und stoppt dann... usw.

Beachten Sie bitte auch, dass der Lautsprecher niemals direkt an einen Pin angeschlossen werden darf. Daher wurde ein 470-Ohm-Widerstand in Reihe zum Lautsprecher verwendet:

Fritzing

Hier der Programmcode:

-----------------------------------------------------------------------------

-----------------------------------------------------------------------------

.

Letzte Änderung:
October 05. 2018 10:52:47
«    top    »