Hallo liebe Community, ich hoffe ihr könnt mir helfen. Ich habe mir mit einem Timer555 einen RC-Oszilator gebaut und kann die Frequenz mit Hilfe von einem Atmega8515 messen und lasse mir die Frequenz im Moment per UART am PC ausgeben. Das funktioniert alles soweit. Ich kann mir mit der Frequenz die Kapazität zurückrechnen. Jetzt würde ich gerne mehrere verschiedene Kapazitäten messen und da steht es etwas an. Was ich bis jetzt probiert habe, war einen weiteren 555 einzusetzen um einen neuen Oszilator zu erzeugen und mit Hilfe eines Multiplexers CD4051 das Signal zu meinen extern Interrupteingang vom Atmega multiplexen. Was an und für sich auch funktioniert hat. Ich möchte aber nicht für jede weitere Kapazität einen weiteren 555 einsetzen... das wären dann viel zu viele. Dann habe ich mir gedacht, ich könnte verschiedene Kapazitäten auf einen 555 als RC-Oszilator multiplexen. Leider haben sich die zwei Kapazitäten bei der Frequenzmessung beeinflusst. Mache ich etwas grundlegend falsch? Hat jemand vielleicht Anregungen wie man das anders/besser lösen könnte? Schaltungsplan wird noch kommen, aber ich hoffe man kann sich mit der Erklärung schon mal etwas vorstellen. Liebe Grüße Magnus
:
Verschoben durch Moderator
Magnus L. schrieb: > [... vier Zeilen Text...] > > Jetzt würde ich gerne mehrere verschiedene Kapazitäten > messen [...] > > [... weitere 12 Zeilen Text...] Okay. Quintessenz: Du möchtest Kapazitäten messen und hast Dir vorgestellt, das mittels eines Kapazitäts-Frequenz- wandlers zu bewerkstelligen. Habe ich das richtig verstanden? Anschlussfragen: In welchem Wertebereich liegen die Kapazitäten ungefähr? Picofarad? Millifarad? Was sind das eigentlich für Kapazitäten? Irgendein Sensor? Willst Du nur ein paar diskrete Werte unterscheiden können, oder brauchst Du einen Messwert mit einer gewissen Genauigkeit?
vielen Dank für die schnelle Hilfe :) ja du hast es gut auf den Punkt gebracht. Die Kapazitäten werden dann später mal Sensorwerte sein. Aber jetzt habe ich, um mal das Konzept zu testen, normale Keramikkondensatoren verwendet. Die Werte werden in der Größenordnung im Pico-Bereich sein. Ich werde einen Messwert mit einer gewissen Genauigkeit benötigen.
Magnus L. schrieb: > ja du hast es gut auf den Punkt gebracht. Gut. Und besten Dank für die zielführenden Antworten unten. > Die Kapazitäten werden dann später mal Sensorwerte > sein. Aber jetzt habe ich, um mal das Konzept zu > testen, normale Keramikkondensatoren verwendet. Ja, alles klar. > Die Werte werden in der Größenordnung im Pico-Bereich > sein. Ach du großer Gott. Kapazitäten dieser Größe will man in der Regel nicht elektronisch umschalten. Wie weit werden denn die Sensoren in der Praxis vom zentralen Mikrocontroller entfern sein? Zentimeter? Meter? > Ich werde einen Messwert mit einer gewissen Genauigkeit > benötigen. Okay. Also... die Antwort wird Dir zwar nicht gefallen, aber sei's drum: Das C/f-Wandler-Prinzip ist tatsächlich für Sensorsignale nicht so schlecht, wie man denken könnte. Der Wetterdienst (zahlreicher Länder) hat das jahrzehntelang für seine Radiosonden verwendet, die an Gasballons jeden Tag bis zu 40km hoch in die Atmosphäre aufsteigen. ABER: In Deinem Falle ist es tatsächlich das Einfachste, für jeden Sensor einen eigenen Oszillator aufzubauen, der möglichst nahe am Sensor angeordnet werden. Jeder Sensor wird (zusammen mit seinem Oszillator) individuell kalibriert. Wenn das vernünftig dimensioniert und aufgebaut wird, kann das ziemlich genau werden. Die Messwerterfassung funktioniert hier mittels Frequenz- messung; Messstellenumschalter können recht einfach mit Analogschaltern oder ggf. sogar mit Logikgattern realisiert werden -- die Spannungen sind ja relativ groß. Alternative: Kapazitätsmessung mit Wechselspannung und I/U-Konverter (OPV); mehrere Messkanäle je Mikrocontroller (z.B. acht Stück); Telemetrie (Fernübertragung) mittels digitaler Schnittstelle zum zentralen µC.
Man könnte auch die Sensoren per 4051 / 4052 umchalten, das gibt aber zusätzliche Kapazität und Fehler. Es ginge im Prinzip über Reed Relais, aber das ist ein getennter NE555 (bzw. besser eine CMOS variante) vermutlich günstiger. Der Vorteil der Umschaltung ist, dass man auch einen Ref. Kondensator auswählen kann.
>ABER: >In Deinem Falle ist es tatsächlich das Einfachste, für >jeden Sensor einen eigenen Oszillator aufzubauen, der >möglichst nahe am Sensor angeordnet werden. Jeder Sensor >wird (zusammen mit seinem Oszillator) individuell >kalibriert. Wenn das vernünftig dimensioniert und >aufgebaut wird, kann das ziemlich genau werden. Das ist fix der beste Weg um einen genauen Messwert zu erhalten. Aber wenn ich mir vorstelle, dass ich mehr als 10 Sensoren messen möchte würde ich gerne noch nach weiteren Lösungen suchen. Die Sensoren werden dann in weiterer Folge nur wenige Zentimeter von der Elektronik entfernt sein. >Alternative: Kapazitätsmessung mit Wechselspannung und >I/U-Konverter (OPV); mehrere Messkanäle je Mikrocontroller >(z.B. acht Stück); Telemetrie (Fernübertragung) mittels >digitaler Schnittstelle zum zentralen µC. Denkst du da an eine Wechselspannungsmessbrücke? >Man könnte auch die Sensoren per 4051 / 4052 umchalten, das gibt aber >zusätzliche Kapazität und Fehler. Wahrscheinlich ist das zu naiv gedacht: Ich habe die Eingänge von meinen MUX (im Moment eh nur zwei) mit Kapazitäten beschalten, sprich eine Elektrode am Eingang den anderen direkt auf Masse. Per µC wechsle ich zwischen diesen zwei Eingängen hin und her und messe jeweils für jeden Eingang 5x die Frequenz und bilde erstmal den Mittelwert. Den Ausgang vom MUX habe ich an den Timer555 gehängt. Was ich jetzt aber nicht ganz verstehe, ist das wenn ich bei einem Eingang vom MUX die Kapazität ändere, dass sich das auf die Frequenz vom anderen Eingang auswirkt.. Habe schon verschiedene Beschaltungen getestet und leider haben alle nicht so funktioniert wie ich mir das vorgestellt habe. Aber ich merke schon das ich mal schnell die Schaltungspläne machen muss damit ihr euch das besser vorstellen könnt, aber ich hoffe ihr habt schon mal ein Bild im Kopf. vielen Dank für eure Hilfe :) lg Magnus
Magnus L. schrieb: > Was ich jetzt aber nicht ganz verstehe, ist das wenn ich bei > einem Eingang vom MUX die Kapazität ändere, dass sich das auf die > Frequenz vom anderen Eingang auswirkt.. Parasitäre Kapazitäten, und die sind überall! Seriell und in Reihe. Die haben auch Halbleiter und die ändern sich mit den Spannungen ebenfalls. Es gibt dafür auch eine Anwendung, nennt sich Kapazitätsdioden.
Habe nun mal eine Grundschaltung skizziert, wie ich es mir vorgestellt habe und auf dem Steckbrett aufgebaut habe. Genau dort treten die oben beschrieben Probleme auf. Seht ihr eine Möglichkeit die Schaltung so zu modifizieren sie für die Anwendung verwenden zu können? Oder ist sie einfach Mist und ich soll lieber andere Wege gehen? Die Schaltung wird mit 5V vom STK500 versorgt. PS: habe die Schaltung versehentlich 2x hochgeladen und finde nichts wie ich es wieder auf eins reduzieren kann xD
:
Bearbeitet durch User
Magnus L. schrieb: > Das ist fix der beste Weg um einen genauen Messwert zu erhalten. Aber > wenn ich mir vorstelle, dass ich mehr als 10 Sensoren messen möchte > würde ich gerne noch nach weiteren Lösungen suchen. Das kannst du vergessen. Besser wirds nicht. Magnus L. schrieb: > Die Kapazitäten werden dann später mal Sensorwerte sein. > Die Werte werden in der Größenordnung im Pico-Bereich sein. Bei derart kleinen Kapazitäten bringt dir jeder Multiplexer einen unübersehbar großen Fehler rein. Von der Kabelage mal ganz abgesehen. Ein (7)555 kostet nur wenige ¢. Sicherlich weniger als der Sensor selber. Und es ist dann trivial, jeden Sensorknoten individuell abzugleichen - sofern man es überhaupt in Hardware machen will. Dazu noch sind die dann zu übertragenden Signale vollkommen unkritisch. Du hast GND, Versorgungsspannung und je Knoten ein digitales Signal, bei dem die Information in der Frequenz steckt. Das heißt, daß du dir keine Gedanken über Brummeinstreuung, Dämpfung, verschliffene Flanken etc. machen mußt. Oder über die Kabellänge. Auch eine galvanische Trennung ist trivial mit einem Optokoppler pro Sensor machbar.
Magnus L. schrieb: > Das ist fix der beste Weg um einen genauen Messwert > zu erhalten. Aber wenn ich mir vorstelle, dass ich > mehr als 10 Sensoren messen möchte würde ich gerne > noch nach weiteren Lösungen suchen. Naja, Du könntest 556 verwenden; da sind dann ZWEI Oszillatoren in einem Gehäuse... :) Aber ich habe Dich schon richtig verstanden; das ist auch okay so. > Die Sensoren werden dann in weiterer Folge nur wenige > Zentimeter von der Elektronik entfernt sein. Gut; das verbessert die Lage, weil die Kapazitäten der Leitungen keine große Rolle spielen. Trotzdem bleibt richtig, was meine Vorredner schon gesagt haben: Das Problem sind die parasitären Kapazitäten im Multiplexer, die gern auch mal spannungs- abhängig sein können, wenn es sich um Sperrschicht- kapazitäten handelt. Für den HCF4051 von ST nennt das Datenblatt bis zu 30pF (!). Es wird besser werden, wenn Du statt eines CMOS- Multiplexers Reed-Relais verwendest, aber das ist andererseits ökonomischer Blödsinn. >>Alternative: Kapazitätsmessung mit Wechselspannung und >>I/U-Konverter (OPV); mehrere Messkanäle je Mikrocontroller >>(z.B. acht Stück); Telemetrie (Fernübertragung) mittels >>digitaler Schnittstelle zum zentralen µC. > > Denkst du da an eine Wechselspannungsmessbrücke? In die Richtung, ja. > Wahrscheinlich ist das zu naiv gedacht: > Ich habe die Eingänge von meinen MUX (im Moment eh nur zwei) > mit Kapazitäten beschalten, sprich eine Elektrode am Eingang > den anderen direkt auf Masse. Per µC wechsle ich zwischen > diesen zwei Eingängen hin und her und messe jeweils für jeden > Eingang 5x die Frequenz und bilde erstmal den Mittelwert. > Den Ausgang vom MUX habe ich an den Timer555 gehängt. Ja, bis hierhin logisch. > Was ich jetzt aber nicht ganz verstehe, ist das wenn ich > bei einem Eingang vom MUX die Kapazität ändere, dass sich > das auf die Frequenz vom anderen Eingang auswirkt.. Habe > schon verschiedene Beschaltungen getestet und leider haben > alle nicht so funktioniert wie ich mir das vorgestellt > habe. Hmm. Da muss ich erstmal drüber nachdenken. Es ist wohl möglich, dass man das Verhalten der Schaltung noch verbessern kann, aber wird unter Umständen wildes Gewürge. Einfach geht anders :)
um kapazitive Sensoren im pF-Bereich auslesen zu können, habe ich gute Erfahrungen mit Capacitance-to-Digital Konvertern gemacht. https://www.analog.com/en/parametricsearch/10889#/ Die kosten zwar ein bisschen mehr als ein 555 (und sind eigentlich eher für kapazitive Bedienelemente gedacht). Aber du bekommst sie mit der Anzahl von Kanälen, die du brauchst. Du kannst sie direkt am Sensor anbringen und hast wenig störende parasitäre Kapazität. Du erhältst eine sehr hohe Auflösung und nach meinen Erfahrungen auch eine sehr gute Reproduzierbarkeit. Und du kannst die digitalisierten Daten einfach über SPI oder I2C zum Controller bringen.
Na ja, wenn die Genauigkeitsanforderung nicht zu hoch ist (2-20%), und die Kapazität der Sensoren > 30 pF ist, dann nimm doch einen uC. Spendier pro Sensor einen IO pin. Zum Messen der Kapazität schaltest du den Pin auf Ausgang, und ziehst ihn auf GND. Dann schaltest du den IO auf Eingang, mit einem 10Meg Pull-Up. Der Pull-Up zieht den Pin rauf, und du pollst den Pin, bis er High ist. Die Zeit bestimmt die Kapazität. Kostet dich 2 Euro, und wertet problemlos 10-30 Sensoren aus.
Ich habe, weil's mich interessiert, bei Analog.com geschaut, diese ganze Family ist obsolet. Ich würde dir vorschlagen, bleibe bei deinen 555, vielleicht gibt's die auch in SMD. Ich würde dir vorschlagen, mische die Ausgänge der 555er mit Digitaltransistoren BCR4711 oder Dioden als Wired-Or Verknüpfung. Schalte nur den 555 an Versorgungsspannung, den du gerade messen willst. Dieser Ratschlag mag seltsam erscheinen, aber ich habe die Erfahrung gemacht, das Oszillatoren sich gerne gegenseitig beeinflussen. Nur jeweils einen Oszillator zur Zeit zu betreiben, scheint mir ein preiswerter Work Around zu sein. 74HCT595 kann z.B. die Versorgungsspannungen der 555 ein und ausschalten. Magst du bitte Mal Posten, wie du mit deinem uC Frequenzen messen kannst?
Habe ich doch geschrieben? Beitrag vielleicht noch einmal lesen? Wer keinen uC Programmierenn kann, der kann auch einen 1:8 Multiplexer DG4051 oder ähnlich verwenden, die haben weniger als 10 pF Eingangskapazität. Alles drunter wird aufwendig, wenn die Relay Variante nicht akzeptabel ist.
Udo K. schrieb: > Habe ich doch geschrieben? Beitrag vielleicht noch einmal lesen? Hab ich auch verstanden, ich wollte wissen, wie der TO Frequenzen mit dem uC misst.
Frequenzmessung mit einem Timer, nehme ich an? Ich habe mir die Schaltung vom TE angeschaut. Ich könnte mir vorstellen, dass die Schaltung ohne den 10 Farad Kondensator parallel zu den 3.3Meg besser funktioniert?
Paul Schokemöhl schrieb: > Ich habe, weil's mich interessiert, bei Analog.com geschaut, diese ganze > Family ist obsolet. Meinst du damit die Capacitance-to-Digital Konverter? Von den 11 hier gelisteten ICs https://www.analog.com/en/parametricsearch/10889#/p4666=|Capacitance%20to%20Digital&d=4666|165|7|1746|4365|4163|4943|4730|s3|s5|s7 sind zwei am Auslaufen ("last time buy"), für eines rückt das Ende in absehbare Entfernung ("not recommended for new designs"). Die anderen sind "in Production". Wie kommst du zur Aussage "die ganze Family ist obsolet"?
>um kapazitive Sensoren im pF-Bereich auslesen zu können, habe ich gute >Erfahrungen mit Capacitance-to-Digital Konvertern gemacht. Das klingt sehr interessant und werde mich mal einlesen. >Der Pull-Up zieht den Pin rauf, und du pollst den Pin, bis >er High ist. >Die Zeit bestimmt die Kapazität. >Kostet dich 2 Euro, und wertet problemlos 10-30 Sensoren aus. Das ist dann quasi eine Messung von Tau=R*C? Denkst du das unterhalb von 30 pF wird die Genauigkeit zu schlecht oder warum gibst du diese Grenze an? Aber ich werde es auf jeden Fall mal testweise ausprobieren, da es ja wirklich eine sehr schnelle und preiswerte Methode ist. >Ich würde dir vorschlagen, mische die Ausgänge der 555er >mit Digitaltransistoren BCR4711 oder Dioden als Wired-Or Verknüpfung. Das ist mir auch schon bei meiner Schaltung aufgefallen, als ich es mit 2 Timer555 aufgebaut hatte. Danke für den Hinweis :)
Die 30 pF sind nur ein grober Richtwert. Hängt von der Eingangskapazität des IO Pins und der angeschlossenen Leitung ab. Das kannst du natürlich noch rausrechnen. Wenn die Sensorkapazität aber deutlich kleiner ist, dann leidet die Genauigkeit schon drunter. Ich weiss nicht wie gross deine Sensorkapazitäten sind. Um welche Sensoren geht es denn genau?
>Hab ich auch verstanden, ich wollte wissen, wie der TO Frequenzen mit >dem uC misst. ja genau mit einem Timer. Wenn du willst kann dir den Code zu senden, sitze aber im Moment am falschen PC. >10 Farad Kondensator parallel zu den 3.3Meg besser funktioniert? das sind natürlich 10 nF.. habe mich vertippt
Magnus L. schrieb: >>10 Farad Kondensator parallel zu den 3.3Meg besser funktioniert? > > das sind natürlich 10 nF.. habe mich vertippt Und wie soll das funktionieren? Die 10 nF sind doch parallel zum Sensor?
Da ich ja noch keine echten Sensorwerte verwendet habe sondern nur Kondensatoren (Größe von 22pF bis ca 10nF) versucht habe und trotzdem meine Frequenzen so stark beeinflusst habe, wollte ich mal versuchen einen Kondensator parallel noch reinzuhängen. An und für sich ändert das ja nur meine Gesamtkapazität und natürlich auch meine Frequenz(Aber ich wollte natürlich erstmal das Problem beheben warum sie sich gegenseitig so stark beeinflussen), aber das Messkonzept sollte ja trotzdem funktionieren oder?
Wenn man genügend Zeit hat, dann kann man kleine Kapazitäten auch durch eine Ladungspumpe messen. Man lädt/entlädt z.B. einen Referenzkondensator und benutzt die kleine, zu messende Kapazität zum schrittweise Entladen/Laden des Referenzkondensators. Das kann man geschickt lösen indem man die Tri-State Funktionalität an den Microcontroller Pins ausnutzt. Dazu benötigt man 2 + n Pins an einem Mikrocontroller. (n = Anzahl der zu messenden Kapazitäten) Das nutze ich in meinem Bodenfeuchtesensor.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.