Discussion:
frequenz-spannungs-wandler 0-2Hz
(zu alt für eine Antwort)
Mark
2010-07-31 14:35:40 UTC
Permalink
Hallo,

ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Vielleicht gibt es ja auch eine einfachere Moeglichkeit, so eine
Schaltung aufzubauen. Z.Bsp.: einen Kondensator ueber einen Widerstand
laden oder was mit dem NE555? Also wenn jemand Tips diesbezueglich hat,
bin ich sehr dankbar.
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
--
Gruss
Mark
Harald Wilhelms
2010-07-31 15:02:15 UTC
Permalink
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Natürlich kann man jede beliebige Frequenz in eine Spannung
umwandeln, Du brauchst aber immer eine Einschwingzeit. Diese
sollte das 10...100fache der Periodendauer sein. Deshalb ist
dieses Verfahren für Dich wohl kaum Brauchbar. Besser ist es,
die Periodendauer von Nadeldurchgang zu Nadeldurchgang zu
messen und diesen Wert in Liter / min umzurechnen.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wie man eine solche Rechnung mit überschaubaren
Aufwand ohne uP machen kann, weiss ich allerdings
nicht. :-(
Gruss
Harald
Mark
2010-07-31 15:30:57 UTC
Permalink
Post by Harald Wilhelms
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Natürlich kann man jede beliebige Frequenz in eine Spannung
umwandeln, Du brauchst aber immer eine Einschwingzeit. Diese
sollte das 10...100fache der Periodendauer sein. Deshalb ist
dieses Verfahren für Dich wohl kaum Brauchbar. Besser ist es,
die Periodendauer von Nadeldurchgang zu Nadeldurchgang zu
messen und diesen Wert in Liter / min umzurechnen.
Ja, so wollte ich's machen. Dann ist es halt bei niedriger
Durchflussrate nicht so sehr aktuell wie bei Hoeherer Rate.
Post by Harald Wilhelms
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wie man eine solche Rechnung mit überschaubaren
Aufwand ohne uP machen kann, weiss ich allerdings
nicht. :-(
Gruss
Harald
--
Gruss Mark
Heiko Nocon
2010-07-31 15:17:45 UTC
Permalink
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Soweit kein Problem.
Post by Mark
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Auch noch kein Problem (wenn das Meßsignal selber einigermaßen linear
ist).
Post by Mark
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Sowas macht man heutzutage mit einem µC für ein paar Cent. Der kann die
Periode messen und die Ausgangsspannung per PWM bereitstellen. Was
zusätzlich auch noch möglich ist: Einfache Kompensation von (zu
ermittelnden) Nichtlinearitäten des Meßsignals.

Das einzige Problem, was man hat: Benötigte Latenz vorgeben. Also: Wie
sehr darf die Ausgangsspannung der Eingangsfrequenz hinterhereiern.
Je geringer die geforderte Latenz, desto höher muß die PWM-Frequenz
sein. Das eigentliche Problem ist die Filterung eben dieser Frequenz.
Die bestimmt die Zeitkonstante, mit der das Ausgangssignal dem
Eingangssignal folgen kann.

Das ist allerdings kein Problem, welches spezifisch für eine Lösung mit
einem µC wäre. Jede andere denkbare Lösung betrifft das prinzipiell
ähnlich, PWM oder nicht PWM ist dabei auch egal.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wer die naheliegendste, einfachste, beste und billigste Lösung aus
unerfindlichen Gründen nicht will, der ist selbst schuld. No mercy.
Mark
2010-07-31 15:55:02 UTC
Permalink
Post by Heiko Nocon
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Soweit kein Problem.
Post by Mark
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Auch noch kein Problem (wenn das Meßsignal selber einigermaßen linear
ist).
Das Messsignal ist eigentlich die Zeit zwischen den Pulsen. Und Diese
ist umso groesser, je kleiner die Durchflussrate ist. Qasi alle 10 liter
ein Puls. Also proportional zu 1/T.
Post by Heiko Nocon
Post by Mark
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Sowas macht man heutzutage mit einem µC für ein paar Cent. Der kann die
Periode messen und die Ausgangsspannung per PWM bereitstellen. Was
zusätzlich auch noch möglich ist: Einfache Kompensation von (zu
ermittelnden) Nichtlinearitäten des Meßsignals.
Das einzige Problem, was man hat: Benötigte Latenz vorgeben. Also: Wie
sehr darf die Ausgangsspannung der Eingangsfrequenz hinterhereiern.
Also unter einer Sekunde reicht hier.
Post by Heiko Nocon
Je geringer die geforderte Latenz, desto höher muß die PWM-Frequenz
sein. Das eigentliche Problem ist die Filterung eben dieser Frequenz.
Hmm, warum denn PWM. Dann mach ich doch aus einer Frequenz eine andere.
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen. Ist
keine Massenfertigung, also kommts auf den Preis nicht so an.
Post by Heiko Nocon
Die bestimmt die Zeitkonstante, mit der das Ausgangssignal dem
Eingangssignal folgen kann.
Das ist allerdings kein Problem, welches spezifisch für eine Lösung mit
einem µC wäre. Jede andere denkbare Lösung betrifft das prinzipiell
ähnlich, PWM oder nicht PWM ist dabei auch egal.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wer die naheliegendste, einfachste, beste und billigste Lösung aus
unerfindlichen Gründen nicht will, der ist selbst schuld. No mercy.
--
Gruss Mark
Frank Buss
2010-07-31 16:19:24 UTC
Permalink
Post by Mark
Hmm, warum denn PWM. Dann mach ich doch aus einer Frequenz eine andere.
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen. Ist
keine Massenfertigung, also kommts auf den Preis nicht so an.
Er meint, das PWM Signal integrieren, sodaß nahezu eine Gleichspannung
entsteht. Man kann sogar mit einem kleinen Microcontroller ein PWM-Signal
FM modulieren, sodaß man nach dem Integrator das demodulierte Signal
bekommt, z.B. für einen sehr langsamen Sinus mit 1 Hz:

http://www.frank-buss.de/blinker/

oder auch schneller, wenn die PWM-Frequenz höher ist und der Tiefpassfilter
eine höhere Grenzfrequenz hat. Für deinen Fall ist das aber ziemlich
trivial.

Schade, daß man scheinbar den Pico ADC11 nicht programmieren kann, denn
dann bräuchte man gar keine extra Hardware. Wenn du allerdings einen PC
angeschlossen hast, könntest du den Zeigerdurchlauf bei entsprechend hoher
Samplerate in Software direkt messen. Allerdings sagt das Manual, daß
tatsächlich Messwerte verlorengehen können unter Windows. Müsste man den
Entwicklern vielleicht mal ein Grundlagenbuch schenken, wo der Sinn und die
Funktionsweise eines FIFOs erklärt wird.
--
Frank Buss, ***@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Mark
2010-08-03 12:13:27 UTC
Permalink
Post by Frank Buss
Post by Mark
Hmm, warum denn PWM. Dann mach ich doch aus einer Frequenz eine andere.
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen. Ist
keine Massenfertigung, also kommts auf den Preis nicht so an.
Er meint, das PWM Signal integrieren, sodaß nahezu eine Gleichspannung
entsteht. Man kann sogar mit einem kleinen Microcontroller ein PWM-Signal
FM modulieren, sodaß man nach dem Integrator das demodulierte Signal
http://www.frank-buss.de/blinker/
oder auch schneller, wenn die PWM-Frequenz höher ist und der Tiefpassfilter
eine höhere Grenzfrequenz hat. Für deinen Fall ist das aber ziemlich
trivial.
Schade, daß man scheinbar den Pico ADC11 nicht programmieren kann, denn
dann bräuchte man gar keine extra Hardware. Wenn du allerdings einen PC
angeschlossen hast, könntest du den Zeigerdurchlauf bei entsprechend hoher
Samplerate in Software direkt messen. Allerdings sagt das Manual, daß
tatsächlich Messwerte verlorengehen können unter Windows. Müsste man den
Entwicklern vielleicht mal ein Grundlagenbuch schenken, wo der Sinn und die
Funktionsweise eines FIFOs erklärt wird.
Also mit dem Picoscope Software kann man ja auf jedenfall Frequenzen
messen. Vielleicht gehts ja irgendwie, diese auch mit zu loggen. Muss
ich mir nochmal genauer ansehen.

Softwareloesung ist auch nicht ausgeschlossen, hab ich nur noch nicht
dran gedacht. Vielleicht kann ich da mein Delphi etwas erweitern, mehr
als ein kleines Rechenprogramm hab ich da allerdings auch noch nicht
programmiert. Aber die Einarbeitung geht recht schnell, die meisste
Zeit verbringt man damit, mit der Maus Eigenschaften von Objekten
festzulehgen. :-)

Zur Zeit hab ich noch einen Drucksensor, den ich auch logge, aber das
koennte man dann in die Software gleich mit einbinden.
--
Gruss
Mark
Heiko Nocon
2010-07-31 16:23:46 UTC
Permalink
Post by Mark
Hmm, warum denn PWM.
Weil das das einfachste Verfahren zur Wandlung irgendeines
diskontinuierlichen Meßwertes in eine Spannung ist.
Post by Mark
Dann mach ich doch aus einer Frequenz eine andere.
Nein. Bei PWM steuert die Eingangsfrequenz nicht die Ausgangsfrequenz,
sondern den duty factor selbiger. Das hat den Hauptvorteil, daß man die
Ausgangsfrequenz konstant und sehr hoch festlegen kann (rein theoretisch
beliebig hoch). Eben das erleichtert es, einen großen Abstand zur
benötigten Nutzfrequenz zu erzielen. Vereinfacht und verbilligt die
Filter und überhaupt...
Post by Mark
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen
Unnötig. Kontraproduktiv.
Stefan
2010-07-31 17:57:34 UTC
Permalink
Post by Mark
Hmm, warum denn PWM. Dann mach ich doch aus einer Frequenz eine andere.
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen. Ist
keine Massenfertigung, also kommts auf den Preis nicht so an.
Post by Heiko Nocon
Die bestimmt die Zeitkonstante, mit der das Ausgangssignal dem
Eingangssignal folgen kann.
Das ist allerdings kein Problem, welches spezifisch für eine Lösung mit
einem µC wäre. Jede andere denkbare Lösung betrifft das prinzipiell
ähnlich, PWM oder nicht PWM ist dabei auch egal.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wer die naheliegendste, einfachste, beste und billigste Lösung aus
unerfindlichen Gründen nicht will, der ist selbst schuld. No mercy.
Geht sicher ohne Microcontroller. Ich würde aber auch einen nehmen ;-)

