Pegel von Audiosignal messen

Hi zusammen,

ich möchte den Pegel eines Audiosignals (Gitarrenpickup) messen um den als Schwellwert weiter verwenden zu können.
Der max Pegel liegt bei etwa 3,0 Vss (30 - 300 Hz).

Verwendet wird der Teensy 3.2 (3,3 Volt).

Bisher hatte ich an diese Eingangsbeschaltung (für Analog Messung) gedacht:

Sollte Grundsätzlich eher Analog (mit Vorspannung, wie im Bild), oder besser Digital (zB mit RMS IC bzw aktivem Gleichrichter) gemessen werden ?
Oder ein ganz anderer Ansatz ?

Wie würdet Ihr vorgehen ?

Grüsse

Woher kommt U~ ?

zwieblum:
Woher kommt U~ ?

vom Gitarren Pickup...

Ok, also potentialfrei. Ich würd' den 220nF und die 2x 470k weglassen und AX direkt auf einen Analogeingang legen. Dort, wo "2.5V" steht würd' ich auch ein Kabel an einen Analogeingang gehen lassen, damit du auch weißt was dein Bezugspotential ist.

Hi

Wenn doch 'nur' der Scheitelwert der Spannung benötigt wird, ginge Das doch ebenfalls mit Hardware zu erschlagen.
Signal über Spannungsfolger über Diode auf Kondensator, Entladewiderstand bestimmt die Zeitkonstante (RC-Glied).

So hast Du mit vier Bauteilen eine Scheitelspannung 'für eine kleine Ewigkeit'.

MfG

Na geh, das ist zu einfach!

Ok ... hätte nun auch nur wenig mit Arduino zu tun ... sehe meinen Fehler ein ... :wink:

zwieblum:
Ok, also potentialfrei. Ich würd' den 220nF und die 2x 470k weglassen und AX direkt auf einen Analogeingang legen. Dort, wo "2.5V" steht würd' ich auch ein Kabel an einen Analogeingang gehen lassen, damit du auch weißt was dein Bezugspotential ist.

hab die Spannungsmessung mal mit nem einfachen analogRead nach der Schaltung im Bild getestet,

  • scheint soweit zu funktionieren.

Sketch:

/*
  AC Messung mit  DC Offset
  A1 liegt mit 10 KOhm gegen Masse (Paralell dazu 40 nF)
*/

float Quellspannung = 3.3;
float val;


void setup()
{
  Serial.begin(115200);
}

void loop()
{

  val = analogRead(1) * (Quellspannung / 1024);
  Serial.print("analog 1 = ");
  Serial.println(val);

  //delay(150);
}

Testsignal Sinus 30 Hz (bzw 100 / 300 / 1000Hz).
Mein Oszi zeigt mir Vpp = 1,50 V vom Signalgenerator an.

Teensy rechnet mir aber bis max 2.07 V aus . ???
Differenz also nicht ganz Wurzel aus 2...

Eigentlich sollten doch zumindest die max Werte zwischen Oszi und Teensy soweit gleich sein...

Welche Messung ist jetzt richtig ?

Oszi und Messpitzen sind Kalibriert (Kopplung DC, Prüfspitzen = x 1,0; Peak Messung)

Ich hatte schon falsche Oszi (Rigol 1054 Z) Einstellungen vermutet (hab das Moped noch net so lange).
Laut User Manual entspricht der Messtyp Vpp aber hier auch tatsächlich Vss.

Braucht der Sketch ne andere Umrechnung, wenn ja welche ?


@postmaster-ino:
Die Idee mit einfacher Gleichrichtung hatte ich auch schon, leider fehlen dann vom Ursprünglichen Signal
schonmal bis ~ 0,7 V. - Es sei denn ich würde dafür eine aktive Diode / Gleichrichtung verwenden...

Grüsse

Nimm ein Oszi, dann weißt du's :slight_smile:

...hatte doch gerade geschrieben das ein Oszi verwendet wird ...

Die Frage ist nur ob das Oszi anders eingestellt werden muss (was ich nicht glaube), oder ob der Sketch für AC geändert werden muss (wenn ja wie) ?

oops, überlesen. Oszi ist sicher richtig. Dein Programm misst nicht Peak-Pek, onder GND-AnalogIn

Hi

stingray05:
@postmaster-ino:
Die Idee mit einfacher Gleichrichtung hatte ich auch schon, leider fehlen dann vom Ursprünglichen Signal
schonmal bis ~ 0,7 V. - Es sei denn ich würde dafür eine aktive Diode / Gleichrichtung verwenden...

