Dies ist eine alte Version des Dokuments!
Wenn in der Informatik bestimmte Abschnitte an verschiedenen Stellen gleich sind, werden sie oft in Methoden ausgelagert, damit das Programm übersichtlicher bleibt. Diese Methoden können dann an diesen Stellen aufgerufen werden.
Außerdem hat man die Möglichkeit einer Methode Werte in Form von sogenannten Parametern zu übergeben. Diese können dann in der Methode verwendet werden. Auch kann die Methode etwas zurück geben, diese Werte heißen dann Rückgabewerte.
Die Arduino-Plattform bringt schon viele Methoden/Funktionen mit, die benutzt werden können und nicht erst selbst geschrieben werden müssen. Der Vorteil einer Methode ist es, dass man kleine Einheiten hat, die getestet werden können, wenn man einen Fehler hat. Zusätzlich bleibt der Programmcode übersichtlicher und der Code ist auch nicht doppelt geschrieben. Wenn ein Fehler gefunden wurde, muss er so nur an einer Stelle behoben werden.
Ein Beispiel für eine Methode ohne Parameter und Rückgabewert:
void doSomething() { Serial.println ("Hallo"); }
Dabei steht das „void“ dafür, dass keine Rückgabe erwartet wird.
Immer wenn die Methode mit dem Methodennamen
doSomething();
im Programm aufgerufen wird, schreibt dieses „Hallo\“ in den Serialmonitor.
Nun ein Beispiel für eine Parameterübergabe und einen Rückgabewert:
int sum(int k) //Parameter k vom Typ Integer { int summe = 0 for (i=0; i<=k; i++) { summe = summe + i; } return summe } //das Pragramm berechnet die Summe von 1 bis k
Hier sind gleich mehrere Sachen zu sehen. Als erstes zum Parameter k, der hier ein Integer ist. Innerhalb dieser Methode ist nun k der Wert, der übergeben wurde. Außerhalb der Methode ist k jedoch nicht bekannt! Dann sehen wir, dass diesmal nicht „void“ vor dem Methodennamen steht, sondern „int“. Das bedeutet, dass hier ein Rückgabewert vom Typ Integer erwartet wird. Dieser wird dann mit „return“ zurück gegeben. Diese Methode kann im Programm mit dem Methodennamen und einem Wert für k aufgerufen werden:
int sum; sum = sum(5); //Parameter k=5
Nach dieser Zeile ist dann $sum=15$.
In den Klammern können auch Ausdrücke stehen, die erst noch berechnet werden müssen oder andere Methoden aufgerufen werden, die einen entsprechenden Typen zurückgeben:
sum = sum(2+3); //Parameter k=5 sum = sum(2+sum(2));