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+ |
Sie können die Komponenten auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
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.
Schaltplan¶
Code¶
Bemerkung
Sie können die Datei
16-passive_buzzer.ino
direkt unter dem Pfadelite-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¶
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#include "pitches.h"
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 };
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); } }
Leere Loop-Funktion: Da die Melodie nur einmal im Setup gespielt wird, gibt es keinen Code in der Loop-Funktion.
Fühlen Sie sich frei, mit dem Ändern der Noten und Dauern in den Arrays
melody[]
undnoteDurations[]
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.