Ich habe einige einfache Kondensatoren gebaut, um sie als Druckkissen auf der Treppe zu Hause zu verwenden - das Ziel ist, die Treppe beim Hinaufgehen zu beleuchten - hier ist es in Aktion . Aber ich bekomme seltsame Messwerte von ihnen, aber nur, wenn sie in eine Richtung verbunden sind.
Ich habe sie gebaut, indem ich ein Stück Küchenfolie auf jede Seite eines Stücks Karton geklebt habe und dann einen abisolierten Draht auf jede Seite geklebt habe. Sie werden dann über einen Molex-KK-Stecker ("SENSOR") an eine kleine Leiterplatte angeschlossen, siehe Schema unten.
DATA_IN- und DATA_OUT-Ports sind mit anderen ähnlichen Leiterplatten verbunden. RA0 gibt Daten im seriellen Format mit 57600 Baud aus. RA2 wird mit RA1 der "Downstream"-Platine verbunden und ermöglicht es den Geräten, die Nutzung des seriellen Busses selbst aufzulisten und zu verwalten.
Die Stromversorgung erfolgt über eine Batterie und die Daten werden über einen Optokoppler über einen Raspberry Pi gelesen - also keine elektrische Verbindung außerhalb dieses Systems.
Die Firmware auf dem PIC funktioniert, indem sie zuerst RA4 für eine Millisekunde auf niedrig setzt, um den Kondensator zu entleeren. RA4 wird dann zu einem Eingang und wird an einen Komparator angeschlossen, der mit einer internen Spannungsreferenz (4/5 Vdd) vergleicht. RA5 geht jetzt hoch, und wir starten einen Timer und messen, wie lange es dauert, bis die Spannung die Referenz erreicht. Wenn der Sensor belastet wird, komprimiert sich die Karte und die Kapazität steigt – und das Aufladen dauert länger.
Die meisten von ihnen funktionieren normal und benötigen etwa 800 uS zum Aufladen auf 4/5 Vdd. Einige geben jedoch wirklich bizarre Messwerte aus, die zwischen etwa 30 uS und 4000 uS zum Aufladen schwanken - und dies ändert sich bei jedem einzelnen Messwert. Noch seltsamer, wenn ich den an den "SENSOR" -Header auf der Platine angeschlossenen Stecker nehme und die Polarität des Sensors umkehre - er beginnt normal zu funktionieren.
In gewissem Sinne habe ich also eine Lösung für das Problem - die Polarität der Sensoren umkehren - aber das ist unbefriedigend, da ich keine Ahnung habe, warum sich diese scheinbar symmetrischen Sensoren je nach Art der Befestigung so unterschiedlich verhalten sollten. Warum passiert das?
Eine Platte Ihres Kondensators nimmt Störungen auf, wahrscheinlich von der Stromverkabelung in Ihrem Haus. Der Grund, warum die Messwerte so unregelmäßig sind, liegt darin, dass es davon abhängt, in welchem Teil des Stromzyklus der Messwert aufgenommen wird. Nur einige Sensoren weisen dieses Problem auf, da entweder der Kondensator oder die Drähte zu ihm näher an der Stromverkabelung liegen als die der anderen Sensoren .
Das Umkehren der Polarität hilft, weil die Interferenz von einer Seite des Kondensators kommt. Durch das Verbinden der Platte auf dieser Seite mit Masse wird das gekoppelte Rauschen auf die andere Platte stark reduziert, da die geerdete Platte jetzt wie eine Abschirmung wirkt.
Dies ist ein großartiges Beispiel dafür, warum solch ein naiver kapazitiver Erfassungsalgorithmus in realen Fällen nicht verwendet wird. Kapazitätsänderungen sind klein und Impedanzen groß, um die Zeitkonstanten handhabbar zu machen. Das lädt nur zur Geräuschaufnahme ein. Ohne einen Algorithmus, der zumindest versucht, Rauschen zu unterdrücken, besteht wenig Hoffnung auf einen zuverlässigen Betrieb.
Sie beschreiben die alte zeitbasierte Cap-Sense-Methode, die sogar von Peripheriegeräten verkörpert wird, die in einige PICs eingebaut sind. Das macht es jedoch nicht zu einer guten Idee. Beachten Sie, dass diese Art von Cap-Sense-Peripherie nicht viel, wenn überhaupt, in neueren Teilen enthalten ist.
Hier ist die Cap-Sense-Methode, die ich meistens verwende:
Versuchen Sie immer zumindest, das Gleichtaktrauschen zu unterdrücken. Nehmen Sie zwei Messungen mit entgegengesetzter Polarität oder Platten oder so vor. Die beiden gegenüberliegenden Messwerte mit niedrigem Pegel werden zusammen als ein Messwert mit höherem Pegel genommen. Idealerweise nehmen Sie diese Messungen oft wiederholt vor. Wenn sie richtig angeordnet sind, wird das Gleichtaktrauschen nach geeigneter Tiefpassfilterung des Stroms von Messwerten mit höherem Pegel ausgelöscht.
Anstatt eine Zeitkonstante zu messen, messen Sie die Spannungsänderung aufgrund eines Sprungs. Das ist viel schneller, also ist das Zeitfenster, in dem es anfällig für Rauschen ist, kürzer. Es ermöglicht auch, zeitlich näher aufeinanderfolgende Messungen vorzunehmen, was dazu beiträgt, Gleichtaktrauschen zu reduzieren, wenn jede Messung etwas von der vorherigen umkehrt. Mehr Messungen pro Zeit ermöglichen auch eine aggressivere Tiefpassfilterung, was zu einem besseren Rauschabstand führt.
Für meine Cap-Sense-Buttons (nicht verformend, also ein etwas anderes Problem als bei Ihnen) fahre ich die gemeinsame Exit-Linie und die Linie, die ich fühlen möchte, beide hoch. Schalten Sie die Erfassungsleitung auf einen A/D-Eingang, treiben Sie die Anregungsleitung niedrig, warten Sie nur ein wenig länger als die A/D-Erfassungszeit und wandeln Sie um. Machen Sie dann dasselbe noch einmal, außer dass beide Linien niedrig beginnen und die Erregungslinie einen hohen Schritt bekommt. Indem man summiert, wie stark der erste von hoch abgefallen ist und wie stark der zweite von niedrig angestiegen ist, wird das Gleichtaktrauschen deutlich reduziert. Wenn Sie dies häufig tun und jedes Mal die Polarität wechseln, wird nach der Tiefpassfilterung insgesamt eine gute Rauschimmunität erzielt.
Bei dieser Methode messe ich die Kopplung zur Erde, wodurch die Kopplung von der Anregungsleitung verringert wird. Ein positives Signal erhält daher insgesamt weniger Resonanz. Im Fall von Cap-Sense-Tasten auf einer Leiterplatte umgebe ich jede Taste mit einer Masseflutung. Der Finger fügt Kapazität zwischen dem Knopf und der Masseflutung hinzu. Die Bodenflut wirkt auch als Abschirmung und minimiert die Geräuschaufnahme von anderswo.
Ich habe ein Cap-Sense-Demoboard, auf dem zufälliges Rauschen nach der gesamten Verarbeitung etwa ± 1 Zählwert beträgt, der nur dort sitzt. Eine solide Fingerberührung ergibt Werte von etwa 200-350. Mit anderen Worten, ich erhalte mit dieser Methode ein solides Signal-Rausch-Verhältnis von 100:1.
Weitere Untersuchungen zu meinem System haben die Antwort darauf gezeigt - 50-Hz-Kopplung von den Netzstromleitungen im Haus (wie alle anderen gesagt haben). Jeder Sensor zeigt tatsächlich eine gewisse Variation zwischen den Proben an, und das Einfügen aller Zahlen in eine Tabelle zeigt eine sinusförmige Variation mit einer Periode von ungefähr 1 Sekunde. Einige Sensoren haben viel mehr Abweichungen in einer Ausrichtung als in der anderen, wahrscheinlich aufgrund ihrer physikalischen Ausrichtung zur Störquelle.
Die Verarbeitung jedes Samples dauert etwa 5 ms - und dann wartet es 250 ms, bis das nächste Sample ausgeführt wird. Dies ergibt eine Periode von 255 ms oder 12¾ Zyklen bei 50 Hz - die alle 4 Samples (oder eine Sekunde) durch das Netzsignal verarbeitet werden.
Ich habe dieses Problem für mich selbst gelöst, indem ich den PIC dazu gebracht habe, die 50-Hz-Welligkeit zu überwachen und das Sample mit der Spitze der Welligkeit zu synchronisieren. Dies hat zu felsenfesten Sensormesswerten geführt.
Olins Lösung ist eigentlich viel besser als diese, und ich werde sie als nächstes implementieren, wenn ich auf Probleme stoße
Tom Tischler
Finbarr
Phil Underwood
Finbarr
Tony Stewart EE75
Phil Underwood
Phil Underwood
Finbarr
drtechno
Simon Richter
JRE
Uwe
drtechno
Russell McMahon