- Erforderliches Material
- Funktionsweise eines Schallsensors
- Schaltplan des Schallsensors
- Musikalischer Wasserbrunnen-Schaltplan
- Programmierung von Arduino Nano für Dancing Fountain
Es gibt mehrere Wasserfontänen, die bedingungslos Wasser mit einigen interessanten Lichteffekten besprühen. Also habe ich mich daran gemacht, einen innovativen Springbrunnen zu entwerfen, der auf externe Musik reagieren und je nach Musikschlag Wasser einstreuen kann. Klingt es nicht interessant?
Die Grundidee dieses Arduino-Wasserbrunnens besteht darin, einen Eingang von einer externen Schallquelle wie einem Mobiltelefon, einem iPod, einem PC usw. zu nehmen, den Ton abzutasten und in verschiedene Spannungsbereiche aufzuteilen. Anschließend können Sie mit dem Ausgang verschiedene Relais einschalten. Wir haben zuerst ein Schallsensormodul auf der Basis eines Kondensatormikrofons verwendet, um die Schallquelle zu bearbeiten und die Geräusche in verschiedene Spannungsbereiche aufzuteilen. Dann wird die Spannung dem Operationsverstärker zugeführt, um den Schallpegel mit einem bestimmten Grenzwert zu vergleichen. Der höhere Spannungsbereich entspricht einem eingeschalteten Relaisschalter, der einen musikalischen Springbrunnen umfasst, der den Beats und Rhythmen des Songs entspricht. Hier bauen wir diesen Musikbrunnen mit Arduino und Klangsensor.
Erforderliches Material
- Arduino Nano
- Schallsensormodul
- 12V Relaismodul
- Gleichstrompumpe
- LEDs
- Kabel anschließen
- Vero Board oder Breadboard
Funktionsweise eines Schallsensors
Das Schallsensormodul ist eine einfache elektronische Karte auf der Basis eines Elektretmikrofons, mit der externer Schall aus der Umgebung erfasst wird. Es basiert auf dem Leistungsverstärker LM393 und einem Elektretmikrofon und kann verwendet werden, um festzustellen, ob ein Ton über dem festgelegten Schwellenwert liegt. Der Modulausgang ist ein digitales Signal, das anzeigt, dass der Ton größer oder kleiner als der Schwellenwert ist.
Mit dem Potentiometer kann die Empfindlichkeit des Sensormoduls eingestellt werden. Der Modulausgang ist HIGH / LOW, wenn die Schallquelle niedriger / höher als der vom Potentiometer eingestellte Schwellenwert ist. Das gleiche Schallsensormodul kann auch zur Messung des Schallpegels in Dezibel verwendet werden.
Schaltplan des Schallsensors
Wie wir wissen, ist das grundlegende Eingabegerät in einem Schallsensormodul das Mikrofon, das die Schallsignale in elektrische Signale umwandelt. Da der elektrische Signalausgang des Schallsensors jedoch so klein ist, dass er sehr schwer zu analysieren ist, haben wir eine NPN-Transistorverstärkerschaltung verwendet, die ihn verstärkt und das Ausgangssignal dem nichtinvertierenden Eingang des Op- zuführt. Ampere. Hier wird LM393 OPAMP als Komparator verwendet, der das elektrische Signal vom Mikrofon und das Referenzsignal von der Spannungsteilerschaltung vergleicht. Wenn das Eingangssignal größer als das Referenzsignal ist, ist der Ausgang des OPAMP hoch und umgekehrt.
Sie können den Abschnitten über Operationsverstärkerschaltungen folgen, um mehr über die Funktionsweise zu erfahren.
Musikalischer Wasserbrunnen-Schaltplan
Wie im obigen Schaltplan für Musikbrunnen gezeigt, wird der Schallsensor mit 3,3 V Arduino Nano versorgt und der Ausgangspin des Schallsensormoduls ist mit dem analogen Eingangspin (A6) von Nano verbunden. Sie können jeden analogen Pin verwenden, aber stellen Sie sicher, dass Sie dies im Programm ändern. Das Relaismodul und die Gleichstrompumpe werden wie in der Abbildung gezeigt von einer externen 12-V-Gleichstromversorgung gespeist. Das Eingangssignal des Relaismoduls ist mit dem digitalen Ausgangspin D10 von Nano verbunden. Für den Lichteffekt habe ich zwei verschiedene LED-Farben ausgewählt und sie an zwei digitale Ausgangspins (D12, D11) von Nano angeschlossen.
Hier ist die Pumpe so angeschlossen, dass bei einem HIGH-Impuls am Eingang des Relaismoduls der COM-Kontakt des Relais mit dem Schließerkontakt verbunden wird und der Strom einen geschlossenen Kreislauf erhält, zu dem er über die Pumpe fließt Aktivieren Sie den Wasserfluss. Andernfalls bleibt die Pumpe ausgeschaltet. Die HIGH / LOW-Impulse werden abhängig vom Toneingang von Arduino Nano erzeugt.
Nach dem Löten der gesamten Schaltung auf Perfboard sieht es wie folgt aus:
Hier haben wir eine Plastikbox als Springbrunnenbehälter und eine Mini- 5-V-Pumpe als Springbrunnen verwendet. Wir haben diese Pumpe zuvor in einem Feuerlöschroboter verwendet:
Programmierung von Arduino Nano für Dancing Fountain
Das vollständige Programm dieses Arduino-Brunnenprojekts finden Sie am Ende der Seite. Aber hier erkläre ich das nur zum besseren Verständnis in Teilen:
Der erste Teil des Programms besteht darin, die erforderlichen Variablen für die Zuweisung von Pin-Nummern zu deklarieren, die wir in den nächsten Programmblöcken verwenden werden. Definieren Sie dann eine Konstante REF mit einem Wert, der der Referenzwert für das Schallsensormodul ist. Der zugewiesene Wert 700 ist der Byte-Äquivalentwert des elektrischen Ausgangssignals des Schallsensors.
int sensor = A6; int redled = 12; int greenled = 11; int pump = 10; #define REF 700
In der Void-Setup- Funktion haben wir die PinMode- Funktion verwendet, um die INPUT / OUTPUT-Datenrichtung der Pins zuzuweisen. Hier wird der Sensor als EINGANG genommen und alle anderen Geräte werden als AUSGANG verwendet.
void setup () { pinMode (Sensor, INPUT); pinMode (redled, OUTPUT); pinMode (grün, OUTPUT); PinMode (Pumpe, OUTPUT); }}
Innerhalb der Endlosschleife wird die Funktion analogRead aufgerufen, die den vom Sensorstift eingegebenen Analogwert ausliest und in einer Variablen sensor_value speichert .
int sensor_value = analogRead (sensor);
Im letzten Teil wird eine if-else- Schleife verwendet, um das analoge Eingangssignal mit dem Referenzwert zu vergleichen. Wenn es größer als die Referenz ist, erhalten alle Ausgangspins einen HIGH-Ausgang, so dass alle LEDs und die Pumpe aktiviert sind, andernfalls bleibt alles AUS. Hier haben wir auch eine Verzögerung von 70 Millisekunden angegeben, um die EIN / AUS-Zeit des Relais zu unterscheiden.
if (sensor_value> REF) { digitalWrite (grün, HIGH); digitalWrite (gerötet, HOCH); digitalWrite (Pumpe, HIGH); Verzögerung (70); } else { digitalWrite (grün, NIEDRIG); digitalWrite (redled, LOW); digitalWrite (Pumpe, NIEDRIG); Verzögerung (70); }}
So funktioniert dieser von Arduino gesteuerte Wasserbrunnen. Der vollständige Code mit einem funktionierenden Video ist unten angegeben.