Amplitude en frequentie van geluidsgolf uitlezen

De grootte (waarde) van de capaciteit maakt niets uit. Het enige wat veranderd is de wisselstroom weerstand volgends de formule z=1/(2 * PI * f * C). Als er DC door zou komen (wat wel eens kan gebeuren bij oude lekkende caps) dan hoor je bijvoorbeeld gekraak op een potmeter in een audio trap.
Dus zoals het er nu staat in de schakeling:

Signaal -> door elco zweeft rond 0V -> weerstand deler -> zweeft rond 2.5V -> blauwe cap -> zweeft rond 0V.

Volgorde zou moeten zijn:
Signaal -> potmeter -> cap (of elco) -> weerstandsdeler -> Opamp

De waarde van de potmeter ligt er een beetje aan wat de impedantie is van de geluidsbron. Als deze laag is kun je gerust richting de 25K oid. Is deze hoog dan moet je vrijwel naar een veel grotere waarde omdat je anders gen signaal overhoudt.

Daarom zie je vaak in audio trappen dat ze eerst het signaal versterken met een dB of 6 om een betere Signal/Noise ratio te krijgen.

Bedankt voor de (vele) reacties.

Heb het morgen en zaterdag nog druk met school, zondag hoop ik hier weer naar te kijken, dan zal ik even alles doorlezen en een update geven.

Nogmaals bedankt:)

Ik zal proberen op al jullie vragen antwoorden te geven:)
(van boven naar beneden door de posts gelopen)

Weet ook niet ik jullie nu met u of je moet beantwoorden, in deze post doe ik het maar met 'je'.

@Nico voor jou heb ik een paar vragen
bij puntje b zeg je dat het signaal opgetild kan worden, kan ik dit ook doen bij de opamp zelf, hier zitten twee poorten offset null.

Bij puntje d zeg je dat je voor niet inverterende versterker zou gebruiken, maar die heb ik ook gebruikt/getekend? Welleswaar iets anders dan in jouw voorbeeld, maar functie blijft hetzelfde?

@mas

Die 2e condensator (de lichtblauwe) is een filter.
Die laat hogere frequenties door naar GND, waardoor die verdwijnen.
Die signalen kun je toch niet verwerken met je Arduino, dus kun je ze net zo goed eruit filteren.
Aan jouw vraag te zien, dacht je dat het signaal in z'n geheel door die condensator moest gaan, maar dat is niet zo (en dus ook niet in de oudere tekening).
Ik heb alleen geen idee wat de juiste waarde voor de condensator zou moeten zijn.
Als die waarde te hoog is, dan word er dus teveel weggefilterd en houd je niet voldoende over om mee verder te werken.
Maar dat kun je testen, want dan laat je voor die test de condensator op die plaats even weg.
Functioneert het dan ineens een stuk beter, dan is die condensator duidelijk de schuldige.

Het is dus toch wel een LPF, dus de lage frequenties laat hij door, de hoge filtert hij?

De waarde van de condensator moet is 10nF

Overigens heb je voor de 2 weerstanden bij de potmeter gekozen voor een waarde van een 1, een nul met 4 nullen er achteraan.
Dat is 100 Kilo Ohm.
Das wel vrij hoog, en de waarde van de potmeter moet niet te laag zijn want anders doet dat ding erg weinig.
Door die hoge waarde, kun je wel gemakkelijker je audio signaal er op zetten.
Maar je pikt eventuele stoorsignalen ook wat sneller op.
Ik weet niet of je deze waarde uit een voorbeeld schakeling hebt gehaald waar je dat op gebaseerd zou kunnen hebben.
Wanneer je dat inderdaad uit een voorbeeld hebt, dan zou ik dat wel zo aanhouden (tenzij het van ..structables komt).

Kan het niet laten, maar het is een 1 met 5 nullen:)
De weerstanden zijn inderdaad 100 kOhm en de potmeter is 10kOhm. (gebaseerd op het volgende).

Het schema waarvan ik dit 'grotendeels' heb opgebouwd komt van de volgende site:
http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-realtime-audio-processing/