Ansonsten müsste es auch so gehen:

Das Signal auf ein einfaches RC-Glied, d.h. einen Tiefpass schalten.

Parallel zum R liegt aber eine Diode mit einem kleineren Widerstand in
Reihe.

Wenn jetzt der Puls kommt, steigt die Spannung am C. Je länger der Puls
ist, umso höher steigt die Spannung. Geht das Eingangssignal auf 0,
entlädt sich der Kondensator über die Diode schneller, als über den R.

Jetzt noch ein Sample & Hold Schalter, der mit der fallenden Flanke des
Eingangssignals getriggert wird.

Am Ausgang des S&H hat man dann eine Spannung, die von der Pulsbreite
abhängt. Diese ist aber umso kleiner, je höher die Frequenz ist.
Mark
2010-08-03 12:16:50 UTC
Permalink
Post by Stefan
Post by Mark
Hmm, warum denn PWM. Dann mach ich doch aus einer Frequenz eine andere.
Ich will ja eine Analogspannung proportional zur Durchflussrate. Wenn
schon Controller, dann koennte ich ja ein mit DA Wandler nehmen. Ist
keine Massenfertigung, also kommts auf den Preis nicht so an.
Post by Heiko Nocon
Die bestimmt die Zeitkonstante, mit der das Ausgangssignal dem
Eingangssignal folgen kann.
Das ist allerdings kein Problem, welches spezifisch für eine Lösung mit
einem µC wäre. Jede andere denkbare Lösung betrifft das prinzipiell
ähnlich, PWM oder nicht PWM ist dabei auch egal.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Wer die naheliegendste, einfachste, beste und billigste Lösung aus
unerfindlichen Gründen nicht will, der ist selbst schuld. No mercy.
Geht sicher ohne Microcontroller. Ich würde aber auch einen nehmen ;-)
Das Signal auf ein einfaches RC-Glied, d.h. einen Tiefpass schalten.
Parallel zum R liegt aber eine Diode mit einem kleineren Widerstand in Reihe.
Wenn jetzt der Puls kommt, steigt die Spannung am C. Je länger der Puls
ist, umso höher steigt die Spannung. Geht das Eingangssignal auf 0,
entlädt sich der Kondensator über die Diode schneller, als über den R.
Jetzt noch ein Sample & Hold Schalter, der mit der fallenden Flanke des
Eingangssignals getriggert wird.
Am Ausgang des S&H hat man dann eine Spannung, die von der Pulsbreite
abhängt. Diese ist aber umso kleiner, je höher die Frequenz ist.
Das wuerde gehen, kann man der Loggsoftware von Pico beibringen.(1/x)
--
Gruss
Mark
Harald Wilhelms
2010-07-31 18:02:02 UTC
Permalink
Post by Mark
Post by Heiko Nocon
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Das einzige Problem, was man hat: Benötigte Latenz vorgeben. Also: Wie
sehr darf die Ausgangsspannung der Eingangsfrequenz hinterhereiern.
Also unter einer Sekunde reicht hier.
Wenn Du eine Frequenz von 0,016Hz hast,
kannst Du bestenfalls jede Minute einen
neuen Messwert bekommen. Mit einem uP
würde man die Periodendauer sowieso
digital messen, sodas ein Spannungs-
Frequenz-Wandler dann keinen Sinn mehr
macht. Die DA-Wandler von uCs arbeiten
übrigens überwiegend nach dem PWM-Prinzip;
es gibt aber wohl auch einige, die "echte"
DA-Wandler enthalten.
Gruss
Harald
Andreas Fecht
2010-07-31 18:27:40 UTC
Permalink
Post by Mark
Hallo,
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal 10l/min.
fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben. Ich
habe hier den Pico ADC11. Deswegen ist die Hoehe der Ausgangsspannung
fuer den groesten Wert auch nicht so wichtig. Aber linear sollte es sein.
Ich habe sowas ähnliches mal entwickelt, das Projekt wurde dann aus
politischen Gründen leider eingestampft, fertigentwickelt ist es
dennoch. Die Anwendung war damals sogar für Wasserzähler gedacht.

