enum - Auf­zäh­lun­gen

Lese­zeit: 3 Minu­ten

enum kann die Defi­ni­ti­on einer grö­ße­ren Anzahl Varia­blen vom Typ int ver­ein­fa­chen. Das ers­te Ele­ment erhält den Wert 0, jedes wei­te­re wird um 1 hoch­ge­zählt.

Das Bei­spiel­pro­gramm defi­niert die Wochen­ta­ge als Auf­zäh­lung.

enum Wochentage 
{
  Sonntag, 
  Montag, 
  Dienstag, 
  Mittwoch, 
  Donnerstag,
  Freitag,
  Samstag 
};

void setup() 
{
  Serial.begin(9600); 

  // Startwert → Sonntag, Endwert → Samstag 
  for (int i = Sonntag; i <= Samstag; i++)
  { 
    Serial.print(i); Serial.print("\t"); 
  }
  Serial.println();
  Serial.print("So\tMo\tDi\tMi\tDo\tFr\tSa");
} 

void loop()
{
  // bleibt leer, Programm läuft nur einmal 
}

Der Start­wert des ers­ten Ele­ments kann auch gesetzt wer­den:

enum Farben 
{ 
  // Startwert festlegen 
  GRUEN = 3, 
  WEISS, 
  ROT, 
  BLAU,
  GELB 
}; 

Das Bei­spiel­pro­gramm zeigt die Wer­te der Auf­zäh­lung an:

enum Farben 
{
  GRUEN = 3, 
  WEISS, 
  ROT, 
  BLAU, 
  GELB 
};

void setup() 
{
  Serial.begin(9600); 

  // Startwert → GRUEN, Endwert → GELB 
  for (int i = GRUEN; i <= GELB; i++)
  { 
    Serial.print(i); Serial.print("\t"); 
  }
  Serial.println();
  Serial.print("GRUEN\tWEISS\tROT\tBLAU\tGELB");
} 

void loop()
{
  // bleibt leer, Programm läuft nur einmal 
}

Ein wei­te­res Bei­spiel. Lauf­licht:

enum Farben
{
  GRUEN = 3,
  WEISS,
  ROT,
  BLAU,
  GELB
};

void setup()
{
  // pinMode: Startwert → GRUEN, Endwert → GELB 
  for (int i = GRUEN; i <= GELB; i++)
  {
    pinMode(i, OUTPUT);
  }
}

void loop()
{
  for (int i = GRUEN; i <= GELB; i ++)
  {
    // aktuelle LED i einschalten
    digitalWrite(i, HIGH);
    delay(200);

    // aktuelle LED i ausschalten
    digitalWrite(i, LOW);
  }
}

Varia­ble

Letzte Aktualisierung: 28. Aug 2020 @ 17:18