Arduino Tutorial: Der elektronische Würfel.

Jetzt zur Abwechslung ein Projekt, welches man verwenden kann. In diesen Kapitel werden wir einen elektronischen Würfel konstruieren. Diesen könnt ihr für jedes Würfelspiel, wie Kniffel oder Mensch ärgere dich nicht, verwenden. Dazu drücken wir auf einen Taster. Danach sollen die LEDs durcheinander leuchten. Nach einiger Zeit wird dann die Würfelzahl angezeigt.

 

 

Was benötigst du?

  • 1 x Arduino Uno

 

  • 1 x USB Kabel

 

  • 1 x Steckbrett

  

  • 7 x LED

 

  • 7 x Ohmscher Widerstand (220 Ohm)

 

  • 1 x Taster

 

  •  Jump Wire (Männlich)

 

 

Wie sieht die Schaltung aus?

 

 

Die grünen Leitungen sind für die ersten drei LEDs, die orange Leitung für die vierte und die violetten Leitungen für die letzten 3 LEDs.

 

 

Der Code

int led[] = {13,12,11,10,9,8,7};                              // Variablen für die LEDs

 

int augen[6][7] = {{0,0,0,1,0,0,0},                           // Würfelzahl 1

                   {1,0,0,0,0,0,1},                           // Würfelzahl 2

                   {1,0,0,1,0,0,1},                           // Würfelzahl 3

                   {1,0,1,0,1,0,1},                           // Würfelzahl 4

                   {1,0,1,1,1,0,1},                           // Würfelzahl 5

                   {1,1,1,0,1,1,1}};                          // Würfelzahl 6

                   

int button = 4;                                               // Variable für den Taster

int buttonStatus;                                             // Statusabfrage des Tasters

 

void setup() {

  for(int index = 0; index <= 6; index++)                     //

  {                                                           // 

                                                              //

     pinMode(led[index],OUTPUT);                              // LEDs als Ausgang definieren

                                                              //

  }                                                           //

 

  pinMode(button, INPUT);                                     // Taster als Eingang

                                                              // definieren

  digitalWrite(button, HIGH);                                 // Pull- Up- Widerstand

                                                              // aktivieren

}

 

 

void loop() { 

 

  buttonStatus = digitalRead(button);                         // Status des Tasters abfragen

 

  if (buttonStatus == LOW)                                    // Wenn Taster gedrückt

  {

 

     for(int index1 = 0; index1 <= 50; index1++)              // Liefer 51 Zufallszahlen

     {

        int zufall = random(0,6);                             // Gib eine zufällige Zahl

                                                              // zwischen 1 und 6 an

      

        for(int index2 = 0; index2 <= 6; index2++)

        {

           digitalWrite(led[index2], augen[zufall][index2]);

        }

 

        delay(50);

     }

  }                                                           // die 51. Zahl ist die

                                                              // gewürfelte Zahl

}

 

 

Den Sketch kannst du auch hier herunterladen.

 

 

Code Review

int zufall = random(0,6);                             // Gib eine zufällige Zahl

                                                      // zwischen 1 und 6 an

 

die random- Methode gibt wie oben beschrieben eine Zufallszahl an. Dazu übergebt ihr der Methode die niedrigste und die höchste Zahl als Parameter an.

 

 

 

 

 

Wenn du hier irgendetwas vermisst, bessere Ansätze hast oder dir etwas nicht klar ist, zögere nicht einen Kommentar zu hinterlassen.

Kommentar schreiben

