Messung von Spannungsverläufen mit der Soundkarte.

Von Klaus-Dieter Grüninger, Landesbildungsserver Baden-Württemberg.


0.) Einführung.

Die Soundkarte ist ein preisgünstiges und einfaches Messinterface für zahlreiche Messungen in der Physik und Chemie.

Mithilfe der Spannungs-Frequenz-Wandlung kann man auch Gleichspannungen (und alles was sind darin wandeln lässt) mit der Soundkarte messen.
Die dazu verwendete, einfache Elektronik kann man selbst herzustellen und die nötigen Bauteile sind preisgünstig und einfach zu beschaffen.
Die Elektronik setzt die angelegte Spannung in ein dazu proportionales Tonfrequenzsignal um, das der Soundkarte eines Computers zugeführt wird und mithilfe eines Delphi-Programmes ausgewertet werden kann.
Dabei entspricht eine Spannung von 1 V einer Frequenz von 1 kHz. Spannungen im Bereich von 0.01 V bis 10 V (entsprechend 10 Hz bis 1 kHz) können mit der Schaltung erfasst werden.
Messelektronik und Auswertprogramm werden auf dieser Seite wird vorgestellt.


1.) Spannungsverläufe statt Gleichspannungen.

Eine Lade- und Entladekurve eines Kondensators

Die oben vorgestellte Möglichkeit weckt natürlich Begehrlichkeiten!

Könnte man nicht statt Gleichspannungen auch Spannungsverläufe mit der Soundkarte erfassen und auswerten?

Dann könnte man z.B. auch Messungen durchführen, wie den hier gezeigten Spannungsverlauf beim Laden und Entladen eines Kondensators über einen Widerstand.


Das gibt es doch schon längst, mag mancher einwenden, schließlich lassen sich doch Tonfolgen mit Programmen wie Goldwave, Cool Edit und ähnlichen Programmen aufzeichnen. Doch Vorsicht, ... hier geht es um ein ganz anderes Problem:

1.1.) Von Amplitudenmodulation und Frequenzmodulation.

a) Amplitudenmodulation und Zeitdauermessungen.

a1)

Wozu sich z.B. Goldwave ganz hervorragend eignet, ist Töne gleichbleibender Frequenz aber veränderlicher Amplitude zu verarbeiten.
Ein solches Signal erhält man z.B., wenn man die gedämpfte Schwingung eines LC-Kreises untersuchen möchte.

Um die Parallele zur Rundfunktechnik zu benutzen, Goldwave eignet sich sehr gut zur Erfassung von "amplitudenmodulierten Signalen".

a2)

Auch die Dauer eines Signals, oder die Zeit zwischen zwei Signalen, lässt sich mit Goldwave sehr gut erfassen.
Man kann so z.B. Schallgeschwindigkeitsmessungen durchführen und Fallzeiten von Körpern bestimmen.

b) Frequenzmodulation.

Wird mithilfe der Spannungs-Frequenz-Wandlung eine Spannung in eine dazu proportionale Frequenz umgesetzt, so führt eine Änderung der Spannung zu einer Frequenzänderung, die Amplitude des Signals ändert sich dabei praktisch nicht wesentlich.

Dies entspricht in der Rundfunktechnik einer "Frequenzmodulation".

Ein solches Tonsignal ist, vor allem wenn sich die Spannung (und damit die Frequenz) nur langsam ändert, mit Goldwave nur extrem mühsam auszuwerten.


1.2.) Beispiele machen das Problem deutlicher: hören ist nicht gleich sehen.

Um die Problematik noch deutlicher herauszuarbeiten, hier ein paar Aufzeichnungs- und Hörbeispiele davon, was bei der Spannungs-Frequenz-Wandlung herauskommt, wie Goldwave es aufgezeichnet hat.
(Sie können jeweils in die Grafik klicken, und dadurch die Tondatei abspielen, sofern ihr Computer mp3-Tondateien wiedergeben kann).

a) "vertrauensbildende Maßnahmen":

