Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!
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.inodirekt 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.him selben Verzeichnis wie den Code, um eine ordnungsgemäße Funktion zu gewährleisten. pitches.h
#include "pitches.h"
Definition von Konstanten und Arrays:
buzzerPinist 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.