Amplitude en frequentie van geluidsgolf uitlezen

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.

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.

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.

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.

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.

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?

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 ?

Duidelijk antwoord op de vraag die ik bedoelde.

Vandaag eindelijk mijn schema gemaakt in Fritzing. Heb in rood omcirkerlt wat ik wil nabouwen. Is dit het correcte schema hiervoor? En is het nog nodig als ik een potmeter gebruikt om een LM741 te gebruiken? Zoja, waar moet deze dan komen?

Mocht de Fritzing niet goed zijn, graag een tip wat ik moet aanpassen.

Alvast hartelijk bedankt.

Hoi.

Ik heb maar even je plaatjes gecombineerd en dit is wat ik er van gebakken heb:

Het is een Fritzing! plaatje, dus komt er commentaar op.
Dat programma maakt het eenvoudig om te tekenen wat je wil maken of gemaakt hebt, maar het kan a heel snel een onoverzichtelijk zooitje worden.
Bijvoorbeeld door draden die schuin lopen, en/of elkaar kruisen op cruciale punten.
Dat is hier dan ook gebeurd.
Je (net niet) horizontale gele draad was veel beter uitgekomen als ie wel horizontaal gebleven was, en had dan ook niet de rode draad gehinderd.
Das wat algemeen over dit programma, niet echt waar je op gehoopt had.

Verder heb je de rode kleur gebruikt voor een voedingslijn, maar ook voor een signaal lijn.
En daardoor heb je die twee ook door elkaar gehaald.
Je hebt de rode draad op de Arduino aan de 5 volt aangesloten, en de andere kant op de rode bus van het breadboard.
Die rode bus loopt over de gehele lengte van dat breadboard .
Let goed op of dat op jouw werkelijke breadboard ook wel zo is en dat daar de lijn in het midden niet is onderbroken, want dan is de verbinding op die plaats ook onderbroken !

Links ga je van die rode bus een keer naar je microfoon connector, en met een andere rode draad naar de condensator.

De condensatoren die je getekend hebt, zien er het zelfde uit.
Maar in het schema is de ene condensator een Electrolytische Condensator (Elco), en de andere niet.
De Elco is polariteit gevoelig en dat moet je niet omdraaien.
Daarom heeft die een zwarte en een witte streep de witte streep gaat naar de negatieve kant en de zwarte aan positief.

In het schema staan 2 weerstanden en op jouw breadboard niet.

De gele draden op je breadbord zijn niet goed.
De ingang van je Arduino is met GND verbonden en zal daarom nooit een signaal zien.

Dat zijn de dingen die mij zijn opgevallen.

Bedankt voor je uitgebreide reactie.

Het eerste niet waar ik direct op hoopte, maar wel handig voor in de toekomst. Heb nu zoveel mogelijk draden recht gemaakt.

Misschien even een 'noob' vraag, maar wat bedoel je met de rode bus? De gehele horizontale lijn voor de positieve en ground? Snap wat daarna komt ook niet precies over de 'andere kant'. Ik denk zelf dat je de linker- en rechterkant van het breadbord bedoelt, maar weet het niet zeker.

Goed dat ik dat weet van de condensator, heb het gelijk aangepast. De weerstand staat er nu ook in. Nu je het zegt dat ik het signaal van de Ground meet, zie ik het ook, maar heb geen idee hoe ik het moet aansluiten zodat ik wel het correcte signaal meet.

Wat is er niet goed met mijn gele draden? Want het signaal van mijn potmeter gaat toch naar de condensator(kruising op de tekening)?

Heb niet veel aangepast, maar wat ik wist aan te passen is aangepast.

Ik zie uit naar je reactie!

IMG_86102_Fritzing.PNG

de sterkte van het signaal is nooit genoeg, er zal echt een opamp tussen moeten.

Lees even het stukje wat ik geschreven heb over het plaatsen van plaatjes, het staat ergens tussen de bovenste posts in dit Nederlandstalige gedeelte.

ffb9f8b1ecae184a11c3f616bc5dcf2b2b2078ba.png

Ik zie nog steeds diagonale verbindingen.

De andere kant gaat over de virtuele draden.
Die hebben eerst de ene kant, hier heb ik het over de kant die met de Arduino verbonden is, en dan de andere kant van die draad.
Die andere kant zit dus in je breadbord.
En de bus, daarmee bedoel ik inderdaad de buitenkanten van je breadboard mee, die bedoeld zijn om de voeding op aan te sluiten, en voorzien zijn van een rode en een blauwe streep om daarmee aan te geven wat voor wat bedoeld is.

Er zijn dus breadboards waar de rode en de bleuwe lijn die er op afgebeeld staat, in het midden onderbroken is.
In dat geval is de doorverbinding van de pinnen er naast ook onderbroken.
Dat heeft in het verleden nogal eens tot fouten geleid, dus dat is iets waarvan je even moet bekijken of jouw board dat ook heeft, of dat die lijnen (en dus ook de verbindingen) zijn doorgetrokken.
Die secties van telkens 5 gaatjes zijn dus allemaal met elkaar doorverbonden, het is niet zo dat alleen de 5 gaatjes van de secties met elkaar zijn doorverbonden, wellicht dat je dacht dat dat zo is.
Daarom kun je nu je diagonale rode draden ook als rechte lijnen tekenen.
Zie je dat als je 1 pin in je breadboard gebruikt, dat dan alle daarmee verbonden pinnen in het groen oplichten ?

Je hebt de gele draad van de analoge ingang A0, verbonden met de pin van de condensator die aan ook aan GND van de Arduino hangt.
Dat kan nooit goed zijn.

De rode draad is niet met de weerstand verbonden.

Je kunt de blauwe en de gele draad onderling verwisselen, en de Elco 1 verticale positie opschuiven.
Je kunt de zwarte draad aan de condensator 1 positie opschuiven, en de lange gele draad ook 1 gaatje opschuiven.

Hiermee zul je de problemen hebben opgelost.

Zoals shooter al aankaartte, hiermee krijg je een signaal dat vermoedelijk heen en weer fietst tussen 2 en 3 volt.
Tenzij de laptop direct (dus zonder een extra versterker) een speaker kan aansturen (waarmee het te verwachten signaal juist weer te hard zal zijn en schade kan aanrichten).
Als het een signaal tussen 2 en 3 volt is, is het heel slim om het te versterken, zodat je optimaal van het meetbereik van je Arduino gebruik kunt maken.

Google "Arduino MSGEQ7".
Leo..

MAS3:
Lees even het stukje wat ik geschreven heb over het plaatsen van plaatjes, het staat ergens tussen de bovenste posts in dit Nederlandstalige gedeelte.

Moet het posten als afbeelding in de post en niet als bijlage?
IMG_86103_Fritzing.PNG

MAS3:
Je hebt de gele draad van de analoge ingang A0, verbonden met de pin van de condensator die aan ook aan GND van de Arduino hangt.
Dat kan nooit goed zijn.

Klopt, maar ik heb geen idee hoe ik het moet aansluiten zodat het wel klopt. Heb nu wat aangepast, maar de GND is nu niet verbonden met de condensator.

MAS3:
De rode draad is niet met de weerstand verbonden.

Opgelost.

MAS3:
Je kunt de blauwe en de gele draad onderling verwisselen, en de Elco 1 verticale positie opschuiven.

Opgelost.

MAS3:
Je kunt de zwarte draad aan de condensator 1 positie opschuiven, en de lange gele draad ook 1 gaatje opschuiven.

Sorry, ik snap niet wat je hier bedoeld.

MAS3:
Zoals shooter al aankaartte, hiermee krijg je een signaal dat vermoedelijk heen en weer fietst tussen 2 en 3 volt.
Tenzij de laptop direct (dus zonder een extra versterker) een speaker kan aansturen (waarmee het te verwachten signaal juist weer te hard zal zijn en schade kan aanrichten).
Als het een signaal tussen 2 en 3 volt is, is het heel slim om het te versterken, zodat je optimaal van het meetbereik van je Arduino gebruik kunt maken.

Heb wat plaatjes op Google opgezocht, hoe ik hem moet aansluiten, maar wil nu eerst bovenstaande werkend hebben voordat ik andere componenten ga toevoegen.

IMG_86103_Fritzing.PNG

Dat begrijp ik en vind ik ook verstandig.
Maar voor de zekerheid had je toch al een opamp toegevoegd zie ik :wink:

Er zit vooruitgang in, dus dat is goed.

Wanneer je een plaatje laat zien in plaats van (nou ja, eerder naast) dat je het aan je post hangt, maak je het potentiële helpers gemakkelijker om de informatie die jij wil geven, te kunnen ontvangen.
Ik vind eigenlijk dat ik niet allerlei links en zo moet hoeven volgen om iemand anders eventueel te kunnen helpen.
Die persoon moet dan dus zorgen dat alle voor die persoon beschikbare informatie, ook in de vraag beschikbaar word gesteld.

Je hebt 2 gele draden getekend, en 1 blauwe draad.
Had je een reden om 2 gele draden te nemen en niet een gele en bijvoorbeeld een groene ?

In het schema dat je eerder toonde, staan 1 poot van de Elco, 1 poot van de condensator en de loper (de middelste poot) van de potmeter aan elkaar getekend.

Schuif de condensator 3 posities naar rechts, maak de gele en de (nu nog) blauwe draad ook wat langer.
Schuif de zwarte korte verticale draad ook 3 posities naar rechts (zowel boven als onder), en laat de gele verticale draad staan.

De 2 meest linkse rode draden heb je op de 5 volt aangesloten.
Dat moet je niet doen, deze verbinding moet op andere wijze tot stand worden gebracht en zonder de 5 volt.
Die verbinding krijgt dan ook een andere kleur dan rood of zwart.

Dat alles is weer de oplossing zodat je laatste Fritzing! sketch weer overeen komt met het schema.

Ik heb het vermoeden dat je het schema niet goed kunt lezen, klopt dat ?
Want als dat zo zou zijn, dan word het wel lastig voor je om iets te maken dat hetzelfde moet doen als wat zo'n schema uitbeeldt.
De sleutel is in dat geval dus het kunnen lezen van zulke schema's.

Ben in iedergeval blij dat er vooruitgang in zit en ik snap je redenatie van de plaatjes in de post.

De twee gele draden was een missopvatting van mij en ik zie ook mijn redenatie er nu niet achter (had er vast een of andere reden voor).

Dat de spanning van de muziek en Arduino niet klopten dacht ik gisteren ook aan, maar vergeten te melden (vond het namelijk vreemd dat er twee spanningen met elkaar rechtstreeks waren verbonden). Heb nu de muziek direct op de Elco aangesloten.

Ik heb nu alle audiosignalen blauw gemaakt. Signaal van de potmeter oranje en het analoge signaal wat ik wil hebben geel. Is het handig om dit ook blauw te maken of niet? Vond zelf van niet, omdat het een ‘mix’ is van twee spanningen(de offset en het voltage van de audio, mix van blauw en oranje naar mijn inzien).

Dit is nu het schema wat ik heb, wat volgens mij klopt.

Daarnaast, je vermoeden is ook correct. Op school leer ik wel met condensators, spoelen en weerstanden te rekenen, maar ik sluit niks aan. Daarnaast zijn het ook gewoon 'normale' schema's en geen schema's waarvan ik moet uitvinden of het parallel of serie is om maar wat te zeggen. Dit is een hobby/school project zodat ik nu weet wat ik eigenlijk op school aan het doen ben:P