Die Doku habe ich gerade wieder ausgegraben:

http://intern.ier.de/SU0071b.pdf

Falls Du das Ding gebrauchen kannst, sag bitte bescheid, vielleicht kann
ich dann unsere Geschäftsleitung davon überzeugen, dass es doch Leute
gibt, die sowas gebrauchen können ;-)

Gruß Andreas
Mark
2010-08-03 12:22:33 UTC
Permalink
Post by Andreas Fecht
Post by Mark
Hallo,
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal 10l/min.
fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben. Ich
habe hier den Pico ADC11. Deswegen ist die Hoehe der Ausgangsspannung
fuer den groesten Wert auch nicht so wichtig. Aber linear sollte es sein.
Ich habe sowas ähnliches mal entwickelt, das Projekt wurde dann aus
politischen Gründen leider eingestampft, fertigentwickelt ist es
dennoch. Die Anwendung war damals sogar für Wasserzähler gedacht.
http://intern.ier.de/SU0071b.pdf
Falls Du das Ding gebrauchen kannst, sag bitte bescheid, vielleicht
kann ich dann unsere Geschäftsleitung davon überzeugen, dass es doch
Leute gibt, die sowas gebrauchen können ;-)
Gruß Andreas
Ja sowas im Prinzip. Vermutlich wird das eher selten gebraucht. Da es
ja auch Flussmeter gibt, die die Flussrate schon digital anzeigen und
entspechende Ausgaenge haben. Sind nur nicht unwesentlich teurer.
--
Gruss
Mark
Dirk Ruth
2010-08-01 03:19:43 UTC
Permalink
Markschrieb:
"
Post by Mark
Hallo,
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Vielleicht gibt es ja auch eine einfachere Moeglichkeit, so eine
Schaltung aufzubauen. Z.Bsp.: einen Kondensator ueber einen Widerstand
laden oder was mit dem NE555? Also wenn jemand Tips diesbezueglich hat,
bin ich sehr dankbar.
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Vermutlich suchst du einfach nur sowas
http://pdb.turck.de/media/_de/Anlagen/Datei_EDB/edb_0508220_ger_de.pdf




Dirk
Mark
2010-08-03 12:23:37 UTC
Permalink
Post by Dirk Ruth
"
Post by Mark
Hallo,
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Vielleicht gibt es ja auch eine einfachere Moeglichkeit, so eine
Schaltung aufzubauen. Z.Bsp.: einen Kondensator ueber einen Widerstand
laden oder was mit dem NE555? Also wenn jemand Tips diesbezueglich hat,
bin ich sehr dankbar.
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Vermutlich suchst du einfach nur sowas
http://pdb.turck.de/media/_de/Anlagen/Datei_EDB/edb_0508220_ger_de.pdf
Dirk
Ja, genau was ich brauche. Wollte halt selbst bauen. :-)
--
Gruss
Mark
Dirk Ruth
2010-08-03 14:22:07 UTC
Permalink
Markschrieb:
"
Post by Mark
Post by Dirk Ruth
"
Post by Mark
Hallo,
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal
10l/min. fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Ich weis nicht, ob Frequenz-Spannungs-Wandler so kleine Frequenzen in
Analogspannungen umwandeln.
Vielleicht gibt es ja auch eine einfachere Moeglichkeit, so eine
Schaltung aufzubauen. Z.Bsp.: einen Kondensator ueber einen Widerstand
laden oder was mit dem NE555? Also wenn jemand Tips diesbezueglich hat,
bin ich sehr dankbar.
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Vermutlich suchst du einfach nur sowas
http://pdb.turck.de/media/_de/Anlagen/Datei_EDB/edb_0508220_ger_de.pdf
Dirk
Ja, genau was ich brauche. Wollte halt selbst bauen. :-)
Dann solltest du im Netz auch mal unter den Stichworten:
Tachometer, analog, Frequenzmesser
usw. suchen. 1000UpM sind für einen Motor ja nicht ungewöhnlich.



Man kann das auch ohne MC lösen.
Folgender Vorschlag:
Wenn untere Grenze 10l/min und die Nadel 10l/U hat, dann brauchst du
einen Rechteck-Generator mit ca. 4,26Hz für eine Auflösung von 8bit
(D/A-Wandler). Das kann man mit einem 555er aufbauen, wovon es im Netz
massig Schaltungen gibt (falls zu unstabil, kann man auch die
Netzfrequenz durch 10 teilen).
Mit diesem Generator wird ein Abwärtszähler getaktet (74LS191), der
von 0xFF (voreingestellt) auf 0 herunterzählt und an dem wiederum ein
simpler DA-Wandler hängt.