Was hört man, wenn man eine konstante Spannung von 1,0 V an den Spannungs-Frequenz-Wandler anlegt?

Man bekommt dann ein zeitlich konstantes Tonsignal der Frequenz 1,0 kHz.

1V-1000 Hz

In den Bereich von 0.245 s und 0.240 s (also 0.005 s) passen 5 Perioden. Eine Periode hat also die Länge 0.001 s, was einer Frequenz von 1000 Hz entspricht.

b) zeitliche Änderungen:

Wie wird es sich anhören, wenn man die Spannung am Kondensator beim Lade- und Entladevorgang aufzeichnet?
Ladevorgang:

die Spannung wächst zunächst schnell an, verändert sich aber im Laufe des Ladevorgangs kaum noch
-> die Tonfrequenz nimmt zu Beginn rasch, gegen Ende des Vorgangs kaum noch zu.
Entladevorgang:

die Spannung fällt zu Beginn rasch ab, am Ende des Entladevorgangs ändert sich die Spannung kaum noch und geht gegen 0 V
-> die Tonfrequenz nimmt anfangs schnell ab, ändert sich gegen Ende kaum noch. Die Frequenz geht nach sehr langer Zeit gegen 0 Hz.
Tonsignal: Laden und Entladen eines Kondensators

Die Abbildung zeigt einen Ausschnitt aus dem Beginn des Ladevorgangs.
Man sieht deutlich, dass zu Beginn die Amplitudendauern größer, also die Frequenzen kleiner sind als am Ende des Ausschnitts. Die Frequenz (und damit die Spannung) wächst also an.

Sie können sich sicher vorstellen, wie sich das anhört!
Probieren Sie aus, ob das Ergebnis ihren Erwartungen entspricht .(in die Grafik oben klicken)

Hat man Boxen an den Ausgang der Soundkarte angeschlossen, oder einen Laptop mit eingebauten Lautsprechern, so kann man das Signal beim realen Experiment auch direkt hörbar machen.
Sie können aus dem Höreindruck einer Messung den Spannungsverlauf sicher qualitativ beschreiben. Jedoch können Sie den mit Goldwave erhaltenen Verlauf nur mit großem Aufwand quantitativ auswerten:

In jeweils gleichen Zeitabständen müssten Sie dazu jeweils einige Perioden herausvergrößern, daraus die Periodendauer und die Frequenz ermitteln (etwa so wie in a)), die erhaltene Frequenz in Spannungswerte zurückrechnen und das Ergebnis dann von Hand in einem Spannungs-Zeit-Diagramm auftragen .... ein sehr mühsames Unternehmen!


2.) Ein Programm nimmt einem die Arbeit ab.

Genau diese Aufgabe übernimmt das Programm, das Sie weiter unten herunterladen können.

In gleichen, vorgebbaren Zeitabständen untersucht das Programm das Tonsignal und ermittelt daraus die aktuelle Frequenz / Spannung. Dabei wird eine ebenfalls vorgebbare Zahl von Messungen ausgeführt und die ermittelten Spannungswerte für beide Kanäle in eine Tabelle (rechts) eingetragen.
Parallel dazu wird der Spannungsverlauf auch in einem Diagramm (unten) angezeigt.

verkleinerter Screenshot des Programmes

(verkleinerter Screenshot des Programms - es wurde dieselbe Kondensatorladung / entladung wie oben aufgezeichnet.
Ein Kondensator von 4 Mikrofarad wird über einen Widerstand von 300 kOhm geladen und entladen).

Das Programm ist einfach zu bedienen und relativ selbsterklärend.

Durchführen einer Messung.

Im Fenster oben links kann die Zahl der Messungen (max. 500) und der zeitliche Abstand zwischen zwei Messungen (zwischen 100 ms und 100.000 ms = 100s) eingestellt werden. Die Messdauer beträgt damit zwischen 1,0 s (10 Messungen mit 100 ms Abstand) und knapp 14 Stunden (500 Messungen mit 100 s Abstand). Damit sollte eine Vielzahl von Messungen möglich werden.

