Arduino-Projekt · Firmware v2

Busfahren♥♦♣♠

Das Kneipenspiel als Handheld. Vier Fragen, dann die Busfahrt – alles auf einem 16×2-Zeichen-LCD, gesteuert mit einem Poti und einem Taster. Unten läuft die echte Spiellogik im Browser.

HD44780 · 16×2
Live-Demo
Poti 512 · Phase 1 / 4
Poti · Auswahl
Taster · Bestätigen
Buzzer · Reset

Poti drehen wählt aus, OK bestätigt. Langes Halten (Ring füllt sich) springt direkt zur Busfahrt. Tastatur: am Poti, Enter am Taster.

01

Der Spielablauf

4 Fragen + Bus

Jede richtige Antwort bringt dich eine Frage weiter. Ein Fehler heißt trinken (so viele Schlücke wie die Fragennummer) und zurück auf Anfang. Wer alle vier schafft, muss trotzdem noch den Bus fahren.

Frage 1

Rot oder Schwarz?

Rate die Farbe der ersten Karte. Poti links = Rot, rechts = Schwarz.

Frage 2

Höher oder Tiefer?

Liegt die nächste Karte über oder unter der gezeigten? Gleichstand zählt nicht.

Frage 3

Zwischen oder außerhalb?

Fällt die dritte Karte in die Spanne der beiden ersten – oder daneben?

Frage 4

Welches Symbol?

Herz, Karo, Kreuz oder Pik? Vier Poti-Bereiche, ein Symbol.

Finale

Busfahren

Fünf Mal Höher/Tiefer am Stück. Ein Fehler – und die Fahrt beginnt von vorn.

02

Nachbauen

Teile & Verdrahtung

Komponenten

Arduino Uno (oder Nano)Herzstück, 5 V-Logik
LCD 16×2, HD44780Standard-Zeichendisplay
Poti 10 kΩSpielauswahl → A0
Poti 10 kΩLCD-Kontrast (V0)
Taster / PushbuttonBestätigen → A1
Piezo-Buzzer, passivTöne → D13 (für tone())
Widerstand 220 ΩLCD-Backlight (Pin A)
OLED SSD1306 128×32Lauftext, optional → I²C0–1×
Steckbrett + JumperVerkabelung
Der Buzzer muss passiv sein – ein aktiver Buzzer brummt nur auf einer festen Frequenz und ignoriert die Melodie.

Verdrahtung

BauteilPinArduino
LCD RS4D7
LCD E6D6
LCD D411D5
LCD D512D4
LCD D613D3
LCD D714D2
LCD RW5GND
LCD V03Poti-Schleifer
LCD VSS / K1 / 16GND
LCD VDD25V
LCD A155V · 220Ω
Poti SpielSchleiferA0
TasterA1 → GND
Buzzer +D13
OLED SDA / SCLA4 / A5
Der Taster liegt an INPUT_PULLUP: ein Bein an A1, das andere an GND. Kein externer Widerstand nötig.
ARDUINO UNO D2–D7 · A0 · A1 · D13 · A4/A5 5V · GND Busfahren v2.ino LCD 16×2 HD44780 · 4-Bit D2–D7 Poti · A0 Taster A1 → GND Buzzer D13 OLED (optional) I²C · A4/A5
03

Was v2 stabiler macht

Firmware-Diff

Die Spiellogik ist dieselbe geblieben – nur robuster. Die wichtigsten Änderungen gegenüber der ersten Version:

01
Keine Rekursion mehr im Bus. Der Neustart nach einem Fehler war ein Selbstaufruf – nach vielen Fehlversuchen drohte ein Stack-Overflow. Jetzt eine Schleife.
02
Faire Phase 1. Die Karten wurden beim Start sortiert, dadurch war „Höher“ immer richtig. Sortierung raus; Phase 3 vergleicht über min/max.
03
Grenzwert-Bug behoben. Die &&/||-Bedingung in „Zwischen/Außerhalb“ war falsch geklammert und machte Grenzfälle immer „richtig“. Neu gefasst.
04
Ein Taster-Handler. Kurz- und Langdruck teilten sich rohes digitalRead und störten sich. Jetzt entprellt: Kurzdruck beim Loslassen, Langdruck einmalig.
05
Echter Zufall. Ohne randomSeed kam nach jedem Einschalten dieselbe Kartenfolge. Jetzt aus offenem Analogpin + micros().
06
Loop läuft flüssig. Der OLED-Lauftext blockierte mit delay(50). Jetzt nicht blockierend und per USE_OLED ganz abschaltbar.
⇩ Firmware v2 anfragen ⇩ Diese Seite laden Alles offline · keine externen Aufrufe

Fragen zu diesem Projekt?

Wie etwas gebaut ist, warum es so gebaut ist, ob es sich auf einen anderen Fall übertragen lässt – schreib einfach. Die Nachricht geht als E-Mail an mich, sonst passiert damit nichts.

Rechenaufgabe Rechenaufgabe als Bild

Kein Google-Captcha, keine Weitergabe an Dritte, keine Cookies. Die Rechenaufgabe wird von diesem Server gezeichnet und geprüft. Wenn sie nicht lesbar ist oder das Formular klemmt: info@timobritz.de geht genauso.