Forum: Mikrocontroller und Digitale Elektronik Problem mit kapazitiver Sensorik, Arduino und Oszilloskop


von Christan P. (ginu)


Lesenswert?

Hallo zusammen,

vielleicht könnt ihr mir helfen.

Ich habe hier einen Arduino Mega, der über I2C mit einem Adafruit 
CAP1188 Breakoutboard (kapazitive Sensorplatine) verbunden ist. An dem 
CAP1188 hängen zwei ca. 10cm lange Leitungen mit je einer Kupferfläche 
(4cm²) am Ende.
Berühre ich einer der beiden Flächen, wird das von dem CAP1188 erkannt 
und mittels Interrupt startet mein Arduino die I2C Routine, um heraus zu 
finden, welche der Flächen gedrückt wurde. Dadurch wird ein Motor 
angesteuert.

Nachdem der Interrupt sich nicht immer so verhielt, wie ich das erwartet 
hatte, konnte ich mir ein Oszi leihen und an die IRQ Leitung 
anschließen.
Nun habe ich das Problem, dass ich teilweise Fehlauslösungen meines 
kapazitiven Sensors bekomme und befürchte nun, dass das an dem 
Messaufbau oder dem Oszi(LeCroy wavejet 354a 500MHz, 2GS/s) selbst 
liegt, da diese Fehler nur mit angeschlossenem Oszi auftreten.
Die Fehlauslösungen sehen so aus, dass ich am Schreibtisch sitze und 
programmiere und plötzlich startet der Motor trotz 1m Abstand zum 
kapazitiven Sensor. Immer tritt es eigentlich auf, wenn ich von meinem 
Bürostuhl aufstehe. Ohne weitere Berührung zur Elektronik. Das 
funktioniert sogar mit 2m Abstand. Das Oszi triggert in diesem Fall 
immer und man sieht Spikes von meistens +-2V, teilweise aber noch höher. 
Trenne ich das Oszi von meiner Schalltung gibt es keine Fehlauslösungen 
mehr, aber das Oszi detektiert immer noch Spikes beim Aufstehen.

Kann mir jemand erklären ob und wenn ja was ich hier falsch mache?

Kurz zur Erklärung meiner Umgebung hier. Schreibtisch mit 
Kunststofffunier, keinerlei ESD Schutz, Labornetzteil auf 12V versorgt 
die Schaltung und hängt auf der gleichen Mehrfachsteckdose wie das Oszi.

von Jens M. (schuchkleisser)


Lesenswert?

Christan P. schrieb:
> keinerlei ESD Schutz

Und da fragst du noch?

von Christan P. (ginu)


Lesenswert?

Mir ist das grundsätzlich schon bewusst. Bei der Entwicklung sollte das 
Standard sein, aber bis auf dieses Problem bin ich fertig und die 
Bedienung möchte ich gerne auch im Alltag benutzen, wo ESD-Ausrüstung 
unpraktisch ist. Dann sollte es auch ohne ESD Schutz nicht ungewollt 
auslösen. Die Empfindlichkeit ist so eingestellt, dass man das Gehäuse 
berühren muss, um es bewusst auszulösen.

Mittlerweile ist es doch mehrmals passiert, dass die kapazitiven Taster 
beim Aufstehen auslösen, wenn kein Oszi angeschlossen ist. Ist also eher 
ein grundsätzliches Problem.

von Brain 2.0 (Gast)


Lesenswert?

Deine 10cm Leitungen und Kupferflächen arbeiten wie Antennen.
Mach die Kabel kürzer und die Kupferflächen kleiner.

von Peter D. (peda)


Lesenswert?

Touch macht man besser direkt mit dem AVR:

Beitrag "Re: Touch-Controller für Lampe"

Gegen Störungen entprellt man natürlich per SW.

von Peter D. (peda)


Lesenswert?

Christan P. schrieb:
> Die Fehlauslösungen sehen so aus, dass ich am Schreibtisch sitze und
> programmiere und plötzlich startet der Motor trotz 1m Abstand zum
> kapazitiven Sensor.

Der CAP1188 sieht ja sehr komplex aus und hat nen Haufen Register. Ich 
hab das Datenblatt nur kurz überflogen, aber er soll wohl Störungen 
filtern können. Man muß ihn entsprechend konfigurieren und auslesen, ob 
auch wirklich eine Flanke erkannt wurde.
Störungen können den AVR-Interrupt triggern, ohne daß der CAP1188 seine 
Interruptleitung aktiviert hat. Bei vielen ICs kann man das 
Statusregiester auslesen, ob er überhaupt einen Interrupt ausgelöst hat.

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.