Forum: Mikrocontroller und Digitale Elektronik Effizient/Einfach viele kapazitive Sensoren auslesen


von Paul (bastelpaul)


Angehängte Dateien:

Lesenswert?

In meinem Masterarbeitsprojekt möchte ich gerne 15 kapazitive Sensoren 
mit einem Messbereich von ca. 10-100 pF  mit mindestens 100HZ, und einer 
Genauigkeit von ca. 2pF auslesen.
Die Sensoren liegen in meiner Anwendung auf der Hand und der Arduino 
(Mega) zum Auswerten auf der Schulter.
Und aktuell messe ich die Kapazitäten direkt über die Analogen Pins des 
Arduinos nach der Idee Von John Nethercott (bei interesse siehe Bild, 
bzw. Link: 
https://wordpress.codewrite.co.uk/pic/2014/01/21/cap-meter-with-arduino-uno/), 
möchte aber die vielen langen Kabel, die ich dafür auf dem auf dem Arm 
habe, eliminieren.

Deshalb bin auf einer Suche nach einer Lösung, die die Kapazitätswerte 
schon auf einem möglichst kleinen Board auf dem Handrücken misst und 
digital (8bit reichen denke ich) mit möglichst wenigen Kabeln bis zum 
Arduino auf der Schulter transportiert.


Habt ihr Tipps wie das Board auf dem Handrücken aussehen könnte?
Ideen von mir wären:

  1) Verwenden eines Touch Sensors (z.B. Qtouch, AD7142,…)
-> die messen ja auch Kapazitäten, aber gibt es auch Chips aus denen ich 
die realen absoluten Werte lesen kann? Oder sind die realen Werte nur 
sehr kompliziert oder gar nicht von ihrem Touch-use-case für solche 
Zweckentfremdungen geeignet?
  2) Verwendung eines Analog Digital Converters und Messen über 
Spannungswandler mit referenz Kondensator.
  -> habt ihr 16 Channel ADC Empfehlungen die einfach zu programmieren 
und idealerweise auch einfach selbst anzulöten sind?
  3) Verwendung eines kleinen μC (wie Teensy 3.x) mit genügend 
Analogpins bzw. in Kombination mit Multiplexer
  -> fällt euch da was ein auf das man nicht 6 Monate warten muss und 
was klein und einfach im handling ist?

Als Neuling in der Welt der Bauteilauswahl gehe ich in der Masse an 
Produkten und Datenblättern unter und würde mich sehr über praktische 
Erfahrungswerte freuen!

Beste Grüße
Paul

von olaf (Gast)


Lesenswert?

Verabschiede dich von der Konzept-Idee "Arduino". Das ist Bastlerlevel.

Mache dir klar das du derzeit einen Microcontroller verwendest der 
anscheinend dein Problem bereits loest, auch wenn er lange Kabel hat.

Also verwende doch einfach einen Mikrocontroller direkt vor Ort.
Deine Ansprueche von 8Bit sind ueberschaubar. Viele Mikrocontroller
haben AD-Wandler die das koennen und sie haben auch Eingangsmultiplexer.

Danach kannst du die Daten dann ueber irgendeinen digitalen Datenbus
mit 2-3Leitungen weitergeben.

Olaf

von Wolfgang (Gast)


Lesenswert?

Paul schrieb:
> Die Sensoren liegen in meiner Anwendung auf der Hand und der Arduino
> (Mega) zum Auswerten auf der Schulter.
> Und aktuell messe ich die Kapazitäten direkt über die Analogen Pins des
> Arduinos

Dann wirst du zu einem nicht unwesentlichen Teil die Kabelkapazitäten 
messen. Für die Reprodzierbarkeit kann es dann, je nach Kabelart, u.U. 
sehr auf die Stabilität der "Verlegung" ankommen.

von Paul (bastelpaul)


Lesenswert?

Hi Olaf danke für die schnelle Antwort!

Hast du einen Vorschlag für ein Board welches auf einfach auf einen 
Handrücken passt, ready-to-use ist und den Anforderungen gerecht wird? 
Bisher habe ich da leider nichts passendes gefunden.. Bzw. falls ich eh 
mein eigene Platine bauen muss, ist es dann nicht einfacher, billiger, 
kleiner einen 16Chanel ADC zu verwenden, als einen voll ausgestatteten 
Mikrokontroller mit 15 Analogen Eingängen.


