Wenn der Taster gedrückt wird, würfelt der Arduino eine Zahl zwischen 1 und 6. Bevor das Ergebnis angezeigt wird, zeigt die LED-Matrix in schneller Folge zufällig ausgewählte Zahlen.
Die einzelnen LEDs werden in Reihen und Spalten angesprochen.
Die Schreibweise für jede Reihe kann binär angegeben werden: 0 = aus, 1 = an. Den Werten wird ein "B" vorangestellt.
Die LED-Matrix wurde in das Steckbrett eingesetzt, daher verlaufen die Reihen vertikal und die Spalten horizontal.
void Sechs()
{
byte Zeichen[8] =
{
B11011011,
B11011011,
B00000000,
B00000000,
B00000000,
B00000000,
B11011011,
B11011011
};
// Matrix anzeigen
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
Als Erstes musst du eine Bibliothek installieren:
Jedem Befehl muss der Name der Matrix mit abschließendem . vorangestellt werden.
Funktionen der Bibliothek LEDControl
Schlüsselwort | Aktion |
---|---|
LedControl Name_der_Matrix(Data-In, CLK, CS, AnzahlMatrix) | LED-Matrix initialisieren: LedControl LEDMatrix = LedControl(12, 11, 10, 1); |
shutDown(NummerMatrix, true/false) | Matrix aufwecken: shutDown(0, false); |
setIntensity(NummerMatrix, Helligkeit) | Helligkeit setzen (0−20) setIntensity(0, 8); |
clearDisplay(NummerMatrix) | clearDisplay(0); |
setLed(NummerMatrix, Zeile, Spalte, true/false); | einzelne LED schalten setLed(0, 0, 0, true); |
setRow(NummerMatrix, Zeile, Byte) | zeilenweise ein Byte schreiben: setRow(0, Zeile, B10000000); setRow kann Werte zwischen 0 und 7 haben Wenn die LED-Matrix in das Steckbrett gesetzt wird, verlaufen die Reihen vertikal. |
setColumn(NummerMatrix, Spalte, Byte) | spaltenweise ein Byte schreiben: setColumn(0, Spalte, B10000000); setColumn kann Werte zwischen 0 und 7 haben Wenn die LED-Matrix in das Steckbrett gesetzt wird, verlaufen die Spalten horizontal. |
Pinbelegung LED-Matrix
Benötigte Bauteile:
- Taster
- LED-Matrix
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Binde die benötigte Bibliothek ein und definiere die Variablen:
#include "LedControl.h"
int TASTER = 7;
int TasterLesen;
int Zahl;
int Minimum = 1;
int Maximum = 7;
LedControl LEDMatrix = LedControl(12, 11, 10, 1);
Starte im setup-Teil die LED-Matrix und lege den pinMode für den Taster fest:
void setup()
{
// Matrix "aufwecken"
LEDMatrix.shutdown(0, false);
// mittlere Helligkeit setzen
LEDMatrix.setIntensity(0, 8);
// Zufallsgenerator starten
randomSeed(A0);
pinMode(TASTER, INPUT_PULLUP);
}
Verwende für die Ermittlung der Zufallszahl eine ⇒Funktion.
int ZufallsZahl()
{
Zahl = random(Minimum, Maximum);
return Zahl;
}
Die ⇒Funktion Wuerfeln() ermittelt eine Zufallszahl und zeigt sie an.
Die Abfrage der Zufallszahl kannst du mit ⇒switch … case erledigen.
Verwende für die Anzeige der Würfelaugen die folgenden Funktionen:
void Eins()
{
byte Zeichen[8] =
{
B00000000,
B00000000,
B00000000,
B00011000,
B00011000,
B00000000,
B00000000,
B00000000
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Zwei()
{
byte Zeichen[8] =
{
B11000000,
B11000000,
B00000000,
B00000000,
B00000000,
B00000000,
B00000011,
B00000011
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Drei()
{
byte Zeichen[8] =
{
B11000000,
B11000000,
B00000000,
B00011000,
B00011000,
B00000000,
B00000011,
B00000011
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Vier()
{
byte Zeichen[8] =
{
B11000011,
B11000011,
B00000000,
B00000000,
B00000000,
B00000000,
B11000011,
B11000011
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Fuenf()
{
byte Zeichen[8] =
{
B11000011,
B11000011,
B00000000,
B00011000,
B00011000,
B00000000,
B11000011,
B11000011
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Sechs()
{
byte Zeichen[8] =
{
B11011011,
B11011011,
B00000000,
B00000000,
B00000000,
B00000000,
B11011011,
B11011011
};
for (int zaehler = 0; zaehler < 8; zaehler ++)
{
LEDMatrix.setRow(0, zaehler, Zeichen[zaehler]);
}
}
void Wuerfeln()
{
Zahl = ZufallsZahl();
switch (Zahl)
{
case 1:
Eins();
break;
case 2:
Zwei();
break;
case 3:
Drei();
break;
case 4:
Vier();
break;
case 5:
Fuenf();
break;
case 6:
Sechs();
break;
}
}
Im loop-Teil wird der Taster abgefragt und in der ⇒for-Schleife das Würfeln simuliert:
void loop()
{
TasterLesen = digitalRead(TASTER);
if (TasterLesen == LOW)
{
delay(300);
// Würfeleffekt
for (int i = 0; i < 5; i++)
{
int Zahl = random(Minimum, Maximum);
Wuerfeln();
delay(200);
}
}
}
Verwandte Anleitungen:
- Automatische Tür mit Hall-Sensoren
- Countdown mit einer einstelligen 7-Segment-Anzeige
- Countdown mit einem OLED-Display
- Datum und Zeit mit dem NTP-Protokoll anzeigen
- ESP32-Wroom – BMP280/DHT Zeit und Messdaten auf TFT anzeigen
- Farbenspiele mit einer RGB-Matrix
- Glücksrad mit NeoPixel-Ring
- Labyrinth-Spiel mit TFT und Fernbedienung
- Labyrinthspiel mit Joystick und TFT
- Länder-Info
- LED-Matrix - Countdown
- LED-Matrix - Joystick-Spiel
- LED-Matrix - Lauflicht
- Lottozahlen - Anzeige auf einem LCD
- Lottozahlen - Anzeige auf einem OLED-Display
- Multiplikations-Taschenrechner
- Spiel mit einer RGB-Matrix
- Spielautomat mit einer RGB-Matrix
- Taschenrechner Grundrechenarten
- Würfeln einstellige 7-Segment-Anzeige und Fernbedienung
- Würfeln - Anzeige auf einem OLED-Display
- Würfelspiel mit einer vierstelligen Anzeige
- Würfeln mit einer einstelligen Anzeige
Letzte Aktualisierung: