Hallo zusammen.
Ich arbeite derzeit an einem Projekt, bei dem ich Abstände kapazitiv
messen möchte.
Aufgrund von sehr geringem Platzangebot fallen die gängigen
Möglichkeiten um Abstände zu messen aus. (Z.B. ToF, Ultraschall, IR
usw.)
Kapazitive Messmethoden bieten sich deshalb an, weil ich dann nur eine
Sensorelektorde am Messpunkt benötige, welche ich mittels Kabel
herausführen kann und dann z.B. mit einem Arduino messen kann.
Bisher verwende ich folgende Library um die Abstände, bzw. die gemessene
Kapazität arbiträr zu erfassen:
https://github.com/martin2250/ADCTouch
Dabei habe ich ein Stück Alufolie von 4x5cm mit einen Arduino verbunden.
Mit der Library ändern sich die Werte sehr schön, wenn man sich dieser
"Sensorelektrode" z.B. mit einer Hand nähert. Um Schwankungen zu
minimieren habe ich eine Linearführung gebaut, mit welcher ich Objekte
der Sensorelektrode gezielt nähern kann.
Diese Messobjekte sind mit GND verbunden, sodass eine Art
Platten-Kondensator zwischen Messobjekt und Sensorelektrode (Alufolie)
entsteht, bei dem der Abstand d variiert werden kann.
Nun habe ich versucht anhand der Werte, welche mir die Library ausgibt,
einen Abstand zu berechnen und diese mit dem tatsächlichem Abstand zu
vergleichen.
Laut Beschreibung der Library wird die Messeelektrode (Alufolie) auf 5V
geladen und mit dem internen, zuvor entladenen 14pF Kondensator
parallelgeschalten.
Mit Q=C*U und der Annahme, dass zum Messzeitpunkt des ADC's die Spannung
der Parallelschaltung bereits die selbe war (Ladevorgang der
Kondensatoren abgeschlossen) kam ich auf folgende Formel:
Nach Umstellen liefert einem diese die gemessene Kapazität an der
Sensorelektrode:
Wobei
die gemessene Spannung vom ADC ist,
und
sind.
Wenn ich dies nun in die allgemein gültige Formel zur Bestimmung des
Abstandes eines Platenkondensators einsetze...
...dann bekomme ich grotten-falsche Werte für den Abstand heraus.
(Für eine Messreihe von 0 bis 3,5cm erhalte ich errechnete Werte von
0,001 bis 0,1 mm heraus)
Ist dies überhaupt der richtige Ansatz?
Ich bin nicht abgeneigt einen IC für diese Aufgabe zu verwenden, hat
hierzu jemand einen konkreten Vorschlag? Mir ist wichtig, dass ich den
Abstand nicht nur arbiträr erfassen kann, sondern ihn auch
quantifizieren kann.
Ich bin für jede Hilfe dankbar.
Viele Grüße,
Donald
Donald P. schrieb:> (Für eine Messreihe von 0 bis 3,5cm erhalte ich errechnete Werte von> 0,001 bis 0,1 mm heraus)>> Ist dies überhaupt der richtige Ansatz?
Kommt drauf an, welche Abstände du tatsächlich messen willst. Dass die
Sache nur im Sub-Millimeter Bereich funktionieren kann, ist mir
jedenfalls klar.
Donald P. schrieb:> Aufgrund von sehr geringem Platzangebot fallen die gängigen> Möglichkeiten um Abstände zu messen aus. (Z.B. ToF, Ultraschall, IR> usw.)
Meine Meinung: von allen aufgeführten Messmethoden ist die kapazitive
diejenige, die sich am wenigsten für die Miniaturisierung eignet.
Schallgeber, Infrarotsensoren kann man fast beliebig klein bauen, eine
kapazive Elektrode muss eine minimale Grösse haben. 4 x 5 cm ist
lachhaft gegenüber anderen Möglichkeiten.
Aber wahrscheinlich willst du sowas nicht hören, nachdem du dir was
ausgedacht hast.
Georg
Stefan ⛄ F. schrieb:> welche Abstände du tatsächlich messen willst
Für eine Messreihe von 0 bis 3,5cm (!)
> Dass die Sache nur im Sub-Millimeter Bereich funktionieren kann
Gilt nur, wenn die Platten auch nur mm oder sub-mm groß sind. Aber:
Donald P. schrieb:> ein Stück Alufolie von 4x5cm
Da wird es allerdings schon ziemlich nichtlinear - ab wann man auch
immer etwas linear oder nichtlinear nennt. Ein Faktor von 35 wäre es
aber weiß Gott wahrlich nicht.
Mein Tipp: Mach mal Versuche mit Festkondensatoren statt deinem
Plattenkondensator. Danach weißt du, ob dein µC die falsche Kapazität
bestimmt, oder etwas mit deinem Plattenkondensator oder mit der
Mathematik faul ist.
Der Zahn der Zeit (🦷⏳) schrieb:> Für eine Messreihe von 0 bis 3,5cm (!)
Wenn das stimmt: Vergiss es. Lohnt sich gar nicht, weiter drüber nach zu
denken.
Das ist eine Aufgabe für Optische Sensoren von Sharp.
Donald P. schrieb:> Alufolie von 4x5cmDonald P. schrieb:> bis 3,5cm
Eine nur 4.5cm breite Kondensatorplatte hat bei 3.5cm Abstand keine
sinnvolle Kapazität mehr zur Gegenelektrode, sondern nur noch zur
Umgebung.
Mehr als 3.5mm Abstand ist bei der Folie nicht drin, und statt Folie in
der Grösse lieber ein stabiles Blech.
Zudem musst du die Kapazität nach hinten bestimmen, da gibt es auch
Umgebung.
Donald P. schrieb:> erhalte ich errechnete Werte von 0,001 bis 0,1 mm heraus
Deine 18pF werden aus vielen Gründen keine 18pF sein: IC-Pin,
Platinenleitung, Stecker, Kabel, Durchfuhrung zur Folie, bringt in Summe
mehr als 18pF.
Vielen Dank für die Beiträge und die rege Diskussion ! :-)
Stefan ⛄ F. schrieb:> Wenn das stimmt: Vergiss es. Lohnt sich gar nicht, weiter drüber nach zu> denken.Georg schrieb:> Meine Meinung: von allen aufgeführten Messmethoden ist die kapazitive> diejenige, die sich am wenigsten für die Miniaturisierung eignet.> Schallgeber, Infrarotsensoren kann man fast beliebig klein bauen, eine> kapazive Elektrode muss eine minimale Grösse haben. 4 x 5 cm ist> lachhaft gegenüber anderen Möglichkeiten.
Das Problem ist, dass ich im vertikalen Bauraum (Z-Achse) begrenzt bin.
Die kapazitiven Methode ist die einzige Methode, die keinen vertikalen
Bauraum signifikant in Anspruch nimmt. (da nur Alufolie als
Sensorelektrode benötigt) Selbst ein optischer IC mit 3mm Höhe wäre
eigentlich auch schon zu viel.
Versteht mich nicht falsch...die Messungen funktionieren sehr gut. In
einem Bereich von 3-4cm Abstand springt der Sensor an und liefert mir
einen relativ genauen, reproduzierbaren Ausschlag, welchen man eindeutig
mit dem variablen Abstand assoziieren kann.
Es gibt ja auch kommerzielle, kapazitive Abstandssensoren, die den
Abstand sehr genau und in einem Bereich von 10-20 mm messen können und
das bei einer Sensorelektrode, die einen Durchmesser von 1cm hat.
MaWin schrieb:> Zudem musst du die Kapazität nach hinten bestimmen, da gibt es auch> Umgebung.
Das stimmt. Kann man das irgendwie mit einer weiteren Elektrode
schirmen, ohne die Messung zu beeinflussen? (statisches oder variables
E-Feld)
Stefan ⛄ F. schrieb:> Das ist eine Aufgabe für Optische Sensoren von Sharp.
Leider muss der Sensor "blind" messen können, sprich er befindet sich
hinter einer Schutzschicht aus sehr dünnem Kunststoff. Bei meinen Tests
habe ich die Alufolie mit einem Foliergerät eingeschweißt.
Hat jemand eine Empfehlung für einen IC, an den ich die Sensorelektrode
klemmen könnte um Abstände im Bereich von 50mm Messen zu können?
Vielleicht stößt die Messmethode mit dem Arduino einfach nur an ihre
grenzen und ein IC könnte mir einiges an Boilerplate (mathematisches
Modell, Kompensationen, Filter und Kalibrierung) ersparen?
Danke Euch auf jeden Fall ! :-)
naja, wenn alles funktioniert, aber du keine passende Formel hast, dann
empfehle ich: mach eine Messreihe, um eine Kalibrierungstabelle
aufzubauen und spar dir die ganze Physik.
Vorschläge für mögliche Fehlerquellen in der Modellierung hast du ja
oben bereits einige genannt bekommen.
Donald P. schrieb:> Hat jemand eine Empfehlung für einen IC, an den ich die Sensorelektrode> klemmen könnte um Abstände im Bereich von 50mm Messen zu können
Vergiss kapazitive Messung bei 50mm Abstand.
MaWin schrieb:> Vergiss kapazitive Messung bei 50mm Abstand.
Da der TO ja schon einige Erfolge mit seinem durchaus noch
verbesserungsfähigen Aufbau erzielen konnte, erscheint dein pauschaler
Rat reichlich vorschnell.
Einige hoffentlich hilfreichere Kommentare zur Sache:
1. Die extreme Abweichung zwischen Rechnung und Messergebnis legt nahe,
dass entweder ein Fehler in der Rechnung steckt (mir fehlt jetzt aber
die Zeit, das nachzuprüfen), oder der Testaufbau sehr viele Störeffekte
liefert. Falls hinter der Frage eine ernsthafte Applikation steht,
sollte man dem nachgehen.
2. Es gibt (mindestens) ein IC zur Gestenerkennung, das über ähnliche
Distanzen misst, MGC3030. Damit einen Aufbau zu realisieren erfordert
aber eine Menge Beschäftigung mit der Materie.
3. Grundsätzlich gilt: es muss ein fester Aufbau verwendet werden,
direkte kapazitätsarme Verbindung zwischen Controller-Pins und
Sensor-Elektrode, schmale Leiterbahnen (15 mil), Führung über
Groundplanes sollte vermieden werden. Zuverlässig und hochempfindlich
funktioniert das nur, wenn sich Prozessor bzw. Sensor-IC und Elektrode
auf dem gleichen Board befinden bzw. die Elektrode/das Sensorboard
direkt mechanisch oder über Steckverbinder mit dem Prozessorboard
verbunden ist. Ein Arduino ist da eher Overkill, besser ist ein
dediziertes kleines Board nur für diesen Zweck.
4. U. a. hier wurde das grundsätzliche Thema ausführlich diskutiert:
Beitrag "Was ist bzw. war Atmel QTouch?"
5. Ich habe mir NICHT detailliert die vom TO verlinkte Source angesehen.
Empfehlenswert wegen höherer Auflösung und besserer Stabilität ist in
jedem Fall ein Verfahren wie u. a. von Tim vorgeschlagen.
6. WESENTLICH besser gegen Störungen durch äußere Felder (u. a. von der
Rückseite) geschützt und damit auch empfindlicher für größere Abstände
wird die Messung, wenn man eine Shield-Elektrode verwendet.
Grundsätzliche Vorgehensweise: Messelektrode nicht zu groß
(Standardgröße für Qtouch ist etwa 1 cm², ich weiß nicht, wo die
Obergrenze für beste Messgenauigkeit liegt, würde sie aber bei wenigen
cm² vermuten), Board 1,6 mm dick, auf Rückseite Shield-Elektrode,
möglichst etwas größer als die Messelektrode, zur Verringerung der
Kapazität nicht vollflächig, sondern als Gitter). Zur optimalen
Gestaltung von QTouch-Elektroden gibt es umfangreiche, of verwirrende
und manchmal widersprüchliche Applikationsschriften von Microchip und
anderen Herstellern.
7. Shield-Elektrode erfordert nach aktuellem Wissensstand die Verwendung
der originalen QTouch-Library und einen Prozessor mit mindestens 8
KByte. Viel Platz für eigene Software bleibt da nicht mehr. Ich würde
dafür einen der neueren Attiny Series 1 verwenden und den NUR für diese
Messaufgabe einsetzen, Touch-Raw-Daten auswerten, Kommunikation über
serielle Schnittstelle o. ä.
8. Wenn es was Richtiges werden soll: Demo-Board von Microchip besorgen
(z. B. ATtiny817-Xpro), Sensorboard dazu designen, damit Aufbau
ausprobieren, Software entwickeln, Sensorboard optimieren, schließlich
eigenes Board mit kleinstmöglichem Prozessor und der im vorherigen
Schritt entwickelten Elektrode designen.
Jedenfalls wird das ein größeres Projekt, das man nicht mal so eben aus
ein paar Standard-Bauteilen und Softwareschnipseln zusammenstellt.
MaWin schrieb:>> Hat jemand eine Empfehlung für einen IC, an den ich die Sensorelektrode>> klemmen könnte um Abstände im Bereich von 50mm Messen zu können>> Vergiss kapazitive Messung bei 50mm Abstand.
Warum? Wenn er eine Elektrode mit 200mm Kantlänge hat, geht das schon
;-)
Falk B. schrieb:> MaWin schrieb:>>> Hat jemand eine Empfehlung für einen IC, an den ich die Sensorelektrode>>> klemmen könnte um Abstände im Bereich von 50mm Messen zu können>>>> Vergiss kapazitive Messung bei 50mm Abstand.>> Warum? Wenn er eine Elektrode mit 200mm Kantlänge hat, geht das schon> ;-)
Nicht mit QTouch. Das Funktionsprinzip erfordert, dass die
Elektrodenkapazität in der Größenordnung der Sampling-Kapazität liegt.
Mit anderen Verfahren kann man selbstverständlich größere Kapazitäten
verwenden. Letztlich ist die Größe der Kapazität aber weitestgehend
nebensächlich und deshalb Kommentare wie deiner neben der Sache.
Entscheidend ist, mit welcher Auflösung man messen kann und mit welchen
Maßnahmen man Störeinflüsse ausschalten bzw. kompensieren kann. Da wir
den Aufbau des TO nicht kennen, wissen wir überhaupt nicht, welche
Störeinflüsse vorliegen.
Damit man nur das homogene Feld misst, ist es nötig um die Messelektrode
eine weitere Elektrode anzubringen, welche auf Ground liegt. Diese
"saugt" den nicht homegenen Teil des Feldes ab.
Bei dem Abstand glaube ich nicht dass das funktioniert, kapaztitive
Messungen machen wir nur bei 1mm und darunter.
Wenn kapazitiv und diese Entfernung, dann läuft das normal nicht über
den Abstand der Sensorplatten, sondern den hält man konstant und man
schiebt die Platten aneinander vorbei und ändert so die wirkende Fläche.
Das geht auch über viele cm hinweg. Das geht im Zweifel auch direkt mit
zwei Leiterplatten mit Kupferflächen.
Gerald M. schrieb:> Bei dem Abstand glaube ich nicht dass das funktioniert, kapazititive> Messungen machen wir nur bei 1mm und darunter.
Nicht bis 1 mm, sondern bis 200 mm, kapazitiv, siehe Auszug aus der
Dokumentation zum MGC3030. "Sensor Size" meint dabei NICHT die Größe der
Einzelelektrode, sondern das von mehreren Elektroden umschlossene
Arbeitsfeld. Dabei geht es natürlich nicht um Messung des Abstands als
physikalische Größe, sondern um Erfassung einer Geste im
dreidimensionalen Raum. Grundlage ist aber auch dabei die Erfassung der
Position, der Arbeitsbereich ist näherungsweise ein Kubus mit der
Kantenlänge der Sensor-Elektroden.
Hi,
möglicherweise würde ein einfacher Oszillator mit LC-Schwingkreis und
Auswertung über die Frequenz wesentlich besser reproduzierbare Werte
bringen, wenn schon an der Messmethode festgehalten werden soll. Aber
ich denke auch, man sollte noch mal über optische Möglichkeiten
nachdenken, z.B. ein schräg seitlich einfallender Lichtstrahl
(Laserdiode), der am Ziel reflektiert wird, und dann dessen
unterschiedliche Ablenkung auswerten.
Falk B. schrieb:> Warum? Wenn er eine Elektrode mit 200mm Kantlänge hat, geht das schon> ;-)
Ich ging von gleicher Elektrodengrösse aus.
Die Elektrode muss halt so gross sein, dass der Abstand vernachlässigbar
ist.
oldbastler schrieb:> Hi,> möglicherweise würde ein einfacher Oszillator mit LC-Schwingkreis und> Auswertung über die Frequenz wesentlich besser reproduzierbare Werte> bringen, wenn schon an der Messmethode festgehalten werden soll. Aber> ich denke auch, man sollte noch mal über optische Möglichkeiten> nachdenken, z.B. ein schräg seitlich einfallender Lichtstrahl> (Laserdiode), der am Ziel reflektiert wird, und dann dessen> unterschiedliche Ablenkung auswerten.
Ja darüber habe ich mir in der Tat auch schon Gedanken gemacht,
allerdings weiß ich nicht, wie groß ich die Bauteile dimensionieren muss
/ auf welche Frequenz ich den Schwingkreis auslegen muss, damit ich die
Beeinflussung der Frequenz durch Annäherung erfassen kann....
Gibt es hierfür eine (Faust-)Formel?
Und wie kann ich die Frequenz dann mit einem Arduino messen?
Es muss standalone bleiben, d.H. ich muss zwangsweise mit einem Arduino
auskommen. Die gemessene Frequenzänderung am Oszi bringt mir leider
wenig...
Donald P. schrieb:> Es muss standalone bleiben, d.H. ich muss zwangsweise mit einem Arduino> auskommen.
Wieso MUSS es zwangsweise ein Arduino sein? Es gibt Tausende von
Möglichkeiten für Standalone-Lösungen, nicht für alle Aufgaben ist ein
Arduino die geeignete Plattform - rein statistisch gesehen wohl für die
meisten eher nicht.
Donald P. schrieb:> Ja darüber habe ich mir in der Tat auch schon Gedanken gemacht,> allerdings weiß ich nicht, wie groß ich die Bauteile dimensionieren muss> / auf welche Frequenz ich den Schwingkreis auslegen muss, damit ich die> Beeinflussung der Frequenz durch Annäherung erfassen kann....>> Gibt es hierfür eine (Faust-)Formel?
Zuerst musst du mal die Eckpunkte der Kapazität festlegen. Wieviel pF
hast du bei min/max Abstand? Daraus kann man dann eine brauchbare
Frequenz festlegen.
> Und wie kann ich die Frequenz dann mit einem Arduino messen?
Mit einem Timer, der kann externe Pulse zählen. Ein 2. Timer bildet die
Meßzeit.
> Es muss standalone bleiben, d.H. ich muss zwangsweise mit einem Arduino> auskommen.
Dann musst du mehr Know How in die Schaltung und Software stecken.
Ich habe gerade für einen Prüfaufbau eine Kapazitätsmessung gebaut, die
nur einen einfachen RC-Oszillator mit Schmitt-Trigger nutzt. Die läuft
bei ca. 45kHz uns mißt Kapazitäten im Bereich 100-300pF auf 1-2pF genau.
Das kann man sicher auch für kleinere Kapazitäten anpassen. Wie weit man
damit kommt, muss man testen. Die Auswertung macht ein AVR, also
praktisch die gleiche CPU wie die Arduinos.
Viele MSP430 haben Pin-Oszillatoren, bei denen die externe Kapazität die
Frequenz bestimmt. Die lässt sich leicht und je nach Messzeit mit
beliebig hoher Auflösung bestimmen. Leider ist das kein Arduino. Aber
mit nur einem invertierenden Single-Gate Schmitt-Trigger + einem
Widerstand sollte das Gleiche auch an einem Arduino zu erreichen sein.
Den Ansatz, die Kapazität theoretisch aus den geometrischen
Gegebenheiten zu bestimmen und dann daraus den Abstand zu bestimmen,
halte auch ich für völlig unsinnig, weil die Nichtlinearität des Systems
ganz, ganz erheblich sein wird. Hoffentlich ist die Kennlinie wenigstens
monoton. Etwas anderes als mit einer Tabelle, die mittels Versuchen oder
Kalibrierungslauf erstellt wird, wird sicherlich nicht gehen.
MaWin schrieb:> Vergiss kapazitive Messung bei 50mm Abstand.Dieter R. schrieb:
... Eine wirklich gute und fundierte, lange Antwort.
MaWin, wenn du den Unterschied betrachtest, ist dir nicht peinlich, was
für eine jämmerliche Leistung du mit deiner Antwort gezeigt hast?
Donald P. schrieb:> er befindet sich> hinter einer Schutzschicht aus sehr dünnem Kunststoff. Bei meinen Tests> habe ich die Alufolie mit einem Foliergerät eingeschweißt
Dieser Kondensator besitzt also zwei verschiedene Dielektrika (Folie und
Luft).
Die Formeln entsprechend anpassen.
Nautilus schrieb:> Dieser Kondensator besitzt also zwei verschiedene Dielektrika (Folie und> Luft).> Die Formeln entsprechend anpassen.
Danke, das ist ein wirklich guter Hinweis!
Der Zahn der Zeit (🦷⏳) schrieb:> Aber> mit nur einem invertierenden Single-Gate Schmitt-Trigger + einem> Widerstand sollte das Gleiche auch an einem Arduino zu erreichen sein.
Kannst Du mir hierzu mehr erzählen? Also wie schaut die Schaltung aus:
Schmitt-Trigger + Widerstand am Arduino?
Das dürfte ja dann genau auf diese Anordnung hier hinauslaufen, oder?
Falk B. schrieb:> Ich habe gerade für einen Prüfaufbau eine Kapazitätsmessung gebaut, die> nur einen einfachen RC-Oszillator mit Schmitt-Trigger nutzt.
Meinst Du so etwas?
https://electronics-course.com/schmitt-trigger-oscillator
Den Widerstand müsstest du experimentell ermitteln. Nicht zu hoch, damit
die Frequenz nicht zu klein wird, um in kurzer Zeit ausreichend genaue
Ergebnisse messen zu können, und nicht zu klein, damit 1. die
Frequenzmessung im µC noch damit klar kommt (hat der Arduino eine
Capture-and-Compare Unit?) und 2. bestimmt bei hohen Frequenzen
zunehmend die Gatterverzögerungszeit die Frequenz.
Falk B. schrieb:> Donald P. schrieb:>> Meinst Du so etwas?>> https://electronics-course.com/schmitt-trigger-oscillator>> Ja.
Da hab ich aber meine Zweifel, dass das mit ein paar pF läuft. Jedes
andere der hier bisher diskutierten Verfahren dürfte
erfolgversprechender sein. Wenn das Ganze nicht in eine Dauerbastelei
ausarten soll:
ENTWEDER eine der diskutierten Lösungen mit Atmel/Microchip oder anderen
Chips zur Kapazitätsmessung verwenden,
ODER was analoges (diskret aufgebautes) sorgfältigst vorher simulieren
(einschließlich Parameterstreuungen und Temperaturgang) und dann
trotzdem noch überrascht sein, was für Probleme in der Praxis auftreten,
UND bei allem beachten: Shield-Elektrode (Hinweis: die liegt bei QTouch
NICHT auf Gnd)!
Dieter R. schrieb:> Da hab ich aber meine Zweifel, dass das mit ein paar pF läuft.
Laut dem Human-Body-Modell besitzt der Körper eine Kapazität von ca. 100
pF. Hinzu kommt noch die Kapazität der Platte, welche sich auch im
Rahmen von xx bis. xxx pF bewegen dürfte.
Bei folgendem Kollege ist es mit dieser Methode ja schon erfolgreich im
Einsatz:
Falk B. schrieb:> Die läuft> bei ca. 45kHz uns mißt Kapazitäten im Bereich 100-300pF auf 1-2pF genau.
Das könnte man doch bestimmt noch etwas trimmen, um einen niedrigeren
Kapazitätsbereich messen zu können. Die Frage ist, welche Bauteile er
genau verwendet hat...
Dieter R. schrieb:> ENTWEDER eine der diskutierten Lösungen mit Atmel/Microchip oder anderen> Chips zur Kapazitätsmessung verwenden
Ich tendiere eher zur Variante Nummer 1. Der
Andreas B. schrieb:> AD7152/53
kann leider nur bis 4 pF messen, was nach meiner Meinung etwas zu wenig
sein wird.
Ich habe hier ein MPR121
(https://www.nxp.com/docs/en/data-sheet/MPR121.pdf) da, welcher aber
leider beim Annähern der Objekte auf meiner Linearführung nicht den
gesamten Messbereich der 10 Bit ausschöpft, sondern nur etwa 20
%...Dieser war allerdings noch auf 12-kanalig gestellt, sofern dies
einen Unterschied macht...
Denkt Ihr folgender IC wäre dafür geeignet Abstände zu erfassen?
https://www.mouser.de/datasheet/2/268/doc9634-1369146.pdf
Im Datenblatt steht, er verwendet das QTouchADC Messverfahren
Dieter R. schrieb:> UND bei allem beachten: Shield-Elektrode (Hinweis: die liegt bei QTouch> NICHT auf Gnd)!
Ich habe jetzt schon vermehrt von der Shield-Elektrode gelesen,
allerdings jeweils unterschiedliche Aussagen. Einmal wird geraten es auf
GND zu legen, einmal auf Vcc und wo anders lese ich dann, dass man die
Shieldelektrode gleich wie eine Sensorelektrode ansteuern soll...
Was stimmt den nu?
Donald P. schrieb:> Dieter R. schrieb:>> UND bei allem beachten: Shield-Elektrode (Hinweis: die liegt bei QTouch>> NICHT auf Gnd)!>> Ich habe jetzt schon vermehrt von der Shield-Elektrode gelesen,> allerdings jeweils unterschiedliche Aussagen. Einmal wird geraten es auf> GND zu legen, einmal auf Vcc und wo anders lese ich dann, dass man die> Shieldelektrode gleich wie eine Sensorelektrode ansteuern soll...>> Was stimmt den nu?
Das:
dass man die Shieldelektrode gleich wie eine Sensorelektrode ansteuern
soll
Warum das so ist, steht in den einschlägigen Applikationsschriften von
Atmel/Microchip. Die solltest du durchlesen. Es hilft nichts, wenn man
dir hier Bröckchen vorkaut, du musst es schon selbst lernen. Kurz
gefasst: es sollen Störfelder von der Messelektrode abgeschirmt werden,
ohne eine zusätzliche kapazitive Last darzustellen.
Der erwähnte MGC3030 macht das, wenn meine Erinnerung mich nicht
täuscht, auch so. Der arbeitet definitiv auf 5 cm Entfernung. Mit QTouch
habe ich es auf solche Entfernungen nicht ausprobiert. Da es bei dir
schon in einer einfacheren Implementierung grundsätzlich läuft, sollte
es mit QTouch und Shield-Elektrode erst recht funktionieren. Sinnvoll:
saubere, entkoppelte Stromversorgung (LDO) NUR für den Prozessor, NICHT
gleichzeitig für andere Baugruppen.
Empfindlicher und vielleicht stabiler und besser reproduzierbar wird es
vermutlich mit einem der erwähnten Chips zur Kapazitätsmessung. Wie man
damit aber eine funktionierende Shield-Elektrode realisieren kann, weiß
ich nicht. Die scheint mir essenziell. Entscheiden könnte man das
allerdings nur in Kenntnis deines Aufbaus.
Dieter R. schrieb:> Da hab ich aber meine Zweifel, dass das mit ein paar pF läuft. Jedes> andere der hier bisher diskutierten Verfahren dürfte> erfolgversprechender sein. Wenn das Ganze nicht in eine Dauerbastelei> ausarten soll:
Das könnte stimmen ;-) Aber der Op will ja UNBEDINGT was mit Arduino,
alles andere ist bähhhh.
> ODER was analoges (diskret aufgebautes) sorgfältigst vorher simulieren> (einschließlich Parameterstreuungen und Temperaturgang) und dann> trotzdem noch überrascht sein, was für Probleme in der Praxis auftreten,
Dafür fehlt dem Op das Wissen und Erfahrung.
> UND bei allem beachten: Shield-Elektrode (Hinweis: die liegt bei QTouch> NICHT auf Gnd)!
Das klingt für mich auch nach einem sehr guten Kandidaten. Das haben
Profis entwickelt, das macht man mal nicht einfach so besser.
Hallo,
Ich habe nicht die ganzen Posts gelesen, vielleicht gab es den Vorschlag
schon:
TI LDCxxxx Serie misst induktiv mit sehr hoher Auflösung!
Einzige Voraussetzung:
Dein zu messendes Objekt muss den Sensorschwingkreis beeinflussen
können. Kunststoff wird so nicht messbar sein.
Viele Grüße
R. S.
Also, die festen Überzeugungen hier, die da lauten, dass das ja gar
nicht gehen kann - ich hatte eine andere Überzeugung. Und weil es so
einfach ist, habe ich meine obige Schaltung mal schnell aufgebaut.
Eine 'HC14 auf den Steckbrett, verschiedene Widerstände, ein paar cm²
Blech als Platte, Alufolie auf dem Tisch und teilweise auch über der
Platte (ein bisschen Abschirmung, der Netzbrumm wirkt sich aus).
1. Erfahrung: Steckbrett ist ganz ungünstig. Die hohe Kapazität zwischen
Ein- und Ausgang lässt den Inverter bei geringer Eingangskapazität im
MHz-Bereich schwingen. Mit mindestens 10 pF Zusatzkapazität am Eingang
war Ruhe, aber die verringern natürlich die Empfindlichkeit für kleine
Plattenkapazitätsänderungen.
1. Erfahrung: Mit 1 MOhm und den 10 pF Grundkapazität, bei schlechter
Schirmung:
In ein paar cm Abstand ~20 kHz, stabil auf 4 Stellen bei 1 s Messzeit(!)
~6 mm Holz als Abstand: ~12 kHz, ebenso stabil
Nur durch Papier isoliert: ~4kHz, ebenso stabil
(Ohne Platte und Zuleitung: ~130 kHz)
Wie gesagt, bei lausigem Aufbau, schlechter Schirmung...
Vernünftig gebaut sind noch weit bessere Ergebnisse zu erreichen, dabei
reichen diese hier vielleicht schon. Je nachdem, wie genau es sein soll
und Messzeit zur Verfügung steht
R. S. schrieb:> TI LDCxxxx Serie misst induktiv mit sehr hoher Auflösung!
Induktive Messung fällt leider aus, da der Abstand von nichtmetallischen
Objekte gemessen werden soll (z.B. Abstand Hand zur Sensorplatte)
Der Zahn der Zeit (🦷⏳) schrieb:> Also, die festen Überzeugungen hier, die da lauten, dass das ja gar> nicht gehen kann - ich hatte eine andere Überzeugung. Und weil es so> einfach ist, habe ich meine obige Schaltung mal schnell aufgebaut.
Sehr sehr cool! Ich habe leider keinen HC14 da, werde mir aber bald wohl
einen zulegen, um damit Versuche durchzuführen.
Dann muss ich nur noch nach einer Möglichkeit schauen, wie ich mit dem
Arduino (oder andere programmierbare Microcontroller) Frequenzen messen
kann. Wie schon erwähnt soll es eine stand-alone Anwendung sein, bei der
der µC bereits die Messwerte bereitstellen kann.
Arduino ist mir nur deshalb so lieb, weil ich dann die Messwerte am PC
direkt weiterverarbeiten und visualisieren kann. Denke einfach der
Arduino ist ein guter Kompromiss zwischen Verfügbarkeit, Vielfältigkeit
und Entwicklungszeit.
Der Zahn der Zeit (🦷⏳) schrieb:> In ein paar cm Abstand ~20 kHz, stabil auf 4 Stellen bei 1 s Messzeit(!)> ~6 mm Holz als Abstand: ~12 kHz, ebenso stabil> Nur durch Papier isoliert: ~4kHz, ebenso stabil> (Ohne Platte und Zuleitung: ~130 kHz)
Wie würde es bei einer Messzeit von 100 mS aussehen?
Also hast Du 6mm Holz auf das Blech gelegt und bist dann mit der Hand
auf das Holz gegangen? Dann dürfte das Holz auch einen Ausschlag gegeben
haben, oder?
>Und wie kann ich die Frequenz dann mit einem Arduino messen?>Es muss standalone bleiben, d.H. ich muss zwangsweise mit einem Arduino>auskommen. Die gemessene Frequenzänderung am Oszi bringt mir leider>wenig...Beitrag "Frequenzzähler Uno"
Der Zahn der Zeit (🦷⏳) schrieb:> Also, die festen Überzeugungen hier, die da lauten, dass das ja> gar nicht gehen kann - ich hatte eine andere Überzeugung. Und weil es so> einfach ist, habe ich meine obige Schaltung mal schnell aufgebaut.> Eine 'HC14 auf den Steckbrett, verschiedene Widerstände, ein paar cm²...
Grundsätzlich halte ich diese Lösung auch für machbar. Allerdings muss
man auch die Temperaturabhängigkeit des Schmitt-Triggern
berücksichtigen. Die Hysterese ist alles andere als stabil.
Donald P. schrieb:> Sehr sehr cool! Ich habe leider keinen HC14 da, werde mir aber bald wohl> einen zulegen, um damit Versuche durchzuführen.
Nicht eine HC14, sondern eine HC1G14 (oder HC2G14), also 74HC1G14. In
SMD, die sind kleiner und haben weniger Rückkopplungskapazität.
Aufgebaut auf einer Adapterplatine wie auf dem Foto, mit dem Widerstand
als SMD-Widerstand direkt daneben.
Von diesen Adapterplatinen habe ich sehr viele (waren mal ein eine Art
"Abfall"). HC1G14 und HC2G14 habe ich auch (glaube ich). HC2G14 ist
insofern praktisch, als dass der Widerstand ohne Leitung direkt neben
das IC gelötet werden kann (glaube ich). Der zweite Inverter kann dann
als Ausgangsbuffer dienen.
Während bei deinem eingangs geschilderten Messverfahren nur mit einer
einzigen Messung die Kapazität bestimmt wird, wird bei der
Oszillator-Methode sozusagen mit jedem Zyklus die Kapazität bestimmt und
am Ende, nach vielen, vielen Zyklen, das Ergebnis als Mittelwert
ausgegeben. Deswegen bietet es eine enorm hohe Auflösung.
Auflösung ist nicht mit Genauigkeit zu verwechseln. Wenn du da in deinem
Aufbau Mist machst, oder wenn die Bedingungen schlecht sind, geht alles,
was möglich ist wieder kaputt.
Ich habe jetzt mal die 1 MOhm auf 10 kOhm reduziert. Das hat zwei
Vorteile: Die höhere Messfrequenz erlaubt noch mehr Messzyklen (=
Auflösung) und die niedrige Impedanz macht das Verfahren unempfindlicher
gegenüber elektrostatischen Störfeldern. Die Frequenzen liegen jetzt
zwischen 4 und 8 MHz.
Donald P. schrieb:> Wie würde es bei einer Messzeit von 100 mS aussehen?
Mit den 10 kOhm habe ich jetzt selbst bei 100 ms Messzeit und meinem
drittklassigen Aufbau eine Stabilität der Frequenz bei ca. 5 Stellen.
Wie gesagt, wenn dein Aufbau besser als meiner ist, kann das bei dir
noch deutlich besser werden, aber auch umgekehrt.
100 Messzeit ist gut, weil dann Störungen durch Netzfrequenz weitgehend
unterdrückt werden. Es müssen aber genau 100 ms sein(!).
Und dass du nicht die Kapazität der Platte theoretisch bestimmen und
davon auf den Abstand schließen kannst, dürfte dir inzwischen klar sein.
Das geht nur unter idealen Voraussetzungen, und wenn man alles beim
Studium der theoretischen Elektrotechnik verstanden hat - und das war
eins der schwereren Fächer. Also muss in einem Kalibrierungslauf eine
Tabelle mit ausreichend vielen Stützstellen für eine ausreichend genaue
Interpolation erstellt werden.
Wehe, wenn sich die Umgebungsbedingungen bei dir danach verändern.
Donald P. schrieb:> Also hast Du 6mm Holz auf das Blech gelegt
Ja (nur die Unterlage = Masse war Alu-Folie
> und bist dann mit der Hand auf das Holz gegangen?
Nein. Die Hand war weit weg. Ein kleines Blech als Platte hat auf dem
Holz gelegen (wie vorher auf dem Papier).
> Dann dürfte das Holz auch einen Ausschlag gegeben haben, oder?
Im Prinzip ja, aber in diesem Zusammenhang vernachlässigbar. Das Holz
war Abstandshalter, aber mit Epsilon-R > 1, natürlich.
HC14 schrieb:> Allerdings muss> man auch die Temperaturabhängigkeit des Schmitt-Triggern> berücksichtigen. Die Hysterese ist alles andere als stabil
Stimmt! Mit mehr Aufwand ließe sich das natürlich verbessern.
Der Zahn der Zeit (🦷⏳) schrieb:> Wehe, wenn sich die Umgebungsbedingungen bei dir danach verändern.
... bekommt einen weiteren Sinn.
oldbastler schrieb:> möglicherweise würde ein einfacher Oszillator mit LC-Schwingkreis und> Auswertung über die Frequenz wesentlich besser reproduzierbare Werte> bringen,
Im Prinzip sicherlich richtig. Um hohe Streukapazitäten zu vermeiden,
sollte die Frequenz des LC-Oszillators schon im 2 - 3 stelligen MHz
Bereich liegen. Angesichts des Störpotentials ist das wohl keine gute
Idee.
Bleibt als weitere Möglichkeit ein RC-Oszillator, wobei ein einfacher
HC14-Inverter wie schon erwähnt eher eine schlechte Lösung darstellt, da
Temperatur- und Versorgungsspannungschwankungen sehr stören würden.
Besser ist eine Schaltung, deren Schwellwerte der Hysterese bei 1/3 und
2/3 VCC liegen. Dies bietet ein TLC555 oder eine Schaltung mit 2 x OPV,
wovon der eine als Integrator und der andere als Komparator arbeitet.
Der sinnvolle Frequenzbereich sollte im zweistelligen kHz Bereich
liegen.
Donald P. schrieb:> Wie würde es bei einer Messzeit von 100 mS aussehen?
Mit einem Arduino UNO kann man bei 0,1 s Messzeit Ergebnisse mit
6-stelliger Auflösung erhalten und somit auch kleine Frequenzänderungen
erfassen. Verwendet man eine reziproke Frequenzmessung kann der
Frequenzbereich von einigen 10 Hz bis zu einigen MHz betragen; alles bei
voller Auflösung.
http://mino-elektronik.de/fmeter/fm_software.htm#bsp7
oldbastler schrieb:
> Hi,> möglicherweise würde ein einfacher Oszillator mit LC-Schwingkreis und> Auswertung über die Frequenz wesentlich besser reproduzierbare Werte> bringen
Dem stimme ich auch ausdrücklich zu. Nicht nur möglicherweise, sondern
ganz bestimmt.
Ich habe die einfachste Methode mit 2 Bauteilen untersucht, und
natürlich kann man es genauer machen. Auch eine 555 wäre eine deutliche,
aber aufwändigere Verbesserung.
Für eine LC-Lösung könnte eine 74LVC1GX04 eine sehr kompakte Lösung
darstellen. Das ist ein spezielles Quarzoszillator-IC, das demnach auch
als LC-Oszillator-IC gut funktionieren müsste (1 x '04 ungebuffert, + 1
x '04 normal, SOT23-6, setze ich auch ein). Mit dem L und einem
zusätzlichen C wäre der Aufwand kaum höher.
Die Diskussion driftet mehr und mehr in fröhliches Basteln ab, ich bin
dann mal raus. Noch ein paar Anmerkungen an den TO:
1. Dein Eingangspost ließ vermuten, dass du analytisch an die Aufgabe
herangehen willst, wenn auch zunächst offenbar fehlerbehaftet.
2. Beim Vergleich verschiedener messtechnischer Vorgehensweisen
(insbesondere Charge Transfer vs. Frequenzmessung), bei der
Identifikation von möglichen Störeinflüssen und bei der Eliminierung
selbiger solltest du ebenso analytisch vorgehen. Das gilt für
Schaltungs- und Bauteileparameter (Drift, Schwellwerte,
Layout/Verdrahtung) ebenso wie für externe Störgrößen
(Elektrodengestaltung, Abschirmung). Genug Input dazu solltest du haben.
Da wir alle deinen Aufbau nicht kennen, musst du letztlich selbst
abwägen (=analysieren), was geeignet ist.
3. Ich hatte oben bei meinen Tipps zum kapazitätsarmen Aufbau einen
Hubble-Fehler. Sollte heißen: schmale Leiterbahn = 0,15 mm = 6 mil.
4. Selbstentworfenes Board, mit Elektroden usw. und direkt daran kleinem
Prozessor oder was auch immer, ist wenige mm dick, kostet ein paar Euro
in China und vermeidet sämtliche Probleme durch wilden Aufbau und
Verdrahtungseinflüsse. Wenn man das geschickt gestaltet, kann man gleich
mehrere Versionen mit unterschiedlicher Elektrodengröße fertigen lassen.
Lässt sich über serielle Schnittstelle/I2C an Arduino, PC oder
Datenerfassungssystem deiner Wahl anschließen.
Dieter R. schrieb:> Die Diskussion driftet mehr und mehr in fröhliches Basteln ab, ich bin> dann mal raus.
Das ist gut, zumal deutlich zu erkennen ist, daß der TO ein Mitarbeiter
der ESA ist. Wo werden sonst schon Alufolie und Arduino verwendet?
Donald P. schrieb:> Dabei habe ich ein Stück Alufolie von 4x5cm mit einen Arduino verbunden.
Nachtrag: ich habe dann gestern Abend noch zwei Stunden meiner
Lebenszeit geopfert, um mal ein Sensorboard zu entwerfen, das mit QTouch
und minimalem Aufwand auskommt. Sensorfläche im Beispiel 2 x 2 cm²,
siehe Screenshot. Ob es überhaupt funktioniert, inwieweit es die
gestellten Anforderungen erfüllt und ob man die Sensorfläche weiter
optimieren müsste, weiß ich naturgemäß nicht. Das müsste man ggf. in
Varianten ausprobieren. Der ersehnte Arduino lässt sich per serieller
Schnittstelle koppeln. Die würde ich empfehlen, weil sie auch zum
QTouch-Debuggen verwendet werden kann.
Außenabmessungen siehe Screenshot. Dicke im Bereich des Sensors = PCB =
1,6 mm. Gesamtdicke im Bereich der Bauteile ca. 3,5 mm.
In dieser Version lässt sich das hobbymäßig löten. Man kann das auch
noch kleiner hinbekommen, muss dann aber Bauteile verwenden, die
professionelle SMD-Fertigung verlangen.