kk logo

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.

5 Wer war schneller Das ultimative Arduino Quiz Buzzer System

Spiel 78 aus der 200 Arduino Spiele Sammlung. 

 4 Wer war schneller Das ultimative Arduino Quiz Buzzer System

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.

 3 Wer war schneller Das ultimative Arduino Quiz Buzzer System

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.

2 Wer war schneller Das ultimative Arduino Quiz Buzzer System

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.

1 Wer war schneller Das ultimative Arduino Quiz Buzzer System

🛠 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.

int plaetzeBelegt = 0;
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 x = (spieler % 2 == 0) ? 0 : 240;
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.

for (int i = 0; i < 4; i++) {
if (digitalRead(pins[i]) == LOW && !hatGedrueckt[i]) {
plaetzeBelegt++;
hatGedrueckt[i] = true;
zeigePlatz(i, plaetzeBelegt);
// ... LED Steuerung ...
}}
 Erklärung: Diese Schleife ist der "Türsteher" deines Programms. Sie prüft 4-mal hintereinander: "Wurde Button i gedrückt?" UND "Hat dieser Spieler noch nicht gedrückt?". Wenn beides stimmt, wird der Spieler registriert, sein Platz (1-4) vergeben und die Anzeige aktualisiert. Das spart massiv Platz im Vergleich zu vier einzelnen if-Abfragen.

Der Arduino Code ohne Reihenfolge für das Quiz-Buzzer-System

 

Der Arduino Code mit Reihenfolge für das Quiz-Buzzer-System.

 

 

Ronnie

schwäbischer tüftler und bastler, kraftsportler, neurodivers, 45 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

1.2 ronnie berzins

Kontakt

visitenkarte