Willkommen bei deinem persönlichen Game-Show-Upgrade! Kennst du das? Mitten im Quiz rufen alle gleichzeitig die Antwort, und der Streit, wer zuerst gezuckt hat, ist vorprogrammiert. Dieses A41rduino-Projekt macht Schluss damit. Das System ist der perfekte Schiedsrichter für bis zu 4 Spieler. Egal ob Familien-Quiz, Schulprojekt oder Spieleabend die Technik entscheidet in Millisekunden, wer den Buzzer zuerst erwischt hat.
Spiel 78 aus der 200 Arduino Spiele Sammlung.
Wie funktioniert es? Jeder Spieler hat seinen eigenen farbigen Button (Grün, Gelb, Blau, Rot). Sobald die Frage gestellt ist, zählt die Reaktionszeit. Das System sperrt sofort nach dem ersten Druck die anderen Eingaben (oder sortiert sie), visualisiert den Gewinner auf einem 4" TFT-Display und lässt einen NeoPixel-Ring in der Farbe des Siegers aufleuchten.
Der Anschluss: Das Herzstück ist ein Arduino (z.B. der 101 oder Uno). Die vier Buttons sind direkt mit den digitalen Pins verbunden, während das Display über den SPI-Bus kommuniziert. Ein LED-Ring sorgt für das nötige Show-Feeling.
Zwei Programme zur Auswahl: 1. Classic Mode: Nur der schnellste Spieler wird großflächig in seiner Farbe angezeigt. Perfekt für "Einer weiß es!"-Runden. 2. Ranking Mode: Hier zählt jeder! Das Display zeigt nicht nur den Ersten an, sondern nummeriert auch die Plätze 2, 3 und 4 in der Reihenfolge, in der gedrückt wurde. So gibt es keine Diskussionen mehr über die Nachrücker.
🛠 Die 3 wichtigsten Stellen im Code
1. Die "Wer hat schon?"Sperre (Array & Counter)
Damit ein Spieler nicht mehrfach Plätze belegt und das System weiß, wer als nächstes dran ist, nutzen wir ein Array und einen Zähler.
bool hatGedrueckt[4] = {false, false, false, false};
Erklärung: plaetzeBelegt fungiert als globaler Zähler. Jedes Mal, wenn ein Button gedrückt wird, erhöhen wir diesen Wert. Das Array hatGedrueckt speichert für jeden der 4 Spieler (0 bis 3), ob er in dieser Runde schon aktiv war. So verhindern wir, dass ein Spieler durch mehrfaches Drücken Platz 1 und Platz 2 belegt.
2. Die automatische Koordinaten-Logik
Anstatt für jedes der vier Display-Felder die Positionen händisch einzutippen, berechnet dieser Code-Schnipsel, wo das Rechteck oder die Zahl erscheinen soll.
int y = (spieler < 2) ? 0 : 160;
Erklärung: Hier nutzen wir Mathematik statt Tipparbeit:
- spieler % 2 == 0: Spieler 0 und 2 sind links (x=0), Spieler 1 und 3 sind rechts (x=240).
- spieler < 2: Spieler 0 und 1 sind oben (y=0), Spieler 2 und 3 sind unten (y=160). Das macht den Code extrem kompakt und weniger fehleranfällig.
3. Die effiziente Abfrage-Schleife
Statt für jeden Button einen eigenen langen Block zu schreiben, nutzen wir eine Schleife, die alle Pins in einem Rutsch prüft.
if (digitalRead(pins[i]) == LOW && !hatGedrueckt[i]) {
plaetzeBelegt++;
hatGedrueckt[i] = true;
zeigePlatz(i, plaetzeBelegt);
// ... LED Steuerung ...
}}
Der Arduino Code ohne Reihenfolge für das Quiz-Buzzer-System
Der Arduino Code mit Reihenfolge für das Quiz-Buzzer-System.