Während der Messung informiert das Fenster daneben über die Nummer der Messung und die aktuellen Spannungswerte.
Der Regler "Empfindlichkeit" (darüber) dient zur Anpassung an kritische Soundkarten-Eingänge.

Skalieren des Diagramms.

Nach Abschluss der Messung kann man die Spannungsachse und die Zeitachse mit den Ziehbalken neben dem Diagramm auch "zoomen" (was hier gemacht wurde)
Ausschnitte sind dabei in dieser Programmversion nicht möglich. Es wäre aber möglich so etwas zu programmieren.

Speichern, Laden und Weiterverarbeiten von Messdaten.

Natürlich können die Messdaten auch abgespeichert und wieder geladen werden (Menü "Datei"). Dabei wird jeder Datensatz (Messungsnummer, Zeit, Spannung linker Kanal, Spannung rechter Kanal) in einer Zeile als Text mit einem Semikolon als Trennzeichen ausgegeben. Damit ist der Import der Messdaten in eine Tabellenkalkulation (wie z.B. EXCEL) und eine Weiterverarbeitung leicht möglich.

Das Diagramm lässt sich auch ausdrucken. Der Ausschnitt für den Ausdruck ist derselbe, der auch im Diagramm gezeigt wird. Die Größe des Ausdrucks läßt sich mit dem "Drucker Zoom Faktor" verändern. Die voreingestellte Größe "5" ergibt etwa 1/4 DIN A 4 Blatt, Größe "12" druckt im Querformat etwa eine DIN A 4 Seite voll.

Beeinflussen der Windows-Mixer Einstellungen.

Das Programm benutzt die Freeware-Komponente TAudioMixer von Vit Kovalcik. Beim Programmstart wird der Mikrofon-Eingang zugeregelt und der Line-In Eingang aktiviert und auf maximale Intensität gesetzt. Bei Programmende werden die alten Einstellungen zurückgeschrieben. Man kann jedoch auch über das Menü "Optionen " und "Mixer Einstellungen" die Einstellungen des Windows-Mixers noch gezielt verändern.


2.1.) Die Qual der Wahl - vom Problem Momentanwerte zu erfassen.

2.1.1.) Wie erfasst man Momentanwerte möglichst genau? -
Ein kritisches Hinterfragen an einem einfachen Beispiel aus der Kinematik.

Momentanwerte zu erfassen ist immer problematisch:
Möchte man z.B. die Momentangeschwindigkeit ermitteln, so setzt man voraus, dass sich die Geschwindigkeit während des kurzen Messintervalls nicht merklich ändert, dass die Geschwindigkeit also während dieses kurzen Messintervalls quasi konstant ist. Ist sie das nicht, so ermittelt man eine mittlere Geschwindigkeit.

Nach der Theorie erhält man den Momentanwert der Geschwindigkeit um so genauer, je kleiner man das Messintervall macht, da sich dann die Geschwindigkeit während des Messintervalls möglichst wenig ändern kann.

... und nun die Praxis:

stellen Sie sich vor, Sie haben bei einer Messung die Lichtschranken im Abstand von 0,1 m aufgestellt
Durchfährt ein Fahrzeug die Lichtschranken mit 1 m/s , so messen Sie als Zeitintervall 0,1 s. Wenn Ihre Uhr mit einer Zeitauflösung von 0,001s "tickt", so entspricht dies 100 Perioden "Uhrtakt".
Fährt nun ein anderes Fahrzeug mit 10 m/s durch die Anordnung, so ist das Zeitintervall nur 0,01s, das entspricht 10 Perioden "Uhrtakt". Dabei können Sie prinzipiell nur mit einer Messgenauigkeit von 1 Periodendauer rechnen, denn die Uhr könnte gerade eine neue Periode begonnen haben, wenn das Fahrzeug die erste Lichtschranke erreicht, oder erst kurz davor sein. Sie registrieren dann 10 oder auch nur 9 "Uhrtakte", Sie müssen also mit einem Messfehler von 10% rechnen.
Ein Fahrzeug, das mit etwas mehr als 100 m/s durch die Anordnung fährt, was 0,001s Aufenthaltszeit in der Messanordnung entspricht, registrieren Sie (je nach "Phasenlage" der Uhr zum Ereignis) entweder "fast richtig" mit 1 Periode - oder auch gar nicht.

