Ich muss mit einem AVR, vorzugsweise ATmega8 / 328 oder ATtiny, mehrere kleine Kapazitäten im pF bis nF-Bereich messen. Das Ganze soll für einen kapazitiven Füllstandssensor sein. Es sind zwei Füllstände und eine Vergleichskapazität für Temperaturdrift der Zeitmessung (interner Takt des AVR) zu messen. Zum einen wäre da die LC-Meter-Schaltung mit LM311 (http://digital-nw.de/images/RCKreis.png und andere). Hierfür müsste ich mit 3 Reed-Relais die Füllstandsdrähte und den Vergleichskondensator zuschalten. Die Reed-Relais brauchen halt Platz und Strom. 3 mal die Schaltung aufbauen scheitert daran, dass ich ja nur einen T1-Zählereingang habe, um die Frequenzen im unteren MHz-Bereich zu messen. Und Unterschiede in den 3 Aufbauten (Induktivität) bekommt ich damit nicht raus. Gleiches Problem bei Takterzeugung mit einem 555: Entweder ich muss die Leitungen umschalten, oder ich habe mehrere 555, deren Unterschiede ich nicht kompensieren kann. Und nur einen T1. Dann gäbe es noch die direkte Messung über den Analogkomparator des AVR (http://elm-chan.org/works/cmc/gfx/cmc.png). Würde mir sehr gefallen, da wenige Bauteile. Problem hier: Es gibt nur einen Komparator. Und bei den geringen Kapazitäten = kurzen Schaltzeiten bin ich anscheinend auf die Nutzung des Interrupts angewiesen. Oder gibt es eine Möglichkeit, die Messung auch mit anderen Pins ausreichend schnell - und vergleichbar - durchzuführen? INT0 und INT1 hab ich ja auch wieder nur zwei Eingänge... Die Messung darf hintereinander erfolgen. Die Messung darf auch durchaus mehrere msec oder sec dauern. Aber bei längerer Messung soll der AVR ansprechbar bleiben, es soll ein I2C-Slave werden.
Hallo, Ich würde von deinem Design Abstand nehmen und für jeden Kanal einen Messkopf aufbauen. Für jeden Messkopf bedeutet das jeweils auch noch eine AVR µC mit Schnittstelle, z.B. I2C. Da I2C i.A. für kurze Verbindungen gemacht wurde, sind alle Messköpfe nahe an der Messstelle anzuordnen und ihre Daten werden über einem Master zur Verfügung gestellt. Dieser verfügt über einen BUS, z.B. "CAN-Bus", und wird so im Netzverbung abgefragt.
Karl schrieb: > Das Ganze soll für einen kapazitiven Füllstandssensor sein. Es sind zwei > Füllstände und eine Vergleichskapazität für Temperaturdrift der > Zeitmessung (interner Takt des AVR) zu messen. Und die Füllstände musst du alle 100µs messen, oder warum schaltest du nicht einfach um und misst nacheinander?
Der Andere schrieb: > Und die Füllstände musst du alle 100µs messen, oder warum schaltest du > nicht einfach um und misst nacheinander? Hab ich doch so geschrieben: Ich könnte über Reedrelais umschalten, aber Reedrelais sind groß und brauchen Strom. Der AVR hat ja genug Pins, vielleicht gibt es doch eine Möglichkeit die zu nutzen, die ich nicht sehe.
etwas ähnliches baue ich auch gerade, kapazitive Erdfeuchtemessung. Aber anstelle eines AVR verwende ich LPC812 / LPC24, Cortex-M0. Die haben einen Comparator aber 2 (LPC812) oder 4 (LPC824) Analogeingänge. Die Messung funktioniert aber ich optimiere noch. Die Temperaturdrift ist beim internen Oszi deutlich zu sehen, die Idee mit der Vergleichsmessung eines konstanten C hatte ich auch. Oder die LPC mit Quarz betreiben. Wenn ich kleine C messe ist der Wert sehr stabil, habe gerade eine Mittelung über 32 Werte eingestellt, stdAbw ist <0 und Range 3µs. Meine Sensorfolie reagiert aber sehr empfindlich, komme ich mit der Hand näher gehen Standardabw. und Range der Messwerte in die Höhe, auch wenn ich mit der Leuchtstofflampe in die Nähe komme stört die kräftig. Der Sensor dürfte stark auf die allgegenwärtigen 50 Hz Felder reagieren. Edit: zum Umschalten der Analogen Signale mit AVR könnte sowas wie ein CD4066 helfen.
Der Andere schrieb: > Und die Füllstände musst du alle 100µs messen, oder warum schaltest du > nicht einfach um und misst nacheinander? Auf die gleiche Idee kam Karl schon, bevor du deine Frage gestellt hast. Und deine Frage nach den 100µs (wo nimmst du diesen Wert her?) hat er auch schon beantwortet: Karl schrieb: > Die Messung darf hintereinander erfolgen. Die Messung darf auch durchaus > mehrere msec oder sec dauern.
Karl schrieb: > Ich muss mit einem AVR, vorzugsweise ATmega8 / 328 oder ATtiny, mehrere > kleine Kapazitäten im pF bis nF-Bereich messen. Woher kommt dieser rel. große Bereich? Wie genau muss das Ergebnis sein. Für eine ähnliche Aufgabe habe dich die Kapazitäten per Touch-Algorithmus ermittelt. Infos ab: Beitrag "Re: qtouch - sekt oder selters"
Hurtig schrieb: > Woher kommt dieser rel. große Bereich? Wie genau muss das Ergebnis sein. Um die 30 bis 100pF reine Kabelkapazität bei leerem Tank, einige nF bei vollem Tank. Ich würde das gleiche Prinzip Schaltung Software entsprechend angepasst gern auch für Erdfeuchtemessung nutzen. Die LM311 Variante soll ja sehr gut auflösen über einen weiten Messbereich. Ist halt etwas aufwendiger. Johannes S. schrieb: > zum Umschalten der Analogen Signale mit AVR könnte sowas wie ein CD4066 > helfen. Ich hab auch schon an PhotoMos gedacht. Das Problem sind halt immer die verbleibenden Kapazitäten. Da kommen schon einige pF, bei PhotoMos 100pF zusammen. Auch zeigt die Simu, dass beim LM311 die Spannung am Schwingkreis - natürlich - negativ wird. Da braucht der 4066 dann eine negative Hilfsspannung.
Karl schrieb: > Der AVR hat ja genug Pins, vielleicht gibt es doch eine Möglichkeit die > zu nutzen, die ich nicht sehe. Je nachdem, wie schnell deine Pulse kommen, geht nicht nur T0 und T1, sondern z.B. auch ein PC Interrupt und/oder INT0 und INT1. Dabei bleibt Timer 2 eines Mega328 als Ticker immer noch frei. Du kannst aber auch die (digitalen) LM311 Ausgänge über einen Multiplexer führen (4051/4052) und die nacheinander auf T0/T1 führen und messen. Braucht halt für jede Messstelle eine Schaltung mit LM311.
Karl schrieb: > Hurtig schrieb: >> Woher kommt dieser rel. große Bereich? Wie genau muss das Ergebnis sein. > > Um die 30 bis 100pF reine Kabelkapazität bei leerem Tank, einige nF bei > vollem Tank. Warum musst du dazu die kleinen Kapazitäten messen? Du willst die großen Kapazitäten messen (% von Maximalkapazität?). Was interessieren dich die kleinen. Wenn sie so klein sind, dass sie schwierig zu messen sind, dann stören sie auch nicht.
Wolfgang schrieb: > Warum musst du dazu die kleinen Kapazitäten messen? Ist das jetzt für die Auswahl des Messverfahrens irgendwie relevant, ob ich 30pF oder 300pF oder 3nF messen will? Ich will schlicht keine Elkos messen und damit fällt Ladekurve über ADC messen aus. Fertsch. Das ist genauso irrelevant wie die Frage ob I2C oder CAN-Bus. Hurtig schrieb: > Für eine ähnliche Aufgabe habe dich die Kapazitäten per > Touch-Algorithmus ermittelt. Touch hatte ich mir schon angeschaut, aber mein Eindruck war, dass das eher für Detektion einer schnellen Kapazitätsänderung bei Berührung als zur Messung tauglich ist? Kann man damit sinnvoll in pF-Auflösung messen? Der große Vorteil von Q-Touch wäre, dass man problemlos mehrere Eingänge nutzen kann.
Karl schrieb: > Oder gibt es eine Möglichkeit, die Messung auch mit anderen Pins Beim Analogkomparator läßt sich AIN1 mit den Multiplexerausgang vom ADC ersetzen. Damit stehen mehrere Eingänge für die Kanäle zur Verfügung. Da die ADC-Eingänge auch gleichzeitig digitale Ausgänge sein können, kann man einen Kondensator am Eingang schnell auf GND oder Vcc Potential bringen und mit einem zusätzlichen Widerstand eine Lade- bzw. Entladekurve erzeugen. Die Zeiten kann man per ICP mit Timer1 genau ermitteln und somit die Kapazität errechnen. Es gibt mehrere Schaltungsvarianten, von denen ich jedach keine näher ausführen möchte. Es selber zu machen, sollte nicht schwer sein. Ich würde jedoch dafür sorgen, daß die Kapazität am Eingang nicht zu klein wird (>= 1 nF), um die erzeugten Frequenzen nicht zu hoch werden zu lassen. Aber auch das ist Geschmackssache.
m.n. schrieb: > Beim Analogkomparator läßt sich AIN1 mit den Multiplexerausgang vom ADC > ersetzen. Damit stehen mehrere Eingänge für die Kanäle zur Verfügung. Das ist mir neu, aber AIN hab ich auch noch nie verwendet. Muss ich mal im Datenblatt schmökern. Ich hab gestern abend mal Qtouch ausprobiert, das sieht gar nicht so schlecht aus. Ich hab mich nur gewundert: Eigentlich sollte ich für Kondensatorpaare 330p / 47nF ja so Werte um die 150 Umladungen bekommen. Ich bekomme aber nur 76. Gerade fiel es mir wie Schuppen aus den Haaren: Ich lade ja mit Vcc, der Pin schaltet aber bei Vcc / 2. Natürlich reicht dafür die Hälfte der Umladungen. Ich werd mir aber dennoch mal den Analogkomperator in Verbindung mit Qtouch ansehen. Die Schaltschwelle dürfte definierter sein als beim "normalen" Pin. Dann werd ich heute mal Messreihen schieben um zusehen, wie die Auflösung und Reproduzierbarkeit der Qtouch-Lösung ist.
Eine weitere Möglichkeit sind U/F Wandler wie zb: AD537 da gibts auch ein Beispiel dafür. Der wird dir als DIL aber zu groß sein.
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.