Mit jedem Impuls von der Nadel wird nun der Wert vom Zähler in den
DA-Wandler übernommen und danach der Zähler wieder auf 0xFF
zurückgesetzt.


Für höhere Auflösungen kann man das natürlich noch kaskadieren.


Dirk
Rafael Deliano
2010-08-01 12:20:57 UTC
Permalink
Post by Mark
NE555?
Analoge Schaltungen sind für den Frequenzbereich ungünstig.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Taktgenerator, 74HCxx-Zähler, Latch, D/A-Wandler.
Das Latch und damit der D/A übernimmt bei jedem Puls den
Zählerwert, der Zähler wird dann auf Null gesetzt und zählt
langsam hoch.

Es gab auch schon 8 Bit D/A mit Zähler ( Ferranti ZN425 ).

Wenn es den Logger stört daß sich die Spannung sprungweise ändern
kann, wäre ein 1pol RC-Tiefpaß ( 10M Ohm, 1uF Folienkondensator,
CMOS-OP ) nach dem D/A nützlich.

MfG JRD
Waldemar Krzok
2010-08-02 07:52:02 UTC
Permalink
Post by Rafael Deliano
Post by Mark
NE555?
Analoge Schaltungen sind für den Frequenzbereich ungünstig.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Taktgenerator, 74HCxx-Zähler, Latch, D/A-Wandler.
Das Latch und damit der D/A übernimmt bei jedem Puls den
Zählerwert, der Zähler wird dann auf Null gesetzt und zählt
langsam hoch.
Es gab auch schon 8 Bit D/A mit Zähler ( Ferranti ZN425 ).
Wenn es den Logger stört daß sich die Spannung sprungweise ändern
kann, wäre ein 1pol RC-Tiefpaß ( 10M Ohm, 1uF Folienkondensator,
CMOS-OP ) nach dem D/A nützlich.
Man könnte ein Kondensator via großem R aufladen, das auf das Gitter
einer EC88 geben, den Aussgang dann auf die EM800 geben und man hat eine
schöne Balkenanzeige und es ist dann richtig Retro.

Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller macht
das Obige, bis auf den RC-Tiefpaß. Den kann man sich einsparen, wenn man
ein Zeigerinstrument verwedet und eine ausreichend hohe PWM-Frequenz
wählt. Dieses kann sogar ein Prozessor in SOT223 Gehäuse schaffen (Vcc,
Vdd, In, Out und Reset). Die Chose wird kleiner, flexibler und billiger.
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert und es bleibt noch Geld für
ein Sixpack an der Tanke übrig (TI: MSP430 Launch Pad für 9.90$
inclusive Versand).

Waldemar
Rafael Deliano
2010-08-02 09:12:24 UTC
Permalink
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Mag sein daß TTL-Grab mehr Fädeldraht benötigt als sich der
Fragesteller erhofft hat, aber immer noch sinnvoller Kompromiß
zwischen seinen Möglichkeiten und den Anforderungen des Problems.

MfG JRD
Waldemar Krzok
2010-08-02 10:49:36 UTC
Permalink
Post by Rafael Deliano
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Mag sein daß TTL-Grab mehr Fädeldraht benötigt als sich der
Fragesteller erhofft hat, aber immer noch sinnvoller Kompromiß
zwischen seinen Möglichkeiten und den Anforderungen des Problems.
Im Prinzip hast du recht. Allerdings lohnt sich das reinschnuppern in
die Welt der Microcontroller auch für Gelegenheitsbastler. Wir leben
halt in der Zeit, wo TTLs Seltenheitswert erlangen und Preise von
mehreren EUR pro Stück keine Seltenheit sind (so ein 74141, zum
Beispiel, kostet so um 5€). Und wenn man sich an irgendein Atmel/MSP/oä
gewöhnt hat, strickt man die meiste Logik in Software und erspart sich
viel Arbeit. Hardwaredebugging ist auch nicht in t=0 zu bewerkstelligen.
Natürlich kann man es auch in einer FPGA reinschiessen, aber das ist
etwas weniger universell und wenn es nicht auf Hochgeschwindigkeit
ankommt mache ich vieles mit Prozessoren.
Ich würde sagen: wenn man etwas Erfahrung im Programmieren (z.B. C) hat,
kann diese Aufgabe am einen WE erledigen, inclusive Installation der
Software, der Prozessorbändigung und Hardwarebasteln.

Jetzt hat der Fragesteller allerdings mehrere Möglichkeiten zur Lösung
des Problems und kann sich daraus das aussuchen was, seiner Meinung
nach, für ihn das Beste ist.

Waldemar
Marte Schwarz
2010-08-02 13:52:58 UTC
Permalink
Hallo zusammen,
Post by Waldemar Krzok
Post by Rafael Deliano
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Den wollte der OP gar nicht haben
Post by Waldemar Krzok
Post by Rafael Deliano
Post by Waldemar Krzok
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
möglicherweise deswegen.
Post by Waldemar Krzok
Post by Rafael Deliano
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Wozu denn?
Post by Waldemar Krzok
Ich würde sagen: wenn man etwas Erfahrung im Programmieren (z.B. C) hat,
kann diese Aufgabe am einen WE erledigen, inclusive Installation der
Software, der Prozessorbändigung und Hardwarebasteln.
Jetzt hat der Fragesteller allerdings mehrere Möglichkeiten zur Lösung des
Problems und kann sich daraus das aussuchen was, seiner Meinung nach, für
ihn das Beste ist.
Irgendwie sehe ich gar keine Aufgabe für einen µC und auch nicht für eine
wie auch immer geartete Hardware, die irgendwelche PWM-Geschichten machen
soll. Das einzige, was der OP braucht, ist doch die Generierung des
Schaltsignals und die hat er anscheinend schon, weil die war gar nicht
Gegenstand seiner Frage. Er will, Impulse erfassen und deren Abstand
zueinander auswerten. IMHO ist das einfach durch Ablesen der Uhrzeit beim
Eintreffen der Impulse getan. Da geht auch kein Mindestfluß verloren, es sei
denn vor der Signalerzeugung. Das einzige Problem, aus der verstrichenen
Zeit zwischen zwei Impulsen den Durchfluß/Minute zu errechnen ist mit einem
PC auch nicht wirklich eine Herausforderung in der Programierkunst. Was soll
dabei eigentlich ein µC sinnvolles machen? Gut, er könnte den PC als solches
ersetzen, weil er selbst als 4 MHz getakteter 8051 Rechenleistung übrig
hätte und wenige Bytes Flash und Ram reichen werden, aber das war doch gar
nicht gefragt, er wollte mit dem PC erfassen. Also soll er.
Es bietet sich in diesen Fällen ein Gameport oder ein Comport an, die
Paralellports sind in USB-Zeiten ja nicht mehr so der Hit, also vergessen
wir die mal, es sei denn, der Rechner hätte den noch übrig.
Wie amn auf die Hardware unter diversen Programiersprachen zugreifen kann
findet sich im Netz auch, zur Not sogar mit VB-Scripts in Excel.

Marte
Axel Schwenke
2010-08-02 14:08:45 UTC
Permalink
Post by Marte Schwarz
Hallo zusammen,
Post by Mark
Post by Rafael Deliano
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Den wollte der OP gar nicht haben
Post by Mark
Post by Rafael Deliano
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Wozu denn?
Irgendwie sehe ich gar keine Aufgabe für einen µC und auch nicht für eine
wie auch immer geartete Hardware, die irgendwelche PWM-Geschichten machen
soll. Das einzige, was der OP braucht, ist doch die Generierung des
Schaltsignals und die hat er anscheinend schon, weil die war gar nicht
Gegenstand seiner Frage. Er will, Impulse erfassen und deren Abstand
zueinander auswerten.
Mit dem Lesen hast du es aber auch nicht so, oder?
Post by Marte Schwarz
Post by Mark
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11. Deswegen ist die Hoehe der
Ausgangsspannung fuer den groesten Wert auch nicht so wichtig. Aber
linear sollte es sein.
Er hat also schon eine Hardware, die eben eine Spannung erwartet.
Also braucht er entweder einen f/U-Wandler, der bei der angedachten
Frequenz besser nicht analog aufgebaut wird. Ergo: mit µC

Oder er modifiziert den Datenlogger, was dann wieder das Problem
der Controllerprogrammierung aufwirft.


XL
Marte Schwarz
2010-08-02 15:18:02 UTC
Permalink
Hi Axel,
Post by Axel Schwenke
Post by Marte Schwarz
Irgendwie sehe ich gar keine Aufgabe für einen µC und auch nicht für eine
wie auch immer geartete Hardware, die irgendwelche PWM-Geschichten machen
soll. Das einzige, was der OP braucht, ist doch die Generierung des
Schaltsignals und die hat er anscheinend schon, weil die war gar nicht
Gegenstand seiner Frage. Er will, Impulse erfassen und deren Abstand
zueinander auswerten.
Mit dem Lesen hast du es aber auch nicht so, oder?
Doch schon.
Post by Axel Schwenke
Post by Marte Schwarz
Post by Mark
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
Ich habe hier den Pico ADC11.
Speziell aus letzterer Aussage entnehme ich, dass er den PC als Basis nutzen
will.
Dass er eine Pico ADC11 hat bedeutet für mich nicht zwingend, dass die
Lösung diesen auch einschließen muss, speziell, wenn es nicht sinnvoll ist.
Post by Axel Schwenke
Er hat also schon eine Hardware, die eben eine Spannung erwartet.
Also braucht er entweder einen f/U-Wandler, der bei der angedachten
Frequenz besser nicht analog aufgebaut wird. Ergo: mit µC
Ich habe aber einen Presslufthammer, warum sollte ich den Bilderrahmen dann
mit einem schnöden Nagel aufhängen?
Post by Axel Schwenke
Oder er modifiziert den Datenlogger, was dann wieder das Problem
der Controllerprogrammierung aufwirft.
Man könnte in der Tat auch den Presslufthammer zum gewöhnlichen Hammer
umschmieden...