Ein Verkleinern des Messintervalls, das nach der Theorie die Messgenauigkeit verbessern sollte, verschärft das Problem nur:
bei einem Lichtschrankenabstand von 0,01 m messen Sie schon bei einer Fahrzeuggeschwindigkeit von 10 m/s nur eine Periode Aufenthaltszeit zwischen den Lichtschranken - oder auch gar keine.

Die Idee der Theorie, die Genauigkeit der Messung zu verbessern, indem man das Messintervall möglichst klein macht, klappt nur, wenn die Auflösung der Auswertung genau genug gemacht werden kann. Genau dies ist in der Praxis meist aber nicht der Fall.

2.1.2.) .... die Parallele zur Erfassung von Spannungen mit der Spannungs-Frequenz-Wandlung.

Was hat das Beispiel aus der Kinematik mit der Messwerterfassung von Spannungen und Frequenzen zu tun, werden Sie fragen.

Mit dem beschriebenen Programm messen wir eine Momentanfrequenz, die eine Momentanspannung repräsentiert. Wir gehen dabei ebenfalls davon aus, dass sich die Spannung (und Frequenz) während des kurzen Messintervalls nicht merklich ändern. Tun sie das doch, so ermitteln wir eine mittlere Frequenz und eine mittlere Spannung. Das ist also genau dieselbe Problematik wie im Beispiel aus der Kinematik.

Wir haben oben gelernt, dass die "Genauigkeit der Uhr" bei der Ermittlung des Momentanwerts eine entscheidende Rolle spielt, dass das Messintervall in der Praxis nur so klein gemacht werden kann, wie auch die Messerfassung (Uhr) noch mitmacht.

Eine große Zahl von Messungen je Sekunde (kurzes Messintervall) macht also die Messungen nicht - wie nach der Theorie zu erwarten - genauer, sondern geht auf Kosten der Messgenauigkeit.

2.1.3.) Die Genauigkeit der Erfassung bei der Soundkarte.

Soundkarten arbeiten meist mit einer Framerate von 44100, d.h. sie erfassen je Sekunde 44100 Spannungswerte.
Bei der Messung werden die erfassten Spannungswerte in einen Speicherpuffer geschrieben, dessen Größe man im Programm bei den Eigenschaften von TAudioIn festlegen kann (BufferSize). Immer, wenn ein Puffer voll ist, wird dies dem Programm gemeldet. Das Programm wertet das gespeicherte Frequenzsignal aus. Es wird dabei ermittelt, wie viele Perioden das Signal im Puffer hat. Mit Hilfe der Framerate und der Puffergröße bekommt man daraus die Frequenz und die zugehörige Spannung.
Ein Beispiel:


Es wird eine Momentanspannung von 1,0 V gemessen, die Momentanfrequenz ist also 1 kHz, die Periodendauer des Signals 0,001 s.
Die Puffergröße ist auf 4096 eingestellt, die Framerate betrage 44100.
Dann läuft der Puffer jeweils nach 4096 / 44100 = 0,093 s voll und kann ausgewertet werden. In einem Puffer werden also 0,093 / 0,001 = 93 Perioden registriert. Je nach Phasenlage (s.o.) könnten es auch 92 oder 94 sein, die Genauigkeit beträgt hier also ca. 1%.
Ist die Spannung nur 0,1 V, so ist die Frequenz 100 Hz und die Periodendauer des Signals 0,01 s. Man registriert dann etwa 9 Perioden im Puffer, die Genauigkeit ist dann nur noch etwa 10%.

