

Das Programm würfelt auf Tasterdruck eine Zahl zwischen 1 und 6, simuliert im OLED-Display durch die Anzeige schnell aufeinander folgender zufälliger Ergebnisse den Würfelvorgang und zeigt anschließend die gewürfelte Zahl an.
Damit die Würfelaugen gut sichtbar angezeigt werden, ist das OLED um 90° nach rechts gedreht.
Die Würfelaugen:
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
So sieht es aus:

Benötigte Bauteile:
- Taster
- OLED-Display
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)

Benötigte Bibliotheken:
![]() | ![]() |
oder: Sketch -> Bibliothek einbinden -> Bibliotheken verwalten

⇒Funktionen der Bibilothek u8g2
Binde die benötigten Bibliotheken ein und definiere die Variablen. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include “U8g2lib.h” #include “Bounce2.h” int Minimum = 1; int Maximum = 7; int TASTER = 7; /* OLED initialisieren Controller: SH1106 oder SSD1306 es wird der Page buffer mode verwendet Typbezeichnung mit Bildschirmgröße in Pixeln 1 = page buffer mode, F = full screen buffer mode Hardware I2C Name des OLEDs Rotation R0 (keine) */ // 1,3 Zoll SH1106 // U8G2_SH1106_128X64_NONAME_1_HW_I2C oled(U8G2_R0, U8X8_PIN_NONE); // 0,96 Zoll SSD1306 U8G2_SSD1306_128X64_NONAME_1_HW_I2C oled(U8G2_R0, U8X8_PIN_NONE); // Bounce initialisieren Bounce Wuerfel = Bounce(); |
Der setup-Teil. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | void setup() { pinMode(TASTER, INPUT_PULLUP); // Taster Bounce zuordnen Wuerfel.attach(TASTER); Wuerfel.interval(20); oled.begin(); // Zufallsgenerator starten randomSeed(analogRead(A0)); // Farbe weiß oled.setDrawColor(1); // Position 90 Grad oled.clearDisplay(); oled.setFont(u8g2_font_t0_22_te); // oled.setDisplayRotation(U8G2_R1); oled.setFlipMode(1); // Hinweis anzeigen oled.firstPage(); do { oled.drawStr(2, 20, “Start”); oled.drawStr(2, 50, “->”); oled.drawStr(2, 80, “Taste”); } while (oled.nextPage()); oled.setDisplayRotation(U8G2_R0); oled.setFlipMode(1); } |
Im loop-Teil wird die Funktion Wuerfeln() aufgerufen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | void Wuerfeln() { int Zahl = random(Minimum, Maximum); oled.firstPage(); // Würfelaugen zeichnen // 1 if (Zahl == 1) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(60, 32, 8); } while (oled.nextPage()); } // 2 if (Zahl == 2) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(14, 14, 8); oled.drawDisc(112, 50, 8); } while (oled.nextPage()); } // 3 if (Zahl == 3) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(14, 14, 8); oled.drawDisc(60, 32, 8); oled.drawDisc(112, 50, 8); } while (oled.nextPage()); } // 4 if (Zahl == 4) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(14, 14, 8); oled.drawDisc(14, 50, 8); oled.drawDisc(112, 14, 8); oled.drawDisc(112, 50, 8); } while (oled.nextPage()); } // 5 if (Zahl == 5) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(14, 14, 8); oled.drawDisc(60, 32, 8); oled.drawDisc(112, 14, 8); oled.drawDisc(14, 50, 8); oled.drawDisc(112, 50, 8); } while (oled.nextPage()); } // 6 if (Zahl == 6) { do { oled.drawRFrame(0, 0, 128, 64, 5); oled.drawDisc(14, 14, 8); oled.drawDisc(60, 14, 8); oled.drawDisc(112, 14, 8); oled.drawDisc(14, 50, 8); oled.drawDisc(60, 50, 8); oled.drawDisc(112, 50, 8); } while (oled.nextPage()); } } |
Der loop-Teil:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | void loop() { // Taster abfragen if (Wuerfel.update()) { if (Wuerfel.read() == LOW) { // Würfeleffekt: Zufallszahlen in schneller Folge anzeigen // bedingt durch den Page buffer mode nicht sehr schnell for (int i = 0; i < 5; i++) { int Zahl = random(Minimum, Maximum); Wuerfeln(); delay(50); } } } } |
Verwandte Anleitungen:
- Laplace-Versuch
- LED-Matrix Würfeln
- Lottozahlen — Anzeige auf einem LCD
- Lottozahlen mit einem Ethernet-Shield
- Lottozahlen mit WiFi und NTP
- Lottozahlen — Anzeige auf einem OLED-Display
- Lottozahlen auf eine SD-Karte schreiben
- Lottozahlen mit Zeitstempel anzeigen und auf einer SD-Karte speichern
- Schneckenrennen
- Würfeln einstellige 7‑Segment-Anzeige und Fernbedienung
Letzte Aktualisierung:













