- Materiale krævet
- Arbejde med en lydsensor
- Lydsensor kredsløbsdiagram
- Musical Water Fountain Circuit Diagram
- Programmering af Arduino Nano til Dancing Fountain
Der er flere vandfonteiner, der ubetinget drysse vand med nogle interessante lyseffekter. Så jeg vandrede rundt om at designe en innovativ vandfontæne, der kan reagere på ekstern musik og drys vand afhængigt af musikens beats. Lyder det ikke interessant?
Den grundlæggende idé med denne Arduino Water Fountain er at tage et input fra enhver ekstern lydkilde som mobil, iPod, pc osv., Prøve lyden og nedbryde den til forskellige spændingsområder og derefter bruge output til at tænde forskellige relæer. Vi brugte først et kondensatormikrofonbaseret lydsensormodul til at udføre på lydkilden for at opdele lydene i forskellige spændingsområder. Derefter tilføres spændingen til op-amp for at sammenligne lydniveau med en bestemt grænse. Det højere spændingsområde svarer til en relæafbryder TIL, som omfatter en musikalsk vandfontæne, der fungerer på sangens rytmer og rytmer. Så her bygger vi denne Musical Fountain ved hjælp af Arduino og lydsensor.
Materiale krævet
- Arduino Nano
- Lydsensormodul
- 12V relæmodul
- DC pumpe
- LED'er
- Tilslutning af ledninger
- Vero board eller Breadboard
Arbejde med en lydsensor
Lydsensormodulet er et simpelt elektronisk mikrofonbaseret elektronisk kort, der bruges til at registrere ekstern lyd fra miljøet. Den er baseret på LM393 effektforstærker og en electret-mikrofon, den kan bruges til at registrere, om der er nogen lyd ud over den indstillede tærskelgrænse. Moduludgangen er et digitalt signal, der indikerer, at lyden er større eller mindre end tærsklen.
Potentiometeret kan bruges til at justere sensormodulets følsomhed. Moduludgangen er HIGH / LOW, når lydkilden er lavere / højere end den tærskel, der er indstillet af potentiometeret. Samme lydsensormodul kan også bruges til måling af lydniveauet i decibel.
Lydsensor kredsløbsdiagram
Som vi ved, at i et lydsensormodul er den grundlæggende inputenhed mikrofonen, der konverterer lydsignalerne til elektriske signaler. Men da lydsensorens elektriske signaloutput er så lille i størrelse, som er meget vanskeligt at analysere, har vi brugt et NPN-transistorforstærkerkredsløb, der forstærker det og tilfører udgangssignalet til den ikke-inverterende indgang på Op- forstærker Her bruges LM393 OPAMP som en komparator, der sammenligner det elektriske signal fra mikrofonen og referencesignalet fra spændingsdelerkredsløbet. Hvis indgangssignalet er større end referencesignalet, vil output af OPAMP være højt og omvendt.
Du kan følge sektioner med Op-amp kredsløb for at lære mere om dets funktion.
Musical Water Fountain Circuit Diagram
Som vist i det ovennævnte musikalske springvandskema, er lydsensoren forsynet med 3,3 V forsyning af Arduino Nano, og lydsensormodulets udgangsstift er forbundet til den analoge indgangsstift (A6) på Nano. Du kan bruge en hvilken som helst af den analoge pin, men sørg for at ændre det i programmet. Relæmodulet og jævnstrømspumpen drives af en ekstern 12VDC strømforsyning som vist i figuren. Relæmodulets indgangssignal er forbundet til Nano's digitale udgangsstift D10. Til lyseffekt valgte jeg to forskellige LED-farver og tilsluttede dem til to digitale outputstifter (D12, D11) fra Nano.
Her er pumpen tilsluttet på en sådan måde, at når der gives en HØJ impuls til indgangen på relæmodulet, forbindes relæets COM-kontakt til NO-kontakten, og strømmen får en lukket kredsløbsvej til at strømme over pumpen til aktiver vandstrømmen. Ellers forbliver pumpen OFF. HIGH / LOW impulser genereres fra Arduino Nano afhængigt af lydindgangen.
Efter lodning af det komplette kredsløb på perfboard vil det se ud som nedenfor:
Her brugte vi en plastkasse som springvandbeholder og mini 5v-pumpe til at fungere som en springvand, vi brugte denne pumpe tidligere i brandslukningsrobot:
Programmering af Arduino Nano til Dancing Fountain
Det komplette program for dette Arduino-vand springvandsprojekt findes nederst på siden. Men her forklarer jeg bare det ved dele for bedre forståelse:
Den første del af programmet er at erklære de nødvendige variabler til tildeling af pin-numre, som vi skal bruge i de næste blokke af programmet. Definer derefter en konstant REF med en værdi, der er referenceværdien for lydsensormodulet. Den tildelte værdi 700 er den byteækvivalente værdi af lydsensorens udgangs elektriske signal.
int-sensor = A6; int redled = 12; int greenled = 11; int pumpe = 10; #definer REF 700
I tomrum setup funktion har vi brugt pinMode funktion til at tildele INPUT / OUTPUT data retning af benene. Her tages sensoren som INPUT, og alle andre enheder bruges som OUTPUT.
ugyldig opsætning () { pinMode (sensor, INPUT); pinMode (redled, OUTPUT); pinMode (grøn, OUTPUT); pinMode (pumpe, OUTPUT); }
Inde i den uendelige sløjfe kaldes analogRead- funktion, som udlæser den analoge værdiindgang fra sensorstiften og gemmer den i en variabel sensor_værdi .
int sensor_value = analogRead (sensor);
I den sidste del bruges en if-else- løkke til at sammenligne det analoge indgangssignal med referenceværdien. Hvis den er større end referencen, får alle outputstifterne HØJ output, så alle lysdioderne og pumpen er aktiveret, ellers forbliver alt OFF. Her har vi også givet en forsinkelse på 70 millisekunder for at adskille relæets ON / OFF-tid.
hvis (sensor_value> REF) { digitalWrite (grøn, HIGH); digitalWrite (redled, HIGH); digitalWrite (pumpe, HIGH); forsinkelse (70); } ellers { digitalWrite (grøn, LAV); digitalWrite (redled, LOW); digitalWrite (pumpe, LAV); forsinkelse (70); }
Sådan fungerer denne Arduino-styrede vandfontæne, komplet kode med en fungerende video er angivet nedenfor.