Marte
Mark
2010-08-03 12:55:56 UTC
Permalink
Post by Marte Schwarz
Hallo zusammen,
Post by Waldemar Krzok
Post by Rafael Deliano
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Den wollte der OP gar nicht haben
Post by Waldemar Krzok
Post by Rafael Deliano
Post by Waldemar Krzok
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
möglicherweise deswegen.
Post by Waldemar Krzok
Post by Rafael Deliano
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Wozu denn?
Post by Waldemar Krzok
Ich würde sagen: wenn man etwas Erfahrung im Programmieren (z.B. C)
hat, kann diese Aufgabe am einen WE erledigen, inclusive Installation
der Software, der Prozessorbändigung und Hardwarebasteln.
Jetzt hat der Fragesteller allerdings mehrere Möglichkeiten zur Lösung
des Problems und kann sich daraus das aussuchen was, seiner Meinung
nach, für ihn das Beste ist.
Irgendwie sehe ich gar keine Aufgabe für einen µC und auch nicht für
eine wie auch immer geartete Hardware, die irgendwelche PWM-Geschichten
machen soll. Das einzige, was der OP braucht, ist doch die Generierung
des Schaltsignals und die hat er anscheinend schon, weil die war gar
nicht Gegenstand seiner Frage.
Noch nicht, aber ich will das optisch erfassen, sehe da aber weniger
Probleme. Vielleicht mach ich die Aufloesung noch etwas groesser, indem
ich da eine zweifarbige Folie aufklebe oder so.
Post by Marte Schwarz
Er will, Impulse erfassen und deren Abstand zueinander auswerten. IMHO
ist das einfach durch Ablesen der Uhrzeit beim Eintreffen der Impulse
getan. Da geht auch kein Mindestfluß verloren, es sei denn vor der
Signalerzeugung. Das einzige Problem, aus der verstrichenen Zeit
zwischen zwei Impulsen den Durchfluß/Minute zu errechnen ist mit einem
PC auch nicht wirklich eine Herausforderung in der Programierkunst. Was
soll dabei eigentlich ein µC sinnvolles machen? Gut, er könnte den PC
als solches ersetzen, weil er selbst als 4 MHz getakteter 8051
Rechenleistung übrig hätte und wenige Bytes Flash und Ram reichen
werden, aber das war doch gar nicht gefragt, er wollte mit dem PC
erfassen. Also soll er.
Es bietet sich in diesen Fällen ein Gameport oder ein Comport an, die
Paralellports sind in USB-Zeiten ja nicht mehr so der Hit, also
vergessen wir die mal, es sei denn, der Rechner hätte den noch übrig.
Wie amn auf die Hardware unter diversen Programiersprachen zugreifen
kann findet sich im Netz auch, zur Not sogar mit VB-Scripts in Excel.
Marte
Vielleicht realisiere ich es mit Delpi, da hab ich schon mal was
gemacht. Muss mir aber auch erst raussuchen, wie ich die Impulse
einlese/abfrage.
--
Gruss
Mark
Marte Schwarz
2010-08-03 14:43:15 UTC
Permalink
Hallo Mark
Post by Mark
Post by Marte Schwarz
Irgendwie sehe ich gar keine Aufgabe für einen µC und auch nicht für eine
wie auch immer geartete Hardware, die irgendwelche PWM-Geschichten machen
soll. Das einzige, was der OP braucht, ist doch die Generierung des
Schaltsignals und die hat er anscheinend schon, weil die war gar nicht
Gegenstand seiner Frage.
Noch nicht, aber ich will das optisch erfassen, sehe da aber weniger
Probleme. Vielleicht mach ich die Aufloesung noch etwas groesser, indem
ich da eine zweifarbige Folie aufklebe oder so.
Na, wenns ein Drehrad ist, das man bekleben oder bemalen kann, dann kann man
ja auch mehrere Segmente bekleben und erhöht die Auflösung damit noch mehr.
Andererseits bekommst Du ja alle 10 l einen Impuls, das ist schon wesentlich
mehr, als alle analogen Messungen Dir gegeben hätten, von Offset-,
Linearitäts- und Driftfehlern abgesehen.
Post by Mark
Post by Marte Schwarz
Er will, Impulse erfassen und deren Abstand zueinander auswerten. IMHO
ist das einfach durch Ablesen der Uhrzeit beim Eintreffen der Impulse
getan.
...
Post by Mark
Post by Marte Schwarz
Es bietet sich in diesen Fällen ein Gameport oder ein Comport an, die
Paralellports sind in USB-Zeiten ja nicht mehr so der Hit, also vergessen
wir die mal, es sei denn, der Rechner hätte den noch übrig.
Wie amn auf die Hardware unter diversen Programiersprachen zugreifen kann
findet sich im Netz auch, zur Not sogar mit VB-Scripts in Excel.
Vielleicht realisiere ich es mit Delpi, da hab ich schon mal was gemacht.
Muss mir aber auch erst raussuchen, wie ich die Impulse einlese/abfrage.
Schau Dir mal die serial.dll aus der Elektor 3/2003 an, die kann man
kostenlos bei Elektor herunterladen. Oder genau ein Jahr früher, da wurde
erklärt, wie man die serielle Schnittstelle windwoskonform via API
anspricht. Ich hab mir seinerzeit die DLL-Version reingezogen und mach das
seither damit. Der Delphi-Quellcode ist dabei und hilft beim Verstehen, was
man macht ungemein.

Ein USB-Comport ist auch eine gesunde Trennung zum Rechner. Wenn man jenen
als Händikabel kauft ist man ab 4 Euro incl Versand bei Ebay dabei. Man muss
nur aufpassen, dass man auch ein USB-Seriell-Kabel erwischt, weil neuere
Händis auch USB direkt fahren. Die Telefonkabel haben in der Regel keinen
Pegelwandler drin, aber dafür oft die Steuerleitungen nicht bis zum Stecker.
Wenn man aber das Gehäuse aufmacht, dann findet sich in der Regel direkt
beim USB-Stecker eine Platine, wo alle Steuerleitungen incl. 5 V vom USB
anliegen, was braucht das Bastlerherz mehr?

Marte
Heiko Nocon
2010-08-03 16:05:34 UTC
Permalink
Post by Mark
Vielleicht realisiere ich es mit Delpi, da hab ich schon mal was
gemacht. Muss mir aber auch erst raussuchen, wie ich die Impulse
einlese/abfrage.
Mit einer Delphi-Anwendung hast du (wie mit jeder anderen Anwendung
auch) immer das Problem, daß Windows kein Echtzeitsystem ist und
deswegen zur genauen Zeitmessung einigermaßen unbrauchbar. Bei
"Standard-Linux" ist's übrigens genau dasselbe.

Für genaue Messungen muß man auf der Ebene Kerneltreiber programmieren.
Das ist um Größenordnungen komplexer, als einen dedizierten externen µC
zu programmieren.

Beim gegebenen Fall ist der Meßfehler allerdings mit maximal 10% auch
noch bei mäßiger Systemlast wahrscheinlich durchaus akzeptabel.
Marte Schwarz
2010-08-03 16:35:43 UTC
Permalink
Hallo Heiko,
Post by Heiko Nocon
Mit einer Delphi-Anwendung hast du (wie mit jeder anderen Anwendung
auch) immer das Problem, daß Windows kein Echtzeitsystem ist und
deswegen zur genauen Zeitmessung einigermaßen unbrauchbar. Bei
"Standard-Linux" ist's übrigens genau dasselbe.
Das ist bei den gegebenen Frequenzen völlig egal und mittelt sich mit der
Zeit ohnehin raus, weil ja die Summe der Impulse der gemessenen
Durchflußmenge entspricht. Wenn jetzt eine Messung zu niedrig wird, weil der
Impuls zu spät ausgewertet wurde, dann wird genau diese Menge bei der
nächsten Messung wieder kompensiert. Und jetzt wäre mal ganz im Ernst zu
kalkulieren, wie lange denn ein Rechner diese Impulse maximal verzögert. Ich
kenne Maschinen, die mit RI synchronisiert einen Messvorgang starten, er in
200 ms durch sein muss, weil dann der Takt weitergeht. Diese Maschine läuft
jetzt das 7. Jahr im 24/7 Betrieb ohne Fehler. Demnach scheint da kein
nennenswerter Verzug vorgekommen zu sein. Auf der Maschine läuft aber neben
W2K und dem Messprogramm nur noch ein VNC Server, weil in dder Nähe der
Maschine weder Tastatur noch Monitor sein sollen.
Post by Heiko Nocon
Für genaue Messungen muß man auf der Ebene Kerneltreiber programmieren.
Das ist um Größenordnungen komplexer, als einen dedizierten externen µC
zu programmieren.
Wenn man denn kürzere Zyklen unbedingt braucht.
Post by Heiko Nocon
Beim gegebenen Fall ist der Meßfehler allerdings mit maximal 10% auch
noch bei mäßiger Systemlast wahrscheinlich durchaus akzeptabel.
Wie kommst Du auf die 10%?

Marte
Heiko Nocon
2010-08-03 16:51:35 UTC
Permalink
Post by Marte Schwarz
Wie kommst Du auf die 10%?
fmax=2Hz->tmin=0,5s

Der Task-Scheduler schaltet die Threads u.U. nur alle 50ms um->Jitter
0,05s. Das erzeugt als systematischen Meßfehler ziemlich genau 10% des
minimalen Meßwertes.

Und selbst im günstigeren Fall (10ms-Switches) sind es immer noch 2%.

Als weiteres Manko: Es ist nicht unbedingt vorhersehbar oder auch nur
einfach nachzusehen, welcher Scheduler letztlich wirksam ist. D.h.: man
muß vom worst case ausgehen->10%.

Und die gibt's, wie schon gesagt, nur dann, wenn das System sonst nicht
viel zu tuen hat. Dann kommen nämlich noch diverse andere Mechanismen
(z.B. priority boosts) zum Tragen.

Prinzipiell ist der Meßfehler für Anwendungen nicht vorhersehbar und
damit im Extremfall unendlich. Windows ist halt kein Echtzeitsystem.
Marte Schwarz
2010-08-03 16:53:07 UTC
Permalink
Hallo Heiko,
Post by Heiko Nocon
Mit einer Delphi-Anwendung hast du (wie mit jeder anderen Anwendung
auch) immer das Problem, daß Windows kein Echtzeitsystem ist und
deswegen zur genauen Zeitmessung einigermaßen unbrauchbar. Bei
"Standard-Linux" ist's übrigens genau dasselbe.
Wenn man denn wirklich höhere Genauigkeitsanforderungen hat, nimmt man die
Soundkarte zur Zeitmessung. Die geht sogar unter Windows in "Echtzeit". Die
darstellung muss in diesem Fall ja nicht in Echtzeit sein, ansonsten wäre
jetzt mal die Bedingung an die Echtzeitfähigkeit zu definieren.

Marte
Heiko Nocon
2010-08-03 17:35:08 UTC
Permalink
Post by Marte Schwarz
Wenn man denn wirklich höhere Genauigkeitsanforderungen hat, nimmt man die
Soundkarte zur Zeitmessung.
Das geht nur eingeschränkt. Soundkarten haben üblicherweise nur
AC-Kopplung, das beschränkt die Messfrequenz nach unten. Und sie haben
keine allzu hohe Samplingrate, daß beschränkt die Meßfrequenz nach oben.
Post by Marte Schwarz
ansonsten wäre
jetzt mal die Bedingung an die Echtzeitfähigkeit zu definieren.
Das braucht nicht definiert zu werden. Echtzeitfähigkeit bedeutet in
jedem Fall in erster Linie: Vorhersagbarkeit.

Das hat noch garnix mit konkreten Zeiten, Frequenzen oder sonstwas zu
tuen. Das kommt dann erst hinterher, denn die Vorhersagbarkeit als
Systemeigenschaft ermöglicht es erst, solche Größen zu quantifizieren.
Marte Schwarz
2010-08-03 17:44:31 UTC
Permalink
Hallo Heiko,
Post by Heiko Nocon
Post by Marte Schwarz
Wenn man denn wirklich höhere Genauigkeitsanforderungen hat, nimmt man die
Soundkarte zur Zeitmessung.
Das geht nur eingeschränkt. Soundkarten haben üblicherweise nur
AC-Kopplung,
Zur Not wird das Signal mit einem Schmitttrigger aufbereitet. Das sollte das
kleinste Problem sein. Es geht hier um Zeitmessungen.
Post by Heiko Nocon
Und sie haben keine allzu hohe Samplingrate, daß beschränkt die
Meßfrequenz nach oben.
Wir hatten es hier mit 0 - 2 Hz zu tun. 48 kSps machen sie alle. Das reicht
für die allermeisten Anwendungsfälle. Wenn man dann noch eine kontrollierte
Slewrate mitnimmt un die Steiggerade ausmessen kann erreicht man deutlich
höhere Zeitauflösungen.
Post by Heiko Nocon
Post by Marte Schwarz
ansonsten wäre
jetzt mal die Bedingung an die Echtzeitfähigkeit zu definieren.
Das braucht nicht definiert zu werden. Echtzeitfähigkeit bedeutet in
jedem Fall in erster Linie: Vorhersagbarkeit.
Und? Was spricht bei einer Reaktionszeit von 10 Sekunden dagegen?

Marte
Heiko Nocon
2010-08-03 18:07:25 UTC
Permalink
Post by Marte Schwarz
Und? Was spricht bei einer Reaktionszeit von 10 Sekunden dagegen?
Daß der Meßthread problemlos auch mal 30 Sekunden blockiert sein kann.
Dazu braucht's nichtmal einen Bug in einem Treiber, sondern es genugt
schon, eine konkurrierende App/Dienst mit höherer Priorität laufen zu
lassen. Kriegt die Last, muß der Meßthread warten.
Marte Schwarz
2010-08-03 18:40:22 UTC
Permalink
Hallo Heiko,
Post by Heiko Nocon
Post by Marte Schwarz
Und? Was spricht bei einer Reaktionszeit von 10 Sekunden dagegen?
Daß der Meßthread problemlos auch mal 30 Sekunden blockiert sein kann.
Dazu braucht's nichtmal einen Bug in einem Treiber, sondern es genugt
schon, eine konkurrierende App/Dienst mit höherer Priorität laufen zu
lassen. Kriegt die Last, muß der Meßthread warten.
Klar kann man ein System kaputtbekommen. Wer den Messthread niedrig
priorisiert ist auch selbst schuld. Unser Stromzähler läuft jedoch mit MSDOS
5.0 und einem Gwbasicprogramm. Das läuft garantiert exklusiv, noch nicht mal
ein Maustreiber kann da was vergeigen. DOS gibt es heute noch und man kann
tolle Sachen damit machen. Die zitierte Maschine im Dauerbetrieb hat zwar
ein Windows2000 drauf, aber neben dem Messprogramm nur noch einen
VNC-Server, der niedriger priorisiert ist.

Marte

