Passiver Summer

Überblick

In diesem Projekt werden diese beiden Funktionen verwendet, um den passiven Summer zum Vibrieren zu bringen und Ton zu erzeugen. Die Funktion tone() erzeugt eine Rechteckwelle mit einer festgelegten Frequenz (und 50% Tastverhältnis) an einem Pin. Eine Dauer kann angegeben werden, oder die Welle setzt sich fort, bis noTone() aufgerufen wird. Ähnlich wie beim aktiven Summer nutzt auch der passive Summer elektromagnetische Induktion für seinen Betrieb. Der Unterschied besteht darin, dass ein passiver Summer keine eigene Schwingungsquelle hat und somit keinen Ton erzeugt, wenn Gleichstromsignale verwendet werden. Dies ermöglicht es jedoch, die eigene Schwingungsfrequenz des passiven Summers anzupassen und unterschiedliche Noten wie „do, re, mi, fa, sol, la, ti“ zu erzeugen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können die Komponenten auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

BUY

Jumperkabel

BUY

Widerstand

BUY

Transistor

BUY

Summer

BUY

Verdrahtung

Bemerkung

Beim Anschließen des Summers achten Sie darauf, seine Pins zu überprüfen. Der längere Pin ist die Anode und der kürzere die Kathode. Es ist wichtig, sie nicht zu verwechseln, da sonst der Summer keinen Ton erzeugen wird.

../_images/16-passive_buzzer_bb.png

Schaltplan

../_images/16_passive_buzzer_schematic.png

Code

Bemerkung

  • Sie können die Datei 16-passive_buzzer.ino direkt unter dem Pfad elite-explorer-kit-main\basic_project\16-passive_buzzer öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

Nachdem Sie die Codes auf das R4-Board hochgeladen haben, können Sie eine Melodie hören, die sieben Noten enthält.

Code-Analyse

  1. Einbinden der Töne-Bibliothek: Diese Bibliothek stellt die Frequenzwerte für verschiedene musikalische Noten zur Verfügung, sodass Sie musikalische Notation in Ihrem Code verwenden können.

    Bemerkung

    Bitte platzieren Sie die Datei pitches.h im selben Verzeichnis wie den Code, um eine ordnungsgemäße Funktion zu gewährleisten. pitches.h

    ../_images/16_passive_buzzer_piches.png
    #include "pitches.h"
    
  2. Definition von Konstanten und Arrays:

    • buzzerPin ist der digitale Pin am Arduino, an den der Summer angeschlossen ist.

    • melody[] ist ein Array, das die Abfolge der zu spielenden Noten speichert.

    • noteDurations[] ist ein Array, das die Dauer jeder Note in der Melodie speichert.

    const int buzzerPin = 8;
    int melody[] = {
      NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
    };
    int noteDurations[] = {
      4, 8, 8, 4, 4, 4, 4, 4
    };
    
  3. Abspielen der Melodie:

    • Die for-Schleife iteriert über jede Note in der Melodie.

    • Die Funktion tone() spielt eine Note auf dem Summer für eine bestimmte Dauer.

    • Zwischen den Noten wird eine Verzögerung hinzugefügt, um sie zu unterscheiden.

    • Die Funktion noTone() stoppt den Ton.

    void setup() {
      for (int thisNote = 0; thisNote < 8; thisNote++) {
        int noteDuration = 1000 / noteDurations[thisNote];
        tone(buzzerPin, melody[thisNote], noteDuration);
        int pauseBetweenNotes = noteDuration * 1.30;
        delay(pauseBetweenNotes);
        noTone(buzzerPin);
      }
    }
    
  4. Leere Loop-Funktion: Da die Melodie nur einmal im Setup gespielt wird, gibt es keinen Code in der Loop-Funktion.

  5. Fühlen Sie sich frei, mit dem Ändern der Noten und Dauern in den Arrays melody[] und noteDurations[] zu experimentieren, um Ihre eigenen Melodien zu kreieren. Wenn Sie interessiert sind, gibt es ein GitHub-Repository (robsoncouto/arduino-songs ), das Arduino-Codes für verschiedene Lieder bietet. Obwohl ihr Ansatz sich von diesem Projekt unterscheidet, können Sie deren Noten und Dauern als Referenz heranziehen.