@Nico

Nope door die blauwe koppelcap haal je dc component weer weg en ben je terug bij af

Sorry, maar dit snap ik niet?

Vervolgens zeg je dit:

Signaal -> door elco zweeft rond 0V -> weerstand deler -> zweeft rond 2.5V -> blauwe cap -> zweeft rond 0V.

Volgorde zou moeten zijn:
Signaal -> potmeter -> cap (of elco) -> weerstandsdeler -> Opamp

Dit snap ik wel, behalve die blauwe cap:D

Daarom zie je vaak in audio trappen dat ze eerst het signaal versterken met een dB of 6 om een betere Signal/Noise ratio te krijgen.

Heeft dit te maken met 0.5LSB, zodat je een nauwkeuriger kunt samplen?

Ik zal nu eerst eens die filter weghalen en kijken wat er gebeurd:)

Nogmaals, hartelijk bedankt voor jullie reacties, elke keer leer ik er weer wat van, en kom ik er (helaas) ook weer achter dat ik het toch nog niet zo goed snapte:D

MAS3:
Volgens mij ligt dat wel aan hoe groot de capaciteit daarvan is, maar goed.
Dat kan Jarnovis dus testen door de het blauwe draadje uit H19 te halen (de andere kant kan voor de test nog wel even blijven zitten).
Das dus wat ik hierboven ook al voorstelde.

Heb dit geprobeerd. 1e sample geeft ~1.99V, daarna gaat het per sample met 0.01V omlaag. Tot het ~1.48V bereikt, dan blijft het stabiel, hoe kan dit komen?

Maakt ook niks hoe hard de muziek is en op welk volume het staat.

Het vage is, als ik mijn seriële monitor vervolgens opent, dan begint hij weer op ~1.99V.

Ik ga nu @Nico zijn manier proberen:)

Edit: Ik ben echt dom bezig, ik was de jumpwires vergeten in mijn Arduino te doen:D (op @Mas zijn manier, dus Nico zijn manier moet ik nog proberen).

Nu ik dat heb gedaan, krijg ik een signaal van 1.98V en dat blijft het ook. Pas na 1 minuut staat het op 1.75V en daar blijft het nu weer op staan.

Nu nog wel een andere (niet relevante vraag), hoe kan het zijn dat ik niks in mijn Arduino steek, maar toch een analoog signaal heb? (wat begint met 406 bytes en vervolgens naar beneden gaat tot ~300 bytes).

Dat blauwe cap verhaal kun je vergeten. Is een filter naar GND zie ik nu. Ik ben nu eenmaal een schema lezer :slight_smile:
Dat je toch wat meet op de analoge poort als er geen signaal op staat komt vermoedelijk omdat je de ingang niet naar GND trek. Daardoor pakt de ingang ruis en 50Hz brom op. enkele uVolt is al voldoende door de versterking.
Wat ik mis overigens is de negatieve feedback in de opamp schakeling.
Een opAmp kan gerust 100.000 x versterken. Dus als er slechts 1mV op staat zou het al theoretisch versterkt worden naar 100V. Dat kan dan wel niet omdat de voeding slechts 5V is.

Je moet dus de opamp instellen dat het signaal pp (point-2-point) maximaal 5V is. Anders gaat het signaal afkappen op de 5V en 0V.

Het signaal wordt tevens verzwakt door de weerstands deler via 2 stromen:
a) via de elco en de weerstandsdeler (naar GND) maar ook parallel daaraan via de weerstandsdeler via de VCC alsnog naar GND.

Het is mij ook niet duidelijk wat de geluidsbron is?

Oke, nog even een reply op @mas zijn schema.

Het signaal wat ik krijg zonder de condensator te gebruiken is van 1.98V tot 1.5V, echter ik kan mijn volume op 0 of 100 zetten, daar reageert het niet op.

Met condensator(blauwe cap) heb ik precies het zelfde verhaal.

Heb het schema van Nico ondertussen ook gebouwd en getest, de resultaten lijken er al op(denk ik), moet nog even een Fritzing! maken en wat screenshotjes, dan post ik het resultaat.