Mark
2010-08-03 12:39:21 UTC
Permalink
Post by Waldemar Krzok
Post by Rafael Deliano
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Mag sein daß TTL-Grab mehr Fädeldraht benötigt als sich der
Fragesteller erhofft hat, aber immer noch sinnvoller Kompromiß
zwischen seinen Möglichkeiten und den Anforderungen des Problems.
Im Prinzip hast du recht. Allerdings lohnt sich das reinschnuppern in
die Welt der Microcontroller auch für Gelegenheitsbastler. Wir leben
halt in der Zeit, wo TTLs Seltenheitswert erlangen und Preise von
mehreren EUR pro Stück keine Seltenheit sind (so ein 74141, zum
Beispiel, kostet so um 5€). Und wenn man sich an irgendein Atmel/MSP/oä
gewöhnt hat, strickt man die meiste Logik in Software und erspart sich
viel Arbeit. Hardwaredebugging ist auch nicht in t=0 zu
bewerkstelligen. Natürlich kann man es auch in einer FPGA
reinschiessen, aber das ist etwas weniger universell und wenn es nicht
auf Hochgeschwindigkeit ankommt mache ich vieles mit Prozessoren.
Ich würde sagen: wenn man etwas Erfahrung im Programmieren (z.B. C)
hat, kann diese Aufgabe am einen WE erledigen, inclusive Installation
der Software, der Prozessorbändigung und Hardwarebasteln.
Jetzt hat der Fragesteller allerdings mehrere Möglichkeiten zur Lösung
des Problems und kann sich daraus das aussuchen was, seiner Meinung
nach, für ihn das Beste ist.
Waldemar
Hmm, Danke an der Stelle fuer die Auswahl an alle. :-)

Ich denke ich will es nun mit Software probieren, denn die Daten sollen
ja ohnehin in den PC. Dann koennte man beide Sachen(Druck und Fluss)
anzeigen lassen und gleichzeitig mitloggen.
--
Gruss
Mark
Mark
2010-08-03 12:34:55 UTC
Permalink
Post by Waldemar Krzok
Jetzt mal Butter bei die Fische: ein beliebiger Mikrokontroller >
Für den Preis des Obigen kriegt man schon ein Entwicklungssystem
inclusive 2 Prozessoren frei haus geliefert
Einarbeitung kostet massiv Zeit=Geld und ist für jemand der
nur sporadisch Controller verwendet unwirtschaftlich.
Wenn man nur ein Unikat benötigt ist HW-Schaltung oft günstiger.
Mag sein daß TTL-Grab mehr Fädeldraht benötigt als sich der
Fragesteller erhofft hat, aber immer noch sinnvoller Kompromiß
zwischen seinen Möglichkeiten und den Anforderungen des Problems.
MfG JRD
Einfach hatte ich mir erhofft eine Schaltung zu bauen, diese dann in
irgendein wasserdichtes Gehaeuse zu packen(oder in Resin) und das dann
mechanisch an der "Wasseruhr" zu befestigen. Computer angeschlossen,
fertig.

Mikrocontroller ginge natuerlich auch, wenn man alles dazu hat. ich hab
zwei, drei kleinere Sachen mal mit Atmels, MSP's, HC11/12's gemacht.
Mehr bisher noch nicht. Ich muesste erst wieder anfangen, mir den
pasenden Controller raussuchen, Software besorgen, installieren,
Manuals lesen....
Wenn ich mich an mein erstes Programm auf einem Atmel erinnere, hat das
"setup" laenger gedauert als das Programm selbst.
--
Gruss
Mark
Heiko Nocon
2010-08-03 16:05:34 UTC
Permalink
Post by Mark
Wenn ich mich an mein erstes Programm auf einem Atmel erinnere, hat das
"setup" laenger gedauert als das Programm selbst.
Was meinst du mit "setup"? Das stupide Ausführen der zwei setup.exe, die
man braucht, um eine vollständige Entwicklungsumgebung für Asm und C zu
bekommen incl. in circuit-Debugging auf Quelltextebene?

Dann mein Tip für dich: Man muß nicht mit magisch gebanntem Blick auf
den Bildschirm vor dem Computer sitzenbleiben, wenn da irgendein
Programm seine Arbeit tut...
Marte Schwarz
2010-08-02 07:50:35 UTC
Permalink
Hallo Mark,
Post by Mark
ich moechte mir einen Durchflussratenmesser fuer eine Wasseruhr bauen.
Dabei nehme ich das Signal optisch von der verchromten Nadel auf.
Die Nadel macht eine Umdrehung pro 10 Liter. Ich moechte von 0 bis
1000l/min messen.
Soweit ist ja alles gut.
Post by Mark
Also 0-1.67 Hz, sagen wir 0-2Hz. Als untere Grenze lege ich mal 10l/min.
fest. Alles darunter kann als 0 angenommen werden.
Den aktuellen Wert, der sich aus der Zeit zum Vorherigen berechnet,
moechte ich an einen Datenlogger in Form einer Spannung weitergeben.
...
Post by Mark
Vielleicht gibt es ja auch eine einfachere Moeglichkeit, so eine Schaltung
aufzubauen. Z.Bsp.: einen Kondensator ueber einen Widerstand laden oder
was mit dem NE555? Also wenn jemand Tips diesbezueglich hat, bin ich sehr
dankbar.
Wozu denn jetzt das Ganze erst einmal heftigst umwandeln, wieder
konvertieren...
Was Du brauschst ist ein Serieller Port, der bei Deinen Frequenzen sogar am
USB hängen kann.
Post by Mark
Mikrocontroller wollte ich nach Moeglichkeit nicht einsetzen.
Das geht direkt mit jedem noch so alten Rechner. So was ähnliches habe ich
mal mit einem 80286 Board und einem Diskettenlaufwerk unter gwbasic gemacht,
um den Stromverbrauch im Vereinsheim zu protokollieren. Man kann natürlich
auch einen quad-Core Ultra High End-Computer unter Windows dazu bringen, die
Statusleitung (vorzugsweise RI, die kann einen Interrupt generieren)
abzufragen und dann die Uhr auszulesen udn diese zu protokollieren. Der Rest
ist dann einfache Mittelstufenmathe.

Marte
Klaus Butzmann
2010-08-02 14:13:01 UTC
Permalink
Der Rest ist dann einfache Mittelstufenmathe.
Da fallen dann schonmal 70% der Bevölkerung und 95% der Typen in Berlin
raus...


Butzo
Loading...