Go Down

Topic: Amplitude en frequentie van geluidsgolf uitlezen (Read 838 times) previous topic - next topic

Jarnovis

Nov 21, 2017, 04:59 pm Last Edit: Nov 21, 2017, 05:04 pm by Jarnovis
Na een paar tutorials wou ik toch al snel aan een eigen projectje beginnen.

Ik heb een programmeerbare RGB-LED strip gekocht en deze wil ik graag aansturen door middel van muziek (vanaf 3.5mm audio kabel (laptop/telefoon) naar de arduino). Het doel is eigenlijk:

- Helderheid van de LEDs aansturen dmv volume (amplitude)
- Kleuren van de LEDs aansturen dmv de frequentie

Heb na behoorlijk wat zoeken al aardig wat (engelse) topics gevonden, maar heb geen ervaring met elektro en loop hierop vast. Het aansluiten/opbouwen vanuit een schema lukt me niet en mocht het lukken heb ik geen idee wat ik aan het doen ben, wat ik wel graag wil weten. Het is dus een hobby/leer project voor mij.


Het is mij in ieder geval opgevallen dat de Arduino negatieve spanningen niet leuk vindt en er daarom een DC-offset of een diode nodig is. De diode werd mij afgeraden, omdat hij al 0,6-0,7 V gebruikt en het signaal dat overblijft wel erg klein wordt.

Deze dezelfde problemen worden op de Engelse fora meestal naar http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-realtime-audio-processing/ verwezen, maar ik snap het schema niet.

Ik heb een aantal vragen, namelijk
- Is het mogelijk om de amplitude én de frequentie uit te lezen?;
- Kan iemand in Jip-en-Janneke taal het schema uitleggen(zie link hierboven);

Er zullen naar loop van tijd wel wat vragen bij komen, maar dit zijn momenteel de belangrijkste.

shooter

Vraag 1 ja, dat kan, je neemt gewoon een hoop samples, zoals ook in de tekst staat en die ga je dan bewerken zodat je het gemiddelde hoogte kunt bepalen, (dat is dan je volume.

Daarnaast kun je bepalen door te kijken waar het signaal telkens piekt om de frequentie te bepalen.
Dat is allemaal best wel pittig rekenwerk en wordt normaal gedaan met een Digital Signal processor.
Het schema aan de linkerkant is eigenlijk alleen maar dat er een DC spanning bij je lijnsignaal wordt gedaan, de condensatoren zorgen voor het optillen van het signaal, stel even dat de potmeter in het midden staat, dan staat er dus 2.5 Volt op de analoge input.
het lijnsignaal wordt daarbij geteld (want de condensator laat de AC door.
Hierdoor zul je een signaal zien dat om de 2.5 V heen beweegt.

Ik moet je wel even waarschuwen want de voltages zijn erg klein en zul je dus maar heel weinig beweging kunnen meten.
Een luidspreker uitgang is al wat beter, of je moet er een klein versterkertje opamp bijzetten,zoals een 741 dan kun je daarmee ook je signaal optillen en zelfs filteren.

paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Jarnovis

Bedankt voor je antwoord!

Ik heb nog een paar schema's gevonden, dit minder ingewikkeld zijn. In deze schema's staan geen potmeter, maar een diode. Zal ik een diode gebruiken om mijn negatieve spanning weg te werken of een DC offset?

Het simpelste schema staat in de foto.


shooter

leuk bedacht maar dat gaat niet want de golfvorm wordt niet goed hierdoor, de diode blokkeert wel, maar de condensator moet leeg lopen en dat geberut altijd met dezelfde snelheid.
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Jarnovis

Sorry voor de late reactie:(

Bedankt voor je antwoord, ik zal verder gaan met het eerste schema. Nu ik vakantie heb zal ik hier actief mee bezig zijn. Zal eventuele vragen hier vermelden en anders het resultaat.

Jarnovis

Het lijkt erop dat ik steeds random waardes binnenkrijg van 800-1020. Het maakt niet uit of mijn volume nu op 0 staat of 100.

Het kan erg goed aan mijn opstellingen liggen, zal binnenkort een fritzing tekening maken en posten.

Kan je trouwens die opamp(741) zelf programmeren of is dit niet mogelijk?

MAS3

Hoi.

Een opamp is een heel analoog ding.
Daar valt niets aan te programmeren.
En al zeker een oer component als de 741, das zo'n beetje de eerste opamp die ooit beschikbaar kwam.
Daar zit echt absoluut niets digitaals in, behalve de antwoord op je vraag: false.

In het kort dus:
Nee.

Maar misschien bedoelde je wel iets heel anders ?
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Jarnovis

Duidelijk antwoord op de vraag die ik bedoelde.

Go Up