Bombenattrappe
Aufbau
Verwendet wurden unter anderem:
- 4 Aluminiumrohre
- LCD-Display (Typ 1602 2x16 mit I2C)
- Arduino Uno mit Gehäuse (oder Nano)
- 9-Volt-Block mit Batterieclip als versteckte Stromversorgung
- Grundplatte Holz
- Kabelreste / Litzen für die Optik
- LEDs und Piezo-Lautsprecher nach Bedarf
- kleine Schalter oder Öffnungsschalter
- Kunststoff-, PCB- oder andere Dummy-Bauteile für die Oberfläche
- Kleber, Schrauben, Kabelbinder und Isolierband
- Farbe / Lack nach Bedarf und gewünschtem Aussehen
Funktion und Wirkung
Vier Aluminiumrohre (2 cm Durchmesser, ca. 20 cm lang) wurden mit Sand gefüllt, an den Enden mit Korken oder Heißkleber verschlossen und mit farbigem Klebeband umwickelt. Als Unterbau dient eine kleine Holzplatte. Darin sind ein 9-Volt-Block und ein Öffnungsschalter versteckt.
In einem Gehäuse sitzt der Arduino, hier ein Uno; ein Nano wäre sogar noch besser geeignet. Zur Tarnung wird darüber eine alte Platine befestigt. Sie dient als scheinbare Zündschaltung. Als Effekt sind darin eine rote und eine grüne LED verbaut, die abwechselnd im Sekundentakt blinken.
Seitlich ist ein LCD-Display verbaut, auf dem ein Countdown herunterzählt. Ein versteckter Piezo-Lautsprecher gibt im Takt der LEDs einen Piepton ab; nach jeder abgelaufenen Minute des Countdowns ertönt zusätzlich ein schriller Ton. Das sorgt für zusätzliche Spannung.
Die dicken roten und blauen Kabel sind nicht nur optisches Beiwerk. Eines davon ist in den harmlosen Niederspannungsstromkreis eingebunden und unterbricht beim Trennen lediglich die Stromversorgung der Attrappe. Wie im Film: „Aber welches, das rote oder das blaue Kabel?“ 😅
In der ersten Variante hatte ich noch ein LCD-Display ohne I2C-Schnittstelle verbaut, später eines mit I2C. Das spart einige Kabel.
Der Aufbau lebt vor allem von der äußeren Wirkung. Kabel, Anzeigen und Bauteile dienen nur der Optik.
Schaltskizze
Je nach Art der LEDs sind eventuell noch Vorwiderstände (200-300 Ω) nötig!
Arduino-Code
delay()-Variante. Entfernt wurden fehlerhafte Fragmente früherer Versionen.
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C-Bibliothek einbinden
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD mit 16 Zeichen, 2 Zeilen und I2C-Adresse 0x27
const int inputtime = 180; // Countdown in Sekunden
//----------------Variablen für Countdown------------------//
long countdowntime; // Countdown-Variable bzw. Startwert
long minutes; // Countdown in Minuten
long seconds; // Countdown in Sekunden
void setup() {
lcd.begin(16, 2);
lcd.backlight();
pinMode(8, OUTPUT); // LED rot
pinMode(9, OUTPUT); // LED grün
pinMode(10, OUTPUT); // Piezo-Lautsprecher
countdowntime = inputtime;
lcd.setCursor(0, 0);
lcd.print("Countdown:");
showTime();
}
void loop() {
if (countdowntime > 0) {
tone(10, 4000);
delay(50);
noTone(10);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
delay(50);
tone(10, 1000);
delay(50);
noTone(10);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(50);
countdowntime--;
showTime();
if (seconds < 10) {
tone(10, 2000); // anderer Ton bei weniger als 10 Sekunden
delay(50);
noTone(10);
}
delay(1000);
}
else {
lcd.setCursor(0, 0);
lcd.print(">> BOOOM !!!! <<");
lcd.setCursor(0, 1);
lcd.print("00:00 Game over!");
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
}
void showTime() {
minutes = countdowntime / 60;
seconds = countdowntime % 60;
lcd.setCursor(0, 1);
if (minutes < 10) {
lcd.print('0');
}
lcd.print(minutes);
lcd.print(":");
if (seconds < 10) {
lcd.print("0");
}
lcd.print(seconds);
lcd.print(" "); // alte Zeichen überschreiben
}