Verbessertes „Heißer Draht“-Spiel mit Punktezähler – Arduino Nano Projekt
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino Nano R3 | 1 |
| Summer (Buzzer) | 1 |
| 5 mm LED: Rot | 1 |
| 5 mm LED: Grün | 1 |
| Texas Instruments Shift Register 74HC595 (Serial zu Parallel) | 1 |
| 7-Segment LED-Display, Rot | 1 |
| Widerstand 221 Ω | 10 |
| 9V-Batterie | 1 |
Benötigte Werkzeuge und Maschinen
- Bohrmaschine, Schraubendreher
- Lötkolben
Über dieses Projekt
Nach etwas Herumprobieren mit Arduino beschloss ich, eine erweiterte Version des klassischen „Heißer Draht“-Spiels zu bauen, das Fehlversuche zählt und bei 10 Berührungen „durchdreht“!
Hier ist ein Video von mir, wie ich an meinem eigenen Spiel scheitere:
Der Quellcode ist in drei Dateien aufgeteilt.
Im Code ist eine „Karenzzeit“ von 500 ms nach jedem Fehlversuch eingestellt. Sie können diese anpassen, um dem Spieler eine größere Pause zu gönnen.
Außerdem fiel mir am Ende auf, dass die LEDs etwas zu hell sind! Fühlen Sie sich frei, die beiden Widerstände daran durch größere zu ersetzen. Meine sind nur ca. 100 Ω.
Für den Ring habe ich das Ende eines Schlüsselanhängers verwendet. Der Vorteil: Man kann ihn einfach öffnen und muss nicht den ganzen Draht zurücknavigieren.
Ich hoffe, Ihnen gefällt mein Projekt!
Code
nervous_meter_score.ino
int latchPin = 3; // ST_CP [RCK] am 74HC595
int clockPin = 4; // SH_CP [SCK] am 74HC595
int dataPin = 2; // DS [S1] am 74HC595
const int STOP_LED = 6;
const int GO_LED = 7;
const int BUZZ = 8;
const int TOUCH = 10;
const int fail_threshold = 9;
enum Status { STOP = 0, GO = 1 };
void setup() {
Serial.begin(9600);
displayInitialSetup();
gameInitialSetup();
}
Status status = GO;
int failCounter = 0;
void loop() {
while (failCounter > fail_threshold) {
gameover();
}
switch (status) {
case GO:
digitalWrite(GO_LED, HIGH);
digitalWrite(STOP_LED, LOW);
digitalWrite(BUZZ, LOW);
if (digitalRead(TOUCH) == HIGH) {
status = STOP;
}
break;
case STOP:
digitalWrite(GO_LED, LOW);
failCounter++;
if (failCounter > fail_threshold) break;
displayDigit(failCounter);
Serial.println(failCounter);
failAlarm();
status = GO;
break;
}
}
byte seg_spin[6] = {
B10000000, B01000000, B00100000,
B00010000, B00001000, B00000100
};
void gameover() {
for (int i = 0; i < 6; i++) {
digitalWrite(BUZZ, HIGH);
delay(5);
digitalWrite(BUZZ, LOW);
delay(50);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, seg_spin[i]);
digitalWrite(latchPin, HIGH);
delay(10);
}
}
score_display.ino
byte seg_digits[10] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11100110 // 9
};
void displayDigit(int x) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, seg_digits[x]);
digitalWrite(latchPin, HIGH);
}
void displayInitialSetup() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
displayDigit(0);
}
game.ino
void gameInitialSetup() {
pinMode(STOP_LED, OUTPUT);
pinMode(GO_LED, OUTPUT);
pinMode(BUZZ, OUTPUT);
pinMode(TOUCH, INPUT_PULLUP);
}
void failAlarm() {
digitalWrite(STOP_LED, HIGH);
beep();
delay(150);
digitalWrite(STOP_LED, LOW);
digitalWrite(BUZZ, LOW);
delay(500);
}
void beep() {
for(int i = 0; i < 3; i++) {
digitalWrite(BUZZ, HIGH);
delay(50);
digitalWrite(BUZZ, LOW);
delay(50);
}
}
Schaltpläne
Beachten Sie: D10 mit 5V verbunden = Fehlversuch → Summer piept und Zähler zählt hoch. Im Schaltplan war dies nicht darstellbar. Bauen Sie Ihre Drähte und Struktur entsprechend auf :)

Herstellungsprozess
- Reagiert Wolframdrahtgewebe mit Luft? Technischer Überblick
- Tiara: Geschichte, Materialien und modernes Design des königlichen Kopfschmucks
- Stacheldraht: Geschichte, Konstruktion und moderne Verwendung
- Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
- Arduino-basiertes Schalter- & LED-Panel für Microsoft Flight Simulator 2020
- Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen
- Drahteinfügung in E3.series Elektroprojekten mit E3.cable meistern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- MOSMusic: Musik-synchronisierte Lichtsteuerung mit CoolMOS MOSFET & Arduino
- Pionierhafte Draht-EDM-Lösungen für komplexe Formen- & Werkzeugbau