Und anbei: Ob Arduino zum späteren Zeitpunkt getauscht wird ist offen, 
feststeht allerdings, dass ich eh einen großen Microcontroller für 
verschiedene andere Sensorik, Aktorik und vor allem für die zentrale 
Kommunikation mit externen Geräten auf der Schulter brauche.

von Paul (bastelpaul)


Lesenswert?

> Dann wirst du zu einem nicht unwesentlichen Teil die Kabelkapazitäten
> messen.
... einer der Punkte warum die analogen 1,5m langen Kabel da dringend 
weg sollen.

von KarlL. (Gast)


Lesenswert?


von Wolfgang (Gast)


Lesenswert?

Paul schrieb:
> Bzw. falls ich eh mein eigene Platine bauen muss, ist es dann nicht
> einfacher, billiger, kleiner einen 16Chanel ADC zu verwenden, als einen
> voll ausgestatteten Mikrokontroller mit 15 Analogen Eingängen.

Zeichne dir für beide Varianten den Schaltungsaufwand hin und 
vergleiche.
Insbesondere wenn es um Steuerung des Lade-/Entladevorgangs und eine 
Datenvorverarbeitung geht, bist du mit einem µC flexibler.
Wie würdest du die Steuerung umsetzen, wenn du nur einen ADC am Ort des 
Geschehens zur Verfügung hast? Der ADC muss auch gesteuert werden.

von Εrnst B. (ernst)


Lesenswert?

Paul schrieb:
> In meinem Masterarbeitsprojekt möchte ich gerne 15 kapazitive Sensoren
> mit einem Messbereich von ca. 10-100 pF  mit mindestens 100HZ, und einer
> Genauigkeit von ca. 2pF auslesen.

Du solltest dir dann unbedingt ansehen, wie das in kapazitiven 
Tasten/Touchscreens gemacht wird.

Uralt-Thread dazu:
Beitrag "qtouch - sekt oder selters"

Soll nicht heißen, dass du dein Messkonzept umstellen sollst.
Aber du solltest zumindest andere Verfahren mit erwähnen/vergleichen. 
Auch Messverfahren über die Zeit (Aufladen/Entladen über bekannten 
Widerstand) solltest du mit betrachten.
In Hinblick auf erreichbare Auflösung & Genauigkeit sowie 
Störempfindlichkeit.

Dann kannst du begründen, warum du dich genau für diese Messmethode 
entschieden hast.

Beitrag #7237758 wurde vom Autor gelöscht.
von Paul (bastelpaul)


Lesenswert?

Wolfgang schrieb

> Wie würdest du die Steuerung umsetzen, wenn du nur einen ADC am Ort des
> Geschehens zur Verfügung hast? Der ADC muss auch gesteuert werden.

Die Kondensatoren wollte ich dauerhaft geladen lassen also nicht viel 
steuern. Und beim ADC hatte ich gehofft dass es Modi gibt die 
automatisch über die Eingänge Multipexen und die Signale nur ausgeben. 
Bzw. dass ich bei so wenig Kommunikation wie möglich die gleichen 
Anschlüsse zum kommunizieren mit dem ADC und zum Auslesen der gemessenen 
Spannungen verwenden kann.

von Wolfgang (Gast)


Lesenswert?

Paul schrieb:
> Die Kondensatoren wollte ich dauerhaft geladen lassen also nicht viel
> steuern.

Das würde voraussetzen, dass in deinem Multiplexer beim Umschalten 
nichts umgeladen werde muss, dass der S&H keine Ladung aufnimmt und dass 
es keine Leckstöme gibt.
Kurz: Das wird nicht funktionieren.

von Paul (bastelpaul)


Lesenswert?

Εrnst B. schrieb
> Dann kannst du begründen, warum du dich genau für diese Messmethode
> entschieden hast.
... den Abschnitt hatte ich aus Übersichtsgründen vor veröffentlichung 
der Frage rausgenommen.
Die Messmethoden sind meiner Meinung nach leicht zusammenzufassen.

1) Aufladen/Entladen und Zeit stoppen:
-> will ich auf 2pF genau messen würde ich schätzen dass ich bei dem 
Zeitstoppen genau hinkomme wenn ich ca. 500μs/pF ansetze. Dann ergibt 
sich der Widerstand zu 500MOhm das erscheint mir recht groß um wirklich 
genau sein zu können oder liege ich da falsch?

2) Qtouch Prinzip:
-> kapazitiven Sensor mit gut kleinerem Kondensator nach und nach 
aufladen und anzahl der Ladungen zählen die es braucht bis der Sensor 
"geladen ist" -> Coole idee, selbst, glaube ich aber komplizierter 
nachzubauen und aus fertigen Touch Sensoren ist es (so glaube ich, 
verbessert mich sehr gerne) kompliziert die Werte für die Kapazität der 
einzelnen Kondensatoren auszulesen.

von c-hater (Gast)


Lesenswert?

Paul schrieb:

> falls ich eh
> mein eigene Platine bauen muss, ist es dann nicht einfacher, billiger,
> kleiner einen 16Chanel ADC zu verwenden, als einen voll ausgestatteten
> Mikrokontroller mit 15 Analogen Eingängen.

Ich würde einen µC verwenden, bei dem selbst die kapazitiven Sensoren 
bereits eingebaut sind. Extern kommen da nur noch die Kapazitäten dran, 
also leitfähige Flächen.

Z.B.: AVRxDyz. Der unterstützt von Hause aus die Verwendung nahezu jedes 
GPIOs als kapazitiven Sensoreingang.
Also maximal irgendwas knapp über 50, und darüber hinaus 
Matrixkonfigurationen dieser Eingänge, was in deiner Anwendung aber eher 
nicht relavant ist.

Sprich: ein Controller am Handgelenk und alles ist gut. Der 
"Schultercontroller" und die Verkabelung dorthin entfällt.

Und ja: das geht nicht mit Arduino-Zeugs. Das sollte für einen 
Hochschulstudenten einer technischen Fachrichtung aber keinesfalls ein 
Hindernis sein.

> Und anbei: Ob Arduino zum späteren Zeitpunkt getauscht wird ist offen,
> feststeht allerdings, dass ich eh einen großen Microcontroller für
> verschiedene andere Sensorik, Aktorik und vor allem für die zentrale
> Kommunikation mit externen Geräten auf der Schulter brauche.

Das sagst du. Ich bezweifele allerdings, dass du jemals eine 
detaillierte Analyse des tatsächlich Nötigen vorgenommen hast...

Aber sei's drum: der AVR am Handgelenk könnte mittels eines 
Dreidraht-Interface (single direction SPI) mit 12Mbit/s Daten an (was 
auch immer) liefern.

von Paul (bastelpaul)


Lesenswert?

Wolfgang schrieb:
> Kurz: Das wird nicht funktionieren.
Schade, aber danke für die Einschätzung! Genau dafür habe ich gefragt!

c-hater schrieb:
> Der unterstützt von Hause aus die Verwendung nahezu jedes
> GPIOs als kapazitiven Sensoreingang.

Cool, das klingt auf jeden Fall sehr interessant!
Nach einigem stöbern in den Datenblättern kann ich allerdings immer noch 
nicht ganz einschätzen ob das die perfekte Lösung ist.

Bedenken 1)
der "Peripheral Touch Controller" der bei AVR dafür verwendet wird 
scheint eine maximale Kapazität von 64 pF messen zu können was ein 
bisschen zu wenig wäre. Siehe Seite 583 
https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/AVR128DA28-32-48-64-Data-Sheet-40002183C.pdf

Bedenken 2)
Habe ich Angst, dass ich bei meiner Zweckentfremdung - das nicht für 
Touch zu verwenden - doch an meine Grenzen komme. Über absolute 
Kapazitätswerte wird sehr wenig gesprochen weil die für touch (Finger 
da? -> ja/Nein) keine Rolle zu spielen scheinen. So finde ich zum 
Beispiel keine Daten zur Genauigkeit des Ganzen.

von Udo S. (urschmitt)


Lesenswert?

Paul schrieb:
> -> will ich auf 2pF genau messen würde ich schätzen dass ich bei dem
> Zeitstoppen genau hinkomme wenn ich ca. 500μs/pF ansetze.

Warum, hast du einen µC / Zähler der mit Relais aufgebaut ist?
Jeder µC oder Zählbaustein kann locker auf 1 µs und mehr zählen

von Paul (bastelpaul)


Lesenswert?

Udo S. schrieb:
> Jeder µC oder Zählbaustein kann locker auf 1 µs und mehr zählen
Bei Elektronikfragen bin ich manchmal doch sehr blank und übernehme 
Dinge die ich irgendwo hier in den Foren lese, wenn das der Fall ist ist 
das natürlich auch eine Option und würde mir das Auseinandersetzen mit 
Touchsensoren ersparen.

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
Noch kein Account? Hier anmelden.