nicoverduin:
Dat blauwe cap verhaal kun je vergeten. Is een filter naar GND zie ik nu. Ik ben nu eenmaal een schema lezer :slight_smile:
Dat je toch wat meet op de analoge poort als er geen signaal op staat komt vermoedelijk omdat je de ingang niet naar GND trek. Daardoor pakt de ingang ruis en 50Hz brom op. enkele uVolt is al voldoende door de versterking.
Wat ik mis overigens is de negatieve feedback in de opamp schakeling.
Een opAmp kan gerust 100.000 x versterken. Dus als er slechts 1mV op staat zou het al theoretisch versterkt worden naar 100V. Dat kan dan wel niet omdat de voeding slechts 5V is.

Je moet dus de opamp instellen dat het signaal pp (point-2-point) maximaal 5V is. Anders gaat het signaal afkappen op de 5V en 0V.

Het signaal wordt tevens verzwakt door de weerstands deler via 2 stromen:
a) via de elco en de weerstandsdeler (naar GND) maar ook parallel daaraan via de weerstandsdeler via de VCC alsnog naar GND.

Het is mij ook niet duidelijk wat de geluidsbron is?

Duidelijk.

De negatieve versterking, ik weet niet wat je precies bedoeld, maar ik denk die weerstanden? Tussen poort 2 en 6? Deze zijn namelijk 1 + R1/R2 en R1 is momenteel 1kOhm en R2 330Ohm.

Hoe ik de opamp instel dat het signaal maximaal 5V is, dat doe ik toch ook met het bovenstaande? Als ik mijn maximaal ingangssignaal weet, dan kan ik ook bepalen wat mijn maximale versterking is.

5V / Maximale versterking = 1 + (R1/R2)

Je uitleg over de verzwakking van het ingangssignaal volg ik helaas niet, kan je dat wat toelichten?

Geluidsbron is mijn laptop -> aux kabel ->screw terminal jack (
Link)

Via deze splitter doe ik of mijn oortjes of een speaker aansluiten, op deze manier krijg ik én het signaal én geluid.

Jarno:

We hebben allebei gelijk.
Een één, een nul en 4 nullen, dat is dus een 1 met vijf nullen.
Wat ik beschreef is wat er op de weerstand afgedrukt staat en hoe dat gelezen word.

Nico's post over de 2e condensator vertelt dat Nico het niet eens is met mijn opmerking dat die condensator een filter vormen zou, maar die is daar inmiddels op terug gekomen zie ik net.

Dat je metingen weer van voor af aan beginnen nadat je de serial monitor hebt gestart is correct, want een seriële verbinding opstarten betekent dat de Arduino zich zal resetten en daarmee dus van voor af aan begint.

Nope door die blauwe koppelcap haal je dc component weer weg en ben je terug bij af

Sorry, maar dit snap ik niet?

Een condensator haalt een AC component weg wanneer die aan de andere kant met GND is verbonden, zoals hier.
In dit geval zou de AC component het audio signaal zijn dat aan de andere kant via de elco op die (DC) gelijkspanning werd gezet.
Die DC is dus de spanning die je met de 2 stuks een-met-vijf-nullen weerstanden had gecreëerd.

Wanneer de condensator aan (in dit geval) de linker kant blijft zitten en aan de rechter kant naar de opamp gaat, dan word de AC component juist doorgelaten en de DC weggenomen.
Maar die laatste is dus niet hoe het volgens jouw plaatjes zit.

Overigens was dat volgens mij de eerste keer dat je de waarde van die 2e condensator noemde.

Zoals je ziet, zijn er best wel componenten met enorm veel toepassingen.
Niet allen de opamps kun je voor veel verschillende zaken gebruiken, maar zo'n simpel weerstandje ook.
En dus de condensator.
Een sample word gemaakt door een ingebouwde condensator vol te laten lopen.
Daarbij word gemeten hoe lang het duurt tot die condensator op een bepaald niveau is, en die tijd genereert het resultaat van de sample.
Voor de volgende sample, moet de interne condensator wel eerst leeg gemaakt worden.
Eerlijk gezegd weet ik niet of er daarvoor iets is ingebouwd in de chip van de Arduino, zodat de condensator ontladen word als er niet gesampled word.
Een trucje dat gebruikt word om de condensator te ontladen, is een sample te nemen van een analoge pin die aan GND verbonden is.
Dan moet je wel zo'n analoge ingang over hebben natuurlijk.
Die ontlaad-sample is alleen daarvoor dus het resultaat ervan kun je dan meteen weggooien.

