Touch ohne Verbindung mit Erdmasse gesucht

Gast #3554640
Lesenswert?

Hey, ich suche eine Lösung für einen Touchsensor, der im Batteriebetrieb 
funktionieren soll. Zuerst hatte ich es wie auf dieser Seite 
rumprobiert:

http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense#.UxCA8YW2_Yc

Das funktioniert ganz. Mit einem Problem, dass mein System mobil sein 
muss und das System nur bei Masse von der Erde funktioniert. Heißt, habe 
ich die Masse nur von der Batterie, reagieren die Sensoren überhaupt 
nicht, das ich kein Potentialunterschied habe. Berühre ich aber die 
Masse, funktiert es wunderbar.

Jetzt suche alternative Lösungen, wo man auch das System mit Batterie 
funktioniert.

Hoffe, ich habe ich habe mich verständlich ausgedruckt.


Mfg

TG
Gast #3554786
Lesenswert?

Thorsten G. schrieb:
> Ich habe hier QT1010 rumliegen. Heißt das, wenn ich diese Schaltung
> aufbaue(Link), soll es funktionieren, auch bei Batterie?

QT1010 und QT1012 funktionieren definitiv mit Batterie, haben wir in der 
Firma schon als Beispielschaltung erstellt (Werbegeschenk). Schaltung 
wie im Datenblatt angegeben, Empfindlichkeit über Widerstände 
einzustellen.
Gast #3555048
Lesenswert?

doppelschwarz schrieb:
> Thorsten G. schrieb:
>> Ich habe hier QT1010 rumliegen. Heißt das, wenn ich diese Schaltung
>> aufbaue(Link), soll es funktionieren, auch bei Batterie?
>
> QT1010 und QT1012 funktionieren definitiv mit Batterie, haben wir in der
> Firma schon als Beispielschaltung erstellt (Werbegeschenk). Schaltung
> wie im Datenblatt angegeben, Empfindlichkeit über Widerstände
> einzustellen.


Ich habe jetzt 3 QT1010 für 3 Sensoren eingebaut. Es scheint zu 
funktionieren, aber es hat einen  merkwürdiges Verhalten. Ich lese 
digital am Analogen Eingängen vom Arduino(A0, A1, A2). Die 
Berührungssensoren sind getrennt. Egal welches Sensor ich berühre, 
scheint nur ein Eingang zu reagieren.

PS: Schaltung auf Kurzschlüsse überprüft.
Gast #3555058
Lesenswert?

Ich habe erstmal die Schaltung wie im Datenblatt aufgebaut, nur ohne Cx 
und Rs. Und Pull-Down von 100k an jedem Eingang. Wie gesagt, egal 
welches Sensor ich berühre, reagiert immer A1.

Ich bau jetzt einen Stützkondensator ein.
Gast #3555328
Lesenswert?

mal auf Englisch: "Capacitive Touch Sensor" oder ähnlich. Habe da gerade 
einen Film (in Englisch) gesehen, der genau erklärt, wie das ohne Erde, 
auch mit Batterie fuktioniert. Leider habe ich den Link nicht 
gespeichert.
Gast #3558303
Lesenswert?

2 mögliche Fehlerquellen:
1. Software im Arduino: Messe die Output-Pins von Hand, sind ja diskret. 
Sollte sich dann mit Deiner Anzeige decken.
2. Hardware: Zeichne einfach kurz den Schaltplan von Hand und mach ein 
Foto. Den QT brauchst du ja nur einmal zeichnen (sollten alle gleich 
beschalten sein). Allerdings sollte Rs schon eingebaut sein, da er den 
Ladestrom begrenzt und für eine konstante Ladezeit sorgt.

Die Empfindlichkeit wird übrigens mit Cs eingestellt, nicht mit Rs, wie 
ich oben geschrieben hatte. Laut Datenblatt typischerweise 8,2 nF, aber 
natürlich abhängig vom Overlay.
Gast #3558674
Lesenswert?

Okay, hier meine Schaltung und der Aufbau(Links):

Aufbau:
http://s14.directupload.net/images/140303/hrnesawg.jpg

Schaltung:

http://s14.directupload.net/images/140303/i5aoahys.jpg

Weiteres Phänomen, dass ich festgestellt habe: Ich habe die Elektroden 
getrennt und direkt mit dem Finger die Leitung angefasst. Wenn ich die 
linke Leitung anfasse, messen A2 und A0  ein High(die äußeren IC's), 
obowhl nur A2 reagieren soll. Fasse ich direkt an A0, passiert nichts.

Mein Code:
1
#include <digitalWriteFast.h>
2
/*
3
  DigitalReadSerial
4
 Reads a digital input on pin 2, prints the result to the serial monitor 
5
 
6
 This example code is in the public domain.
7
 */
8

9

10
#define A A2
11
#define B A1
12
#define C A0
13

14
// digital pin 2 has a pushbutton attached to it. Give it a name:
15

16

17
// the setup routine runs once when you press reset:
18
void setup() {
19
  // initialize serial communication at 9600 bits per second:
20
  Serial.begin(9600);
21
  // make the pushbutton's pin an input:
22
  pinMode(A, INPUT);
23
  pinMode(B, INPUT);
24
  pinMode(C, INPUT);
25
  
26
  
27

28
}
29

30
// the loop routine runs over and over again forever:
31
void loop() {
32
  // read the input pin:
33
  int A2 = digitalRead(A);
34
  int B2 = digitalRead(B);
35
  int C2 = digitalRead(C);
36
  // print out the state of the button:
37
  
38
  Serial.print(A2);
39
  Serial.print("\t");
40
  Serial.print(B2);
41
  Serial.print("\t");
42
  Serial.println(C2);
43

44
  delay(100);        // delay in between reads for stability
45
}
Gast #3558899
Lesenswert?

Der Code sieht jetzt mal nicht falsch aus.
Die Hardware allerdings ist nicht optimal aufgebaut. Beim Touch sollte 
man möglichst den Touch auf die eine Seite und den Rest auf die andere 
Seite löten, da der Touch leicht beeinflussbar ist. Versuch einfach mal 
noch, die Rs einzulöten, sollte ja möglich sein. SNS und SNSK sind auf 
der richtigen Seite der Taste? Das sieht man auf dem Bild nicht so gut.

Falls Du es nochmal neu machen kannst: richte SNS und SNSK in Richtung 
der Tasten (90°-Drehung) und führe alle anderen Leitungen auf der 
anderen Seite weg. Den Kondensator zwischen Pin 2 und 5 zur Not einfach 
über den IC löten. Die Touchbauteile auch möglichst nah am IC und kurze 
Leitungen verwenden.
Gast #3559007
Lesenswert?

OK, ich habe die Fehler anscheinend behoben. Mein dritter QT war defekt, 
also umgetauscht. Und im Code darf man nicht das Makro "#define A A2" 
benutzen, da der Compiler wahrscheinlich beim Einlesen "pinMode(A, 
INPUT);" das A als A0 interpretiert. Rs ist auch eingebaut worden.
Gast #3559008
Lesenswert?

Wo bitte ist denn in dem Code die Touch-Routine?!? o0

Alles was ich da sehe ist ein digitales Auslesen der I/O Pins. Wenn Du 
da nen Taster ranpappst geht das so, aber für (Q)Touch braucht's dann 
doch noch was mehr...
Gast #3560429
Lesenswert?

Shuzz schrieb:
> Wo bitte ist denn in dem Code die Touch-Routine?!? o0

Der QT1010 und QT1012 sind fertige, programmierte Controller, bei denen 
man nur die Empfindlichkeit über die Kapazitäten einstellen kann, sonst 
nichts. Und sie geben gedrückt oder nicht gedrückt diskret aus, 
Entprellung findet schon im Controller statt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren