| Arduino - UnterprogrammeEine große Programmierungshilfe stellen die Unterprogramme dar. Treten in einem
Sketch Programmteile auf, die sich mehrmals wiederholen, ist es sinnvoll, diese
zusammenzufassen und auszulagern. Dadurch gewinnt ein Hauptprogramm an Einfachheit und
Übersicht. Zusätzlich wird der Speicher für den Programmcode gespart. Ein ganz großer Vorteil
eines Unterprogramms stellt seine Wiederverwendbarkeit dar. Daher ist es sinnvoll, für
umfangreichere Unterprogramme eine solide Dokumentation zu erstellen. Unterprogramme werden
in anderen Programmierungssprachen breit verwendet und werden unterschiedlich benannt. Man
trifft auf Bezeichnungen wie Prozedur, Funktion, Routine, Subroutine, Methode, Modul u.a..
Unterprogramme werden mit einem Befehl aufgerufen. Grundsätzlich besteht die Möglichkeit, an
ein Unterprogramm diverse Variablen zu übergeben, mit denen das Unterprogramm arbeiten kann.
Des Weiteren ist es möglich, berechnete Werte von einem Unterprogramm zurückzuholen. Beispiel ohne Rückgabe:// ---------------------------------------------------------- // Unterprogramm "Diode" ohne Rückgabewerte
Die Aufgabe des Hauptprogramms ist es, beim Betätigen eines Schalters jeweils
eine Leuchtdiode mit unterschiedlicher Helligkeit einzuschalten. In zwei Arrays benennen wir
zunächst die PWM-Pins, an die wir die Dioden (mit Vorwiderstand) anschließen wollen und die
Pins, an die unsere Schalter angeschlossen werden. In void setup() deklarieren wir die Pins
entsprechend als Aus- und Eingänge. In void loop() schalten wir zunächst die Dioden aus, deren
zuständige Schalter nicht betätigt sind. Mit If-Abfragen untersuchen wir anschließend, ob ein
Schalter betätigt wurde. Sobald das der Fall ist, wird eine Diode mit einer festgelegten
Helligkeit eingeschaltet. In beiden Fällen, Diode Aus und Diode Ein, rufen wir das
Unterprogramm "Diode" auf. Beispiel mit Rückgabe:Es ist möglich, ein Unterprogramm z.B. eine mathematische Berechnung durchführen zu lassen und sich das Ergebnis anschließend zurückzuholen. Das zweite Beispiel wurde, um diese Eigenschaft zu verdeutlichen, etwas erweitert. Wir wollen jetzt zusätzlich, nachdem der erste Schalter betätigt wurde, auf dem seriellen Monitor sehen, mit welcher Helligkeit, ausgedrückt in %, die erste Leuchtdiode leuchtet. In dem Unterprogramm "Diode" wird die entsprechende Berechnung durchgeführt. Dazu definieren wir eine neue Integer Variable "Prozent". Jetzt heißt es: int Prozent = Wert * 100 / 255;. Das Ergebnis der Operation können wir dann durch Aufruf von "Diode" erfahren. Mit int Diode (int PinNr, int Wert) deklarieren wir den Typ des Ergebnisses. Der Aufruf von "Diode" erfolgt jetzt mit int x = Diode (LedPin [0], 25);. In der hier definierten Variable x ist das Ergebnis (Rückgabewert der Funktion) versteckt und kann weiter verwendet werden. // ---------------------------------------------------------- // Unterprogramm "Diode" mit Rückgabewert
Arduino_Programmierung
|