Het signaal uit de opamp word zelf al omlaag getrokken door de 2 x 220 Ohm weerstanden die aan de uitgang van de opamp naar GND gaan.

Ik zie net dat er al een aantal posts zijn gedaan tijdens het typen van dit verhaal.
Maar desondanks post ik m toch zodat het noeste typewerk niet voor niets is...

nicoverduin:
Volgorde zou moeten zijn:
Signaal -> potmeter -> cap (of elco) -> weerstandsdeler -> Opamp

Bedoel je op deze manier?

Ik hoop het niet, want dan krijg ik namelijk constant 1.98V

Ik heb het net (heel even) gedaan zonder spanningsdeler, maar dan krijg ik wel varierende waarden, maar dat wil ik niet, want negatieve spanningen vindt je Arduino niet zo leuk.

Dit heb ik gedaan, door mijn signaal wat uit de potmeter komt gelijk naar de opamp te sturen.

De resultaten (zonder spanningsdeler):

MAS3:
Een condensator haalt een AC component weg wanneer die aan de andere kant met GND is verbonden, zoals hier.
In dit geval zou de AC component het audio signaal zijn dat aan de andere kant via de elco op die (DC) gelijkspanning werd gezet.
Die DC is dus de spanning die je met de 2 stuks een-met-vijf-nullen weerstanden had gecreëerd.

Wanneer de condensator aan (in dit geval) de linker kant blijft zitten en aan de rechter kant naar de opamp gaat, dan word de AC component juist doorgelaten en de DC weggenomen.
Maar die laatste is dus niet hoe het volgens jouw plaatjes zit.

Overigens was dat volgens mij de eerste keer dat je de waarde van die 2e condensator noemde.

Het signaal uit de opamp word zelf al omlaag getrokken door de 2 x 220 Ohm weerstanden die aan de uitgang van de opamp naar GND gaan.

De filter is dus wel goed en is zover ik kan bepalen een LPF, omdat hij de lage signalen doorlaat en de hoge filtert?

Bedankt over de uitleg van de monitor, ik wist niet dat de Arduino dan weer helemaal opnieuw begon.

Ik ga eens een filmpje kijken van de werking van een condensator, want ik snap het nog steeds niet helemaal.

Het zou goed kunnen dat ik de waarde van de 2e condensator nu voor het eerst noemde, het lijkt erop dat ik heb gezegd dat ik hem vaker heb genoemd? (uit jouw reactie op te maken?:))

Die 2x 220 Ohm weerstanden zitten in de opamp of bedoel je die op mijn tekening? Die waarden zijn namelijk anders dan in de tekening zijn weergegeven (al een paar keer vergeten aan te passen in mijn Fritzing! tekening). R1 is 1kOhm en R2 is 330Ohm. Op deze manier heb ik een versterking van 4/3.

