Willkommen¶
In diesem Projekt verwenden wir einen PIR-Sensor, um menschliche Anwesenheit zu erkennen, und einen Lautsprecher, um eine Türklingel zu simulieren, ähnlich den Eingangstürklingeln in Convenience-Stores. Wenn ein Fußgänger in den Bereich des PIR-Sensors kommt, wird der Lautsprecher klingeln und damit eine Türklingel nachahmen.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
Verdrahtung
Schaltplan
Code
Bemerkung
Sie können die Datei
01_welcome.ino
direkt unter dem Pfadelite-explorer-kit-main\fun_project\01_welcome
öffnen.Oder kopieren Sie diesen Code in die Arduino IDE.
Wie funktioniert das?
Hier ist eine schrittweise Erklärung des Codes:
Headerdateien einbinden:
Zwei Headerdateien,
analogWave.h
undpitches.h
, einbinden. Die DateianalogWave.h
enthält die Definition der KlasseanalogWave
, währendpitches.h
die Definitionen musikalischer Noten enthält.Objekte instanziieren und Konstanten definieren:
Erstellen Sie ein
wave
-Objekt mit der KlasseanalogWave
und definieren SiePIR_PIN
als 2, welcher der an den PIR-Sensor angeschlossene Pin ist.Melodie-Array:
Das
melody
-Array definiert eine musikalische Melodie, wobei jeder Note eine Zahl folgt, die ihre Dauer repräsentiert. Negative Zahlen stellen punktierte Noten dar (die Dauer um 50% erhöhen).Globale Variablen:
Definieren Sie einige globale Variablen, um Daten zwischen Funktionen zu teilen.
setup()
:Initialisieren Sie
PIR_PIN
als Eingang und stellen Sie die Frequenz der Sinuswelle auf 10 Hz mitwave.sine(10)
ein.loop()
:Überwachen Sie kontinuierlich den Wert des PIR-Sensors. Wenn eine menschliche Anwesenheit erkannt wird (pirValue ist HIGH), rufen Sie die Funktion
playMelody()
auf, um die Melodie zu spielen, und warten Sie 10 Sekunden, um das wiederholte Abspielen der Melodie zu verhindern.playMelody()
:Diese Funktion berechnet die Dauer jeder Note basierend auf den Daten im
melody
-Array und spielt die entsprechende Note. Zwischen den Noten gibt es eine kurze Pause. Die Funktion setzt die Frequenz der Wellenform mitwave.freq()
und steuert die Dauer der Noten und Pausen zwischen den Noten mit der Funktiondelay()
.Hinweis: Stellen Sie sicher, dass die Headerdatei
pitches.h
tatsächlich existiert, bevor Sie diesen Code ausführen.