Arduino Würfel

Arduino Würfel Titelbild

Ein Würfel ist eine wirklich tolle Sache. Denn wenn man länger darüber nachdenkt, wäre es sonst ziemlich schwer eine zufällige Zahl heraus zu finden und viele Brettspiele wären damals nur schwer möglich gewesen. Doch auch der Arduino bietet die Möglichkeit, Zufallszahlen zu erzeugen. Deswegen ist es das Ziel dieses Projekts, einen Würfel mit dem Arduino zu bauen. Wir werden dafür 7 LEDs auf einem Breadboard so anordnen, dass sie einem Würfel gleichen. Das Schütteln werden wir mit dem Neigungsschalter überwachen.

Anschlüsse Arduino Anschlüsse Breadboard
IO12 LED 1, + Seite
IO7 LED 2, + Seite
IO2 LED 3, + Seite
IO4 LED 4, + Seite
IO11 LED 5, + Seite
IO5 LED 6, + Seite
IO3 LED 7, + Seite
GND LEDs, - Seite
IO13 Kippschalter, + Seite (Kannst du dir aussuchen)
GND Kippschalter, - Seite
int led[7] = {12,7,2,4,11,5,3};
int schalter = 13;

void setup() {
  for(int i=0;i<=6;i++){
    pinMode(led[i], OUTPUT);
  }
  pinMode(schalter, INPUT);
}

void loop() {
  if(digitalRead(schalter) == 1){
      for(int i=1;i<=5;i++){
      wurfelDarstellen(random(1,7));
      delay(100);
    }
  }

}

void wurfelDarstellen(int zahl){
  for(int i=0;i<=6;i++){
    digitalWrite(led[i], LOW);
  }

  if(zahl == 1){
    digitalWrite(led[3], HIGH);
  }
  else if(zahl == 2){
    digitalWrite(led[2], HIGH);
    digitalWrite(led[4], HIGH);
  }
  else if(zahl == 3){
    digitalWrite(led[2], HIGH);
    digitalWrite(led[3], HIGH);
    digitalWrite(led[4], HIGH);
  }
  else if(zahl == 4){
    digitalWrite(led[0], HIGH);
    digitalWrite(led[2], HIGH);
    digitalWrite(led[4], HIGH);
    digitalWrite(led[6], HIGH);
  }
  else if(zahl == 5){
    digitalWrite(led[0], HIGH);
    digitalWrite(led[2], HIGH);
    digitalWrite(led[3], HIGH);
    digitalWrite(led[4], HIGH);
    digitalWrite(led[6], HIGH);
  }

  else if(zahl == 6){
    digitalWrite(led[0], HIGH);
    digitalWrite(led[1], HIGH);
    digitalWrite(led[2], HIGH);
    digitalWrite(led[4], HIGH);
    digitalWrite(led[5], HIGH);
    digitalWrite(led[6], HIGH);
  }
}

Den Code erklärt

Da wir das alles schon hatten und auch die ganzen Komponenten schon bekannt vorkommen, nur nochmal zusammengefasst: Arrays, for Schleife, if Bedingungen und das Erstellen von eigenen Funktionen. Die größte Neuerung ist die random() Funktion. Dieser Funktion können bis zu zwei Parameter übergeben werden und gibt als Rückgabe eine Zufallszahl zurück. Die Funktion wird bei dem Programm in Zeile 14 aufgerufen. wurfelDarstellen(random(1,7)); Was dieser Befehl aussagt, ist, dass der Funktion wurfelDarstellen() ein Parameter übergeben wird. Doch dieser Parameter ist nicht schon fest definiert, sondern ist der Rückgabewert einer weiteren Funktion. random(1,7) gibt eine zufällige zwischen 1 und 7 zurück. Wir können uns deswegen merken, dass wir als Parameter für eine Funktion auch eine weitere Funktion aufrufen können, solange diese Funktion einen Rückgabewert hat, den die erste Funktion benutzen kann. Wichtig ist zu sagen, dass Zeile 14 nur dann aufgerufen wird wenn a) der Neigungsschalter aktiviert wurde und b) läuft in Zeile 13 zuerst noch eine for-Schleife, damit auch noch ein wenig Bewegung in die LEDs kommt.

Doch was macht jetzt wurfelDarstellen() mit dem Parameter? Diese Funktion geht von Zeile 21 bis 60. Diese Funktion macht quasi die Hauptarbeit mit den LEDs, denn sie verwandelt eine Zahl in eine Darstellung der Würfelform. Denn wir dir vielleicht schon aufgefallen ist, haben Würfel ja nicht die normalen Zahlen von 1 bis 6 sondern Punkte. In Zeile 21 bis 24 wird erstmal dafür gesorgt, dass alle LEDs aus sind. In den nächsten if Bedingungen werden dann jeweils die LEDs eingeschaltet, die gebraucht werden, um die Zahlen als Punkte darzustellen. Et voila. Fertig ist Würfel.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!