Soms moet je ff gek doen dus een schema in LTSPice gegooid. ![|416x500](http://www.verelec.com/tijdelijk/images/opamp versterker.jpg)

De groene lijn is een signaal van 6mV. De blauwe uitgang loopt tussen de 1.2 en 3.6V.
R4 is de load van de ADC ingang van de Arduino.
Ik had zomaar een opamp genomen maar dit zal wel werken met de meeste opamps

Voor de liefhebbers, LTSpice is gratis (zie dit artikel van Gitaarnet mede forumlid Fredjuh : LTspice IV, buizenfysica en een goede sound)

Hmm, dus mijn versterking heb ik nog steeds niet gemaakt eigenlijk? Ik dacht dat ik hem op deze manier 4/3 had gemaakt.

Daarnaast is mijn input signaal rond de 2.5 V + geluid (denk ook rond de 1v) dus met een versterking van 2000-6000 schiet dat niet op.

Hoe kan ik mijn weerstanden het beste aansluiten, zodat de versterking wel 4/3 is?

Schema heb ik je al gegeven. Je kan experimenteren door de 820k te verkleinen. Dan wordt de versterking vanzelf minder

Is weer een tijdje geleden maar heb uw schema gemaakt @Nico.

Voor R5 heb ik 5kOhm gepakt en voor R3 680kOhm.

Nu heb ik de volgende bevindingen:
Spanningsdeler komt 2.5V uit, dit is trouwens wel een vreemd verhaal:
Als ik een jumpwire van de 5V naar de weerstand zet meet ik 5V, plaats ik de weerstand aan de 5V meet ik 2.5V hier snap ik echt geen snars van, omdat het schema nog steeds precies het zelfde is.

Ik ben verder gegaan zonder jumpwire, zodat mijn spanningsdeler goed werkt.

Er voed de opamp met 5V.

Signaal uit mijn computer is:
0.05V en 0.53V (met volume max) dit veranderd mee als ik mijn geluid harder of zachter zet.
Als ik het volume op 0 zet (oftewel mijn geluid uit) meet ik 0.25V, hoe kan het dat ik nu toch wat meet en geen '0' krijg?

Signaal uit de opamp krijg ik 2.6V (met 1 MOhm en 680kOhm). Dit blijft constant, terwijl ik mijn volume verander of zelfs uit zet.

Vervolgens heb ik het geprobeerd met 1MOhm en 470kOhm. Dan meet ik constant rond de 2.7V, volume maakt weer niet uit.

Had blijkbaar de condensator niet (correct) aangesloten (facepalm).

De resultaten zagen er toen goed uit (maar mijn maximale voltage is 3.72?)

Heb een testje gemaakt aan de hand van excel met de volgende volumes:
0, 10, 30, 70 en 100. Elk volume heeft zijn eigen kleur in onderstaande afbeelding.

Vervolgens heb ik er mee gespeeld in excel om te kijken hoe het nu allemaal zit. Ik heb van elk volume 500 waarden onder de loep genomen.

Eerst wilde ik kijken naar de gemiddelde spanning, maar die is natuurlijk ongeveer evenhoog (sinus met 2V heeft ook - 2V).

Vervolgens gekeken naar de analoge waarden boven aan bepaalde waarde, hieronder het resultaat.

Kijkend naar de resultaten boven de 700 klopt het, kan ik nu concluderen dat het werkt? Zijn er andere manieren waarop ik dit kan testen?

Zal ook de weerstand waarden proberen aan te aanpassen zodat het bereik naar van 0-5V gaat. Zodra ik zeker weet dat dit werkt zal ik het schema van @nico nabouwen in Fritzing en posten, daarna ga ik programmeren zodat mijn ledstrip ook gaat werken, resultaat zal (kan wel weer een poosje gaan duren:P) natuurlijk gepost worden.

Volgens mij is dit het max. In ieder geval volgens de simulator. Daarna gaat het signaal clippen

Aha, bedankt! Zoiets dacht ik al, want wat voor weerstandwaarden ik ook pakte, de maximale spanning bleef ~3.72V

Is het trouwens verstandig om mijn weerstandwaarden lager te kiezen, zodat mijn maximale waarden ook pas bij maximaal volume bereik of is dat niet mogelijk? Heb dit zelf namelijk nog niet getest.

Waarom download je niet ltspice? Mooi leer projectje

Het is al weer een poosje geleden, maar alles werkt, bedankt voor iedereen die me geholpen heeft.

Momenteel ben ik nog e.e.a. aan het toevoegen(elektrisch en software) en wil ik een kastje later lasersnijden, daarna is het af. Zodra het af is zal ik het elektrisch schema, wat foto's en eventueel een filmpje laten zien.

Beste

Zou je het programma met mij kunnen delen ik zou graag weten hoe ik de frequentie uitlees maar loop er telkens op vast.

Alvast bedankt