Metho­den

Lese­zeit: 4 Minu­ten

Die Pro­gram­mier­spra­che bie­tet die Mög­lich­keit, häu­fig ver­wen­de­te Befeh­le in einem geson­der­ten Pro­gramm­teil (einer Metho­de) „aus­zu­la­gern“.

Jede Metho­de muss außer­halb des setup- und des loop-Teils ste­hen.

Bei­spiel:

void LEDBlinken()  
{ 
   digitalWrite(LED, HIGH); 
   delay(500); 
   digitalWrite(LED, LOW); 
   delay(500);  
}

Die Metho­de LED­Blin­ken kann jetzt belie­big oft im loop-Teil auf­ge­ru­feń wer­den.

int LED = 7;

void setup()
{
  pinMode(LED, OUTPUT);
}

void loop()
{
  LEDBlinken();
}

void LEDBlinken()  
{ 
   digitalWrite(LED, HIGH); 
   delay(500); 
   digitalWrite(LED, LOW); 
   delay(500);  
} 

Metho­den kön­nen auch mit Para­me­tern auf­ge­ru­fen wer­den:

Bei­spiel Über­ga­be von Varia­blen 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 Pro­gramm 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);
   }
 } 

Bei­spiel Über­ga­be eines Arrays:
Das Pro­gramm erfragt eine Zahl und stellt die Viel­fa­chen im Zah­len­raum bis 100 dar.

Das dazu­ge­hö­ri­ge Pro­gramm:

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();
}

Funk­tio­nen Array

Letzte Aktualisierung: 21. Jun 2020 @ 18:00