Mocht je nog tips hebben, om dit goed onder controle te krijgen, ze zijn welkom.

En hartelijk bedankt voor alle tijd die je erin steekt om me op weg te helpen!

Hoi.

Zie je dat het er nu veel strakker uitziet ?
En dat het daarmee ook heel veel overzichtelijker geworden is ?

Die vraag over de gele draad stelde ik natuurlijk met reden.
Dat je die 2 draden dezelfde kleur gaf, is wat mij betreft namelijk terecht.
Want die 2 gele draden zitten via het breadboard gewoon aan elkaar (op het plaatje waar dat over ging niet, maar dat was een vergissing van je).

Sterker nog, er is ook geen verschil tussen de gele, oranje en 1 blauwe draad.
Want die worden ook aan elkaar geknoopt op je breadboard.

Daarom kun je dus ook weer een kleinigheid veranderen.
Dan ga je met een draad van de Elco naar de loper van de potmeter, van de loper van de potmeter ga je vervolgens met dezelfde kleur door naar de condensator, en van daar weer door naar de A0 pin van je Arduino.
Die condensator kun je net als de Elco omdraaien en op z'n kop afbeelden.
En dan dat rare schuine draadje wegwerken door dat pootje gewoon te plaatsen in het gaatje direct naast het andere pootje van de condensator.
Natuurlijk moet je dan het zwarte draadje ook opschuiven zodat ie weer met hetzelfde pootje van de condensator is aangesloten.

Overigens ben ik het er niet mee eens dat dat zwarte horizontale draadje, zwart is.
Want het zit niet aan GND, maar aan de weerstand die op zijn beurt wel aan GND zit.
Het draadje een andere kleur geven zou ik ook niet doen; ik zou het draadje verwijderen.
Want de weerstand kun je gewoon aan de potmeter koppelen en het verticale zwarte draadje een paar posities naar rechts opschuiven zodat ie weer aan die nu ook opgeschoven weerstand zit.

Omdat we nu toch de puntjes op de in aan het zetten zijn:
De andere weerstand kan 1 positie hoger geplaatst worden, en het rode draadje aan die weerstand 1 positie inkorten.
Daarna heb je ineens 1 horizontale lijn over, want de 3 rij van boven is nu vrij gekomen door de laatste 2 veranderingen.

Overigens, dit is ook de manier waarop ik mij bezig houd met het schrijven van sketches voor de Arduino.
Eerst eens zien dat ik zaken werkend krijg, en daarna het steeds verder stroomlijnen zodat het er strak uitziet en vooral ook zo loopt.
Eigenlijk moet je het er ook tijdens het ontwikkelen strak laten uitzien, want daarmee kun je veel eenvoudiger het overzicht behouden (kijk maar eens naar je 1e en je recentste plaatjes).
Maar ja, zo zit ik nou eenmaal niet in elkaar.

Ja het ziet er nu veel netter en overzichtelijker uit en het is ook leuk om de progressie te zijn in de Fritzing! plaatjes.

Echter snap ik het verhaal van die blauwe draden nog niet. Het signaal van mijn audio is toch een heel ander signaal dan mijn potmeter, waarom moeten die dan dezelfde kleur hebben?
Mijn signaal vanuit mijn laptop(muziek) wat ik wil meten, deze draad moet dus wel een andere kleur zijn dan de andere draden? Terwijl deze toch ook is gekoppeld aan de Elco(en dan dus ook potmeter/A0)?

En als ik nu per se een draad wilde tussen mijn weerstand en potmeter, dan moest deze kleur toch niet blauw zijn(niet dat ik dat wil, maar in het geval dat)?

Huidig schema:

Ben momenteel mijn 100k weerstanden aan het zoeken, zodra ik deze heb gevonden kan ik gaan testen.

Wel nog een vraag, ik heb geen idee hoeveel Ohm mijn potmeter is, is dit erg?