Der Spannungsfolger mit ja nicht mit dem Invertiertem-Eingang an Seinem Ausgang angeschlossen werden - man kann Den auch hinter der Diode anklemmen - dann hat der Kondensator die Spannung, Die am Nicht-Invertiertem-Eingang anliegt (sofern Diese >= Der des Kondensator ist).

MfG

Hi zwieblum,

naja, bei den Oszi Einstellungen war ich mir nicht ganz sicher zumal es beim Rigol 1054 Z NORMAL,
PEAK DETECT, MITTELWERT und Hi Res gibt.

Derzeit eingestellt auf PeakDetect. Kanäle stehen auf AC Kopplung. Prüfspitzen stehen auf x1,0.

Wenn ich mal davon ausgehe das die Messwerte vom Oszi stimmen, wie kann ich den Teensy dazu überreden zumindest die gleichen max Werte anzuzeigen ?

Grüsse

  1. Anschluss am Spannungsteiler - dort wo in deiner Skizze 2.5V steht - mit einem AD-Wandler verbinden und messen. Das ist dein Referenzwert. e.g.: Signal-> A0, virtuelle Masse->A1.

Und du musst mit dem Oszi an die Eingänge vom uC gehen, also zu den Eingängen der 2 ADCs. e.g. A0, A1.

zwieblum:
2. Anschluss am Spannungsteiler - dort wo in deiner Skizze 2.5V steht - mit einem AD-Wandler verbinden und messen. Das ist dein Referenzwert. e.g.: Signal-> A0, virtuelle Masse->A1.

Und du musst mit dem Oszi an die Eingänge vom uC gehen, also zu den Eingängen der 2 ADCs. e.g. A0, A1.

Hi,

Ich messe bereits die µC Eingänge und die Eingangs AC mit dem Oszi.

DC seitig hab ich recht genau 1,65 V gegen Plus bzw Minus, allerdings nur ohne Eingangssignal…

Sobald das anliegt verschiebt sich ab 500 mV AC Eingangspegel leider die virtuelleMasse.
Offenbar der Grund für die abweichenden Messergebnisse beim Teensy…

Scheinbar brauchts davor wirklich noch nen Impedanzwandler wie postmaster-ino schon geschrieben hatte.

Wo genau müsste der dann hin?
An den Teensy Eingang oder an die Einspeisung des AC Signals ?

Welchen OPV könnt Ihr dafür empfehlen ?

BTW:
Wenn die Mess Schaltung denn mal funktionieren sollte stellt sich die Frage wie schnell ist analogRead beim Teensy (72MHz) ?
Beim Uno sinds wohl theoretisch 15000, in der Praxis 10000 Hz.

Zum Teensy 3.2 hab ich dazu keine Info finden können.

Wer weiß hier näheres ?

Grüsse

stingray05:
Zum Teensy 3.2 hab ich dazu keine Info finden können.

Wer weiß hier näheres ?

Paul Stoffregen hat sich dazu mal geäussert:
https://forum.pjrc.com/threads/29645-What-is-the-Sampling-Rate-for-ADC

Und ich glaube nicht, das die langsamer werden :wink:

Im Datenblatt ab Seite 36::

ADC conversionrate ≤ 13 bit modes
No ADC hardware averaging
Continuous conversions enabled, subsequent conversion time
min: 20.000 — max 818.330 Ksps

ADC conversionrate 16-bit mode
No ADC hardware averaging
Continuous conversions enabled, subsequent conversion time
min: 37.037 — max: 461.467Ksps

@Impedanzwandler: Operationsverstärker-Grundschaltungen � - dorthin, wo in deiner Skizze Ax steht. Aber wenn du schon mit OPs anfängst, dann kannst du den ganzen Zinober auch mit einem 4-fach OP erschlagen: idealer Gleichrichter → Tiefpass → Spannungsfolger → fertig.

Hi zusammen,

erstmal vielen Dank für Eure Inputs !

Ich bin mir trotzdem noch nicht im klaren welchen IC Baustein ich
a) für den Impedanzwandler (3,3 V) verwenden soll ?

b) würde die Version "idealer Gleichrichter -> Tiefpass -> Spannungsfolger -> fertig", die Eingangsschaltung aus dem Bild dann komplett ersetzen, oder benötige ich für die AC Messung dann immer noch die halbe Verorgungsspannung als Offset für die Spitzenwert Messung ?

c) Welchen IC (3,3 V) benötige ich für den idealen Gleichrichter ?

d) IC sollte "Breadboard friendly" sein...

Grüsse

Hi

Da der Spannungsfolger nur in Seinem Spannungsbereich hantieren kann und durch die Diode den Kondensator nur in eine Richtung laden kann, brauchst Du für die negative Halbwelle 'das Gleiche in grün' - nur anders herum.

MfG