Halloween-Geist mit Arduino

Bald ist Halloween, also bauen wir uns einen Arduino-Halloween-Geist. Dazu brauchen wir zwei LEDs, einen 220 Ohm Widerstand und einen Lautsprecher (z. B. einen Piezo oder Transducer – in den meisten Arduino-Starterkits enthalten). Die LEDs sind die schaurig blinkenden Augen, der Lautsprecher erzeugt gruselige Geräusche.

Schaltplan für den Halloween-Geist

Schaltplan Arduino Halloween Geist

Der Schaltplan ist recht einfach. Zwei parallel geschaltete LEDs sind mit einem Vorwiderstand von 220 Ohm (rot-rot-braun oder rot-rot-schwarz-schwarz) in Reihe geschaltet und mit dem digitalen Pin 12 vom Arduino-Board verbunden. Es ist wichtig, dass die LEDs den gleichen Innenwiderstand haben (normaler Weise ist das bei gleichfarbigen LEDs der Fall), sonst leuchtet nur eine LED. Der Lautsprecher wird mit dem GND und dem digitalen Output-Pin 2 vom Arduino-Board verbunden. 

Arduino-Code

Der Code erweckt in unregelmäßigen Abständen unseren Geist. Dieser blinkt dann mit den Augen und spielt einen Melodie ab.

const int ledPin = 12;
const int speakerPin = 2;

int einschaltZufall = 100;  // je höher die Zahl, desto seltener wird ausgelöst

int einschaltTimer = 0;
int einschaltDauer = 1000;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(speakerPin, OUTPUT);
  Serial.begin(9600);
}

void aufwachen() {
  for (int j = 0; j < 4; j++) {

    for (int i = 0; i < 20; i++) {
      digitalWrite(ledPin, HIGH);
      tone(speakerPin, 2600);
      delay(80);
      digitalWrite(ledPin, LOW);
      tone(speakerPin, 20);
      delay(10);
    }
    
    for (int i = 0; i < 20; i++) {
      digitalWrite(ledPin, HIGH);
      tone(speakerPin, 2300);
      delay(80);
      digitalWrite(ledPin, LOW);
      tone(speakerPin, 20);
      delay(10);
    }
    
  }
}

void loop() {
  int zufallsZahl = random(einschaltZufall);
  Serial.println(zufallsZahl);
  if (zufallsZahl == 0) {
    aufwachen();
  } else {
    digitalWrite(ledPin, LOW);
    noTone(speakerPin);
    delay(50);

  }
  delay(10);
}

Gucken wir noch einmal etwas genauer auf den Code. In der ersten Zeile im Loop wird eine Variable zufallsZahl per Zufall (random) errechnet. Der Wertebereich liegt zwischen 0 und dem Wert der Variablen einschaltZufall-1. Nun prüfen wir in der if-Abfrage, ob die zufallsZahl genau 0 ist. Das passiert per Zufall und kommt desto seltener vor, desto größer die Variable einschaltZufall ist.

Übrigens hab ich hier einen kleinen Überblick, wie man Arduino programmiert geschrieben.

Ausblick

Jetzt kannst du eine Geisterform aus Papier basteln und über die Teile des Breadboards legen, oder du baust einen Geist aus einem Laken und verlängerst die Kabel für die LEDs. Oder wie wäre es, wenn du einen Kürbis mit etwas Elektronik ausstattest? Denk dir was Cooles aus und schick mir ein Foto! hallo@starthardware.org

Wenn dir dieses Projekt gefällt, drücke doch auf den Like-Button. Das würde mich sehr freuen :-)

Titelfoto von Bong Grit, CC-BY-ND

Ich würde mich freuen, wenn du diesen Beitrag bewerten würdest :-)

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Deine Meinung ist mir sehr wichtig!

Lasse uns diesen Beitrag verbessern!

Wie kann ich den Beitrag verbessern? Was würdest du dir wünschen? Was hat dir gefehlt?

Ich hoffe, der Beitrag hilft dir weiter. Und falls du weitere Fragen hast, stelle sie gern hier im Arduino-Forum.

Du willst noch tiefer in die Materie einsteigen? Dann präsentiere ich dir die neuen E-Books von StartHardware:

  • 20 Lektionen
  • Projektbasiert und kurzweilig
  • Aus den Erfahrungen unzähliger Workshops
  • Sofortiger Download

  • Die beliebtesten Projekte von StartHardware
  • Mit Code, Schaltplan und Erklärungen
  • Fachwissen-Kapitel
  • Sofortiger Download


Willst du lieber ein Buch zum Anfassen? Dann werde mit diesem hier zum Arduino-Experten! Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit lernst du alle Tricks!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.