Hätte man die Puffergröße mit 32768 Byte gerade 8 mal so groß gewählt, hätte es zwar 32768 / 44100 = 0,74 s gedauert, bis der Puffer voll ist, dann hätte man aber 8 mal so viele Perioden zur Auswertung bekommen (also 744 bzw.72) was die Auswertgenauigkeit erhöht hätte, dafür aber weniger Messungen je Sekunde zulässt.
Ändert sich die Spannung / Frequenz schnell, so hätten Sie zwar relativ genau gemessen, aber nur eine mittlere Frequenz während der 0,74 s ermittelt.


2.2.) ... die Qual der Wahl.

Screenshot: Einstellungen

Im Programm haben Sie die Wahl, ob Sie möglichst vielen Messungen je Sekunde (bei kleinerer Auflösung) den Vorzug geben, oder, ob Ihnen eine gute Genauigkeit wichtig ist, Sie dafür nur weniger Messungen je Sekunde in Kauf nehmen.

Das können Sie unter "Optionen" und "Einstellungen" vereinbaren.

Mehr als 10 Messungen je Sekunde (Messabstand 100 ms - Puffergröße 4096 Byte) ist von der Auflösung her kaum vertretbar. Bei relativ schnellen Vorgängen werden Sie also die Einstellung "schnell, weniger genau" wählen.

Voreingestellt ist die "mittlere Einstellung" mit einer Puffergröße von 8192 Byte und einer Messintervalllänge von 200 ms (5 Messungen je Sekunde). Ist die Spannung nicht zu klein, ist die Genauigkeit damit 5% oder besser.

Dauert der Messvorgang lange (z.B. Abkühlvorgänge messen) und sind die Spannungen klein, so werden Sie der letzten Einstellung den Vorzug geben.

Ich habe die Hintergründe hier auch deshalb so ausführlich dargestellt, damit Sie das Programm ggf. auch noch - bei einer Weiterentwicklung des Quellcodes - an Ihre Verhältnisse anpassen können, soweit dies TAudioIn zulässt.
Mit dessen Arbeitsweise kenne ich mich nicht aus, von Anfragen in dieser Richtung sehen Sie daher bitte ab.


3.) Download des Programms und des Quellcodes.

Folgende Dateien können hier kostenlos heruntergeladen werden.
Es gelten die nachfolgenden Lizenzbedingungen.

die lauffähige Version des Programmsherunterladen ( 561 kB ) EXE-Datei
die kommentierten Delphi6-Quellcodes herunterladen ( 342 kB )  

Lizenzbedingungen:

  • Die Überlassung des Programms und der Quellcodes erfolgt für Zwecke der Bildung und Ausbildung kostenlos (Freeware). Programm und Quellcodes dürfen weitergegeben werden.
    Das Programm nutzt die Delphi-Komponenten TAudioIO von John Mertus und TAudioMixer von Vit Kovalcik, die ebenfalls Freeware sind.
  • Das Programm wird überlassen "wie es ist", eine Haftung für mögliche Fehlfunktionen und Datenverlust wird nicht übernommen.
  • Das Programm erhebt nicht den Anspruch, den programmiertechnisch elegantesten Weg zu verfolgen.
  • Das Programm darf (und soll) weiterentwickelt werden. Dabei muss der Copyright-Vermerk im Quelltext und der Titelzeile erhalten bleiben, er darf ergänzt werden.
  • Der Landesbildungsserver würde sich darüber freuen, eine weiterentwickelte Version allen interessierten Nutzern zu den gleichen Bedingungen anbieten zu können. Kosten für die Weiterentwicklung können aber nicht übernommen werden.
  • Eine kommerzielle Nutzung des Programms in der vorliegenden oder einer weiterentwickelten Form bedarf der Zustimmung des Autors
    (Zuwiderhandlungen stellen eine Copyright-Verletzung dar und werden strafrechtlich verfolgt).

© Klaus-Dieter Grüninger, Landesbildungsserver Baden-Württemberg, 2005