Kommentare: 15
  • #1

    Justin Klinkert (Mittwoch, 17 Oktober 2018 08:20)

    Danke für deine Hilfe, weil ich echt schlecht mit Arduinos bin!

  • #2

    Bernd Klaus (Mittwoch, 14 November 2018 10:42)

    In eurer Schaltung fehlt auf der rechen Seite die Verbindung zu GND (an den Vorwiderständen), oder bin ich blind?

  • #3

    xXx (Freitag, 14 Dezember 2018 12:49)

    Echt hilfreich! Thx :D

  • #4

    Pascal (Mittwoch, 16 Januar 2019 15:11)

    Hey,
    Hat jemand der das hier sieht sowas schon mal bestellt oder könnt ihr mir sagen wo ich so etwas ohne Probleme bestellen kann dass auch alles zueinander passt?

  • #5

    leo (Samstag, 23 Februar 2019 07:47)

    Die 1 fällt nie.

    Oder bin ich doof.

  • #6

    Leonard und Schmastian (Donnerstag, 04 April 2019 10:52)

    Kann wer einen Fritzing code schicken?

  • #7

    Fuhr (Sonntag, 23 Juni 2019 11:20)

    Bei mir blinken alle LEDs wild durcheinander. Egal ob ich den Taster betätige oder nicht.

  • #8

    Fuhr (Sonntag, 23 Juni 2019 11:26)

    Fehler gefunden. Das letzte delay war zu kurz.

  • #9

    Professioneller Arduino Profi (Donnerstag, 19 Dezember 2019 09:14)

    Dieses Konstrukt eines elektronischen Würfels half mir, meiner Frau und meinen sechs Kindern Barnabas Arthur Arthus Fridolin Annabethe und Josefine bei unserem gemeinsamen Spieleabend sehr geholfen. Herzlichen Dank an den Ersteller des Projektes und der Seite

  • #10

    winfried (Donnerstag, 02 Januar 2020 23:33)

    Die an Pin 12 und 8 anliegenden LEDs lassen sich auch in Reihe schalten, da beide nur für die Würfelzahl 6 benutzt werden. Damit kann eine Pin-Belegung eingespart werden, etwa für die Erweiterung um einen zweiten Würfel. Der Vorwiderstand muss angepasst werden und im Code nach int led die Pinbelegung geändert und innerhalb der geschweiften Klammern bei in augen jeweils die 7 Stelle gestrichen werden.

  • #11

    winfried (Samstag, 04 Januar 2020 09:10)

    Zu kurz gesprungen! Die Anzahl der Pins lässt sich auf 5 reduzieren, da die an Pin 13 und 7 (alternativ 11 und 9) angeschlossenen Leds ausschließlich von den Würfelzahlen 4, 5 und 6 und dort immer im Doppelpack angesprochen werden und damit ebenfalls in Reihe geschaltet werden können.

  • #12

    winfried (Samstag, 04 Januar 2020 14:04)

    Oder auch nur 4: Pinbelegung der Augen:
    13-----12
    10-11--10
    12-----13
    Code:
    int led[] = {13,12,11,10};
    int augen[6][7] = {{0,0,1,0},{0,1,0,0},{0,1,1,0},{1,1,0,0},{1,1,1,0},{1,1,0,1}};

  • #13

    Professioneller Arduino Profi (Donnerstag, 13 Februar 2020 09:06)

    Dieser elektronische Würfel bereitete mir, meiner Frau und meinen sechs Kindern Barnabas, Arthur, Arthus, Fridolin, Annabethe und Josefine einen Haufen Spaß, Freude und tolle Spieleabende, doch ich fürchte ich bin aus dem Niveau der Anfänger Schwierigkeitsstufe heraus gewachsen. Ich werde meine Konzentration nun auf ein Gebilde der Schwierigkeitsstufe Fortgeschritten richten. Ich danke Ihnen für die vielen tollen Stunden voller Spaß und Freude. Meine Frau, die gleich auf Rechtschreibfehler kontrolllesen wird möchte auch noch etwas sagen. Guten Tag, ich bin die Frau des glorreichen professionellen Arduino Profis. Ich möchte Ihnen für die vielen Stunden voller Spaß und Freude danken, die ich mit meinem Mann und unseren sechs kindern Barnabas, Arthur, Arthus, Fridolin, Annabethe und Josefine verbringen durfte, da dieser Würfel uns sehr half als wir den Würfel aus unserer Mensch ärgere dich nicht Kollektion verloren. Freundliche Grüße an den Ersteller der Webseite. Vielleicht sehen wir uns ja bei der nächsten Demonstration im Hambacher Forst. Unsere sechs Kinder Barnabas, Arthur, Arthus, Fridolin, Annabethe und Josefine werden auch dabei sein. Um es wie ein Texaner zu sagen: "Yeee haaaaaw" Euer Doktor Professioneller Arduino Profi und seine Frau

  • #14

    geil (Donnerstag, 05 März 2020 13:03)

    gay

  • #15

    Theo (Samstag, 21 März 2020 16:53)

    Vielen dank für diese Erklärung