Die Programmiersprache bietet die Möglichkeit, häufig verwendete Befehle in einem gesonderten Programmteil (einer Methode) „auszulagern“.
Jede Methode muss außerhalb des setup- und des loop-Teils stehen.
Beispiel:
void LEDBlinken()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
Die Methode LEDBlinken kann jetzt beliebig oft im loop-Teil aufgerufeń werden.
int LED = 7;
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
LEDBlinken();
}
void LEDBlinken()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
Methoden können auch mit Parametern aufgerufen werden:
Beispiel Übergabe von Variablen vom Typ int:
/*
LED -> ROT, GELB, GRUEN
Leuchtdauer -> Einschalten/Ausschalten in Millisekunden
AnzahlBlinken -> Anzahl der Blinkvorgänge
*/
void LEDBlinken(int LED, int LeuchtDauer, int AnzahlBlinken)
{
for (int i = 0; i < AnzahlBlinken; i++)
{
digitalWrite(LED, HIGH);
delay(Leuchtdauer);
digitalWrite(LED, LOW);
delay(Leuchtdauer);
}
}
Das Programm sieht dann so aus:
int ROT = 7;
int GELB = 8;
int GRUEN = 9;
int Leuchtdauer;
int AnzahlBlinken;
void setup()
{
pinMode(ROT, OUTPUT);
pinMode(GELB, OUTPUT);
pinMode(GRUEN, OUTPUT);
}
void loop()
{
/*
LED -> ROT, GELB, GRUEN
Leuchtdauer -> Einschalten/Ausschalten in Millisekunden
AnzahlBlinken -> Anzahl der Blinkvorgänge
*/
LEDBlinken(ROT, 100, 3);
LEDBlinken(GELB, 200, 4);
LEDBlinken(GRUEN, 300, 5);
}
void LEDBlinken(int LED, int LeuchtDauer, int AnzahlBlinken)
{
for (int i = 0; i < AnzahlBlinken; i++)
{
digitalWrite(LED, HIGH);
delay(Leuchtdauer);
digitalWrite(LED, LOW);
delay(Leuchtdauer);
}
}
Beispiel Übergabe eines ➨Arrays:
Das Programm erfragt eine Zahl und stellt die Vielfachen im Zahlenraum bis 100 dar.
Das dazugehörige Programm:
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Array erstellen
int Zahlen[100];
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
int Divisor = Serial.parseInt();
// Enter/Senden gedrückt
if (Serial.read() == '\n')
{
int Laenge = sizeof(Zahlen) / sizeof(Zahlen[0]);
// Array mit Zahlen füllen
for (int i = 1; i <= Laenge; i++)
{
Zahlen[i] = i;
}
Serial.println("Die durch " + String(Divisor) + " teilbaren Zahlen im Zahlenraum bis " + String(Laenge) + " sind:");
Serial.println("---------------------------------------------------");
/*
Ergebnisse mit der Methode ErgebnisAnzeigen anzeigen
übergebene Parameter:
Array Zahlen
Divisor
Länge des Arrays
*/
ErgebnisAnzeigen(Zahlen, Divisor, Laenge);
}
}
}
void ErgebnisAnzeigen(int Zahlen[], int Divisor, long Laenge)
{
// mit Hilfe der Funktion modulo wird ermittelt,
// ob die Zahl durch den Divisor teilbar ist
for (int i = Divisor; i < Laenge; i++)
{
if (Zahlen[i] % Divisor == 0) Serial.print(String(Zahlen[i]) + ", ");
}
Serial.println();
}


Letzte Aktualisierung: