- Material som krävs
- Arbeta med en ljudsensor
- Kretsschema för ljudsensor
- Musikaliskt vatten fontän kretsdiagram
- Programmering av Arduino Nano för Dancing Fountain
Det finns flera fontäner som ovillkorligt strö vatten med några intressanta ljuseffekter. Så jag vandrade om att utforma en innovativ vattenfontän som kan svara på extern musik och strö vatten beroende på musikslag. Låter det inte intressant?
Grundidén med denna Arduino Water Fountain är att ta en ingång från alla externa ljudkällor som mobil, iPod, PC etc., prova ljudet och bryta ner det till olika spänningsområden och använd sedan utgången för att slå på olika Relay. Vi använde först en kondensatormikrofon baserat ljudsensormodulen att utföra på ljudkällan att dela upp ljudet i olika spänningsområden. Då matas spänningen till op-amp för att jämföra ljudnivån med en viss gräns. Det högre spänningsområdet kommer att motsvara en reläbrytare PÅ som består av en musikalisk vattenfontän som fungerar till sångens rytmer och rytmer. Så här bygger vi denna musikaliska fontän med Arduino och ljudsensor.
Material som krävs
- Arduino Nano
- Ljudsensormodul
- 12V relämodul
- DC-pump
- Lysdioder
- Anslutande ledningar
- Vero-bräda eller brödbräda
Arbeta med en ljudsensor
Ljudsensormodulen är ett enkelt elektroniskt mikrofonbaserat elektroniskt kort som används för att känna av externt ljud från omgivningen. Den är baserad på effektförstärkaren LM393 och en elektretmikrofon, den kan användas för att upptäcka om det finns något ljud över den inställda tröskelvärdet. Modulutgången är en digital signal som indikerar att ljudet är större eller mindre än tröskeln.
Potentiometern kan användas för att justera sensormodulens känslighet. Modulutgången är HÖG / LÅG när ljudkällan är lägre / högre än tröskelvärdet som ställts in av potentiometern. Samma ljudsensormodul kan också användas för att mäta ljudnivån i decibel.
Kretsschema för ljudsensor
Som vi vet att i en ljudsensormodul är den grundläggande ingångsenheten mikrofonen som omvandlar ljudsignalerna till elektriska signaler. Men eftersom ljudsensorns elektriska signalutgång är så liten i storlek som är mycket svår att analysera, så har vi använt en NPN-transistorförstärkarkrets som förstärker den och matar utsignalen till den icke-inverterande ingången till Op- amp. Här används LM393 OPAMP som en komparator som jämför den elektriska signalen från mikrofonen och referenssignalen som kommer från spänningsdelarkretsen. Om insignalen är större än referenssignalen kommer OPAMP: s utgång att vara hög och vice versa.
Du kan följa Op-amp-kretsavsnitten för att lära dig mer om hur den fungerar.
Musikaliskt vatten fontän kretsdiagram
Som visas i det musikaliska fontänkretsschemat ovan drivs ljudsensorn med 3,3 V-matning av Arduino Nano och utgångsstiftet på ljudsensormodulen är anslutet till den analoga ingångsstiftet (A6) på Nano. Du kan använda valfri analog pin, men se till att ändra det i programmet. Relämodulen och DC-pumpen drivs av en extern 12VDC-strömförsörjning som visas i figuren. Relämodulens ingångssignal är ansluten till den digitala utgångsstiftet D10 på Nano. För belysningseffekt valde jag två olika färger av LED och kopplade dem till två digitala utgångsstift (D12, D11) i Nano.
Här är pumpen ansluten på ett sådant sätt att när en HÖG puls ges till ingången till relämodulen kopplas reläets COM-kontakt till NO-kontakten och strömmen får en sluten kretsväg att strömma över pumpen till aktivera vattenflödet. Annars förblir pumpen AV. HIGH / LOW-pulserna genereras från Arduino Nano beroende på ljudingången.
Efter lödning av hela kretsen på perfboard ser det ut som nedan:
Här använde vi en plastlåda som fontänbehållare och mini 5v-pump för att fungera som en fontän, vi använde den här pumpen tidigare i brandbekämpningsrobot:
Programmering av Arduino Nano för Dancing Fountain
Det fullständiga programmet för detta Arduino-fontänprojekt ges längst ner på sidan. Men här förklarar jag bara det genom delar för bättre förståelse:
Den första delen av programmet är att deklarera de nödvändiga variablerna för att tilldela stiftnummer som vi ska använda i nästa programblock. Definiera sedan en konstant REF med ett värde som är referensvärdet för ljudsensormodulen. Det tilldelade värdet 700 är det byteekvivalenta värdet för ljudsensorns elektriska utsignal.
int-sensor = A6; int redled = 12; int greenled = 11; int pump = 10; #define REF 700
I void inställningsfunktion har vi använt pinMode funktion för att tilldela INPUT / OUTPUT datariktning av stiften. Här tas sensorn som INPUT och alla andra enheter används som OUTPUT.
ogiltig installation () { pinMode (sensor, INPUT); pinMode (redled, OUTPUT); pinMode (grön, OUTPUT); pinMode (pump, OUTPUT); }
Inuti den oändliga slingan , analogRead är funktion som kallas som utläsning det analoga värdet som matas in från sensortappen och lagrar den i en variabel sensor_value .
int sensor_value = analogRead (sensor);
I den sista delen används en if-else- slinga för att jämföra ingångens analoga signal med referensvärdet. Om den är större än referensen får alla utgångsstiften HÖG utgång så att alla lysdioder och pump aktiveras, annars förblir allt AV. Här har vi också gett en fördröjning på 70 millisekunder för att skilja reläets PÅ / AV-tid.
om (sensor_value> REF) { digitalWrite (grön, HÖG); digitalWrite (redled, HIGH); digitalWrite (pump, HIGH); fördröjning (70); } annat { digitalWrite (grön, LÅG); digitalWrite (redled, LOW); digitalWrite (pump, LOW); fördröjning (70); }
Så här fungerar denna Arduino-kontrollerade vattenfontän, komplett kod med en fungerande video ges nedan.