Hallo zusammen. Ich habe einen PIC16F1827. Dieser besitzt unter anderem ein I²C-Modul und einen Internen 32MHz Oscillator. Zudem hat er 12 sogenannte CapTouch oder CapSense-Channel. Link zum Datenblatt: http://ww1.microchip.com/downloads/en/DeviceDoc/41391C.pdf Diese sind zum Schalten per kapazitiver Veränderung (Kondensator), also per "annähern" vom Finger, gedacht. Allerdings werd ich aus der Technik nicht so ganz schlau. Ich habe das so verstanden, dass man 2 Kupferflächen hat (Masse und den Eingang vom PIC) und dazwischen eine Kapazität ist. Durch Annähern des Fingers wird Diese geändert. Das Programm im PIC soll das irgendwie mit dem Timer erkennen, wie sehr die Kapazität abweicht, also wie nah der Finger an den Flächen ist, und somit kann man auch eine gewisse Schaltentfernung einstellen. Ich stelle mir allerdings noch folgende Fragen: 1. Hab ich das so überhaupt richtig verstanden? 2. Dürfen die 2 Flächen eine gewisse Größe nicht unter- bzw. überschreiten und müssen Diese in einem bestimmten Größenverhältnis sein? 3. Ist diese einstellbare Entfernung abhängig von Größe oder Feuchtigkeit vom Finger (oder von was Anderem)? 4. Hat jemand damit schon mal was gemacht und kann mir eventuell einen C-Code schicken? 5. Kann man diese 2 Flächen per Kabel steckbar machen, sodass man mit einem 2poligem Kabel eine Platine mit dem Feld verbinden kann oder geht das wegen dem Kabel nicht (oder nur geschrimte Kabel)? 6. Muss man die Messung irgendwie Kalibrieren, oder kann man sagen, dass z.B. eine Abweichung von 10 nF immer 4 mm Entfernung sind? (Der Wert 10nF ist nur ein Beispiel, ich weiß nicht, was da ein realistischer Wert ist) 7. Gibt es so ein Projekt vielleicht schon fertig zum nachbauen? (siehe unten, was es werden soll) Ich will nämlich ein kleines Modul machen. Über I²C soll man die CapSense-Eingänge auslesen und die gewünschte Schaltentfernung schreiben können.
Hallo Typ, Microchip nennt das mTouch. Es ist nur eine Fläche. Die Flächen sollten nicht zu klein sein, damit die Kapazitätsänderung nicht zu klein ist. Entwicklungsboards mit Software gibt es von Microchip. Evaluation Kit bei Reichelt http://www.reichelt.de/?ACTION=3;ARTICLE=96468;PROVID=2402 Die Dokumentation und Downloads von Microchip http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en541143 Demoboard von Microchip http://www.youtube.com/watch?v=uUxbehXSiJA Wie gut ist dein Englich? Auf YT gibt es ein paar Lehrvideos von Microchip zur Funktion und zum Design. Vorstellung Teil 1-3 http://www.youtube.com/watch?v=JVRuDY4X88M http://www.youtube.com/watch?v=vAJWtbp9kA8 http://www.youtube.com/watch?v=ABfBdn598tI Design Guidelines Teil 1+2 http://www.youtube.com/watch?v=plDH4LFhgno http://www.youtube.com/watch?v=ubROolgus98 Gruß John
typ schrieb: > Ich stelle mir allerdings noch folgende Fragen: > > 1. Hab ich das so überhaupt richtig verstanden? Ja im Grunde schon. Der Teufel steckt im Detail. Es gibt gute Videos auf Youtube. Hat ja mein Vorgänger schon erwähnt > 2. Dürfen die 2 Flächen eine gewisse Größe nicht unter- bzw. > überschreiten und müssen Diese in einem bestimmten Größenverhältnis > sein? Auch das ist richtig. Die Größe spielt eine entscheidende Rolle. Darum sollte man sich die Design Guidlines zu gemüte führen > 3. Ist diese einstellbare Entfernung abhängig von Größe oder > Feuchtigkeit vom Finger (oder von was Anderem)? Hauptsächlich ist sie von der Kapazität des Fingers abhänig. In wiefern das mit der Größe zu tun hat darüber habe ich mir noch keine Gedanken gemacht. Die Feuchtigkeit spielt mit Sicherhei eine Rolle - die Frage ist nur wie groß ist der Einfluss. Wasser auf der Oberfläche hat defintiv recht starken Einfluss auf das Verhalten > 4. Hat jemand damit schon mal was gemacht und kann mir eventuell einen > C-Code schicken? In den App Notes sind C Codes vorhanden. Man muss diese Prinzip aber verstehen. Dann kann man es auch selbst programmieren. Allerdings muss man sagen, dass das ein Fortgeschrittenenprojekt ist. Als Anfänger ist das nichts und endet nur in Frustration. Glaube bitte nicht, dass dir genau das nicht passieren wird. So denkt nämlich jeder =) xD nix für ungut > 5. Kann man diese 2 Flächen per Kabel steckbar machen, sodass man mit > einem 2poligem Kabel eine Platine mit dem Feld verbinden kann oder geht > das wegen dem Kabel nicht (oder nur geschrimte Kabel)? Es ist die Frage nach der Länge dieses Kabel. Erfahrungsgemäß sind 10cm das absolute Maximum in freien Kabeln. Wenn man da ein Handy daneben hält geht's schon mit dem Touch-Sensing durch. Gemeint ist die Strecke "Touchplatte" <> PIC und nicht die Strecke PIC <I2C> Schalteinheit. Wegen der I2C Länge solltest du die dortigen Bestimmungen lesen. > 6. Muss man die Messung irgendwie Kalibrieren, oder kann man sagen, dass > z.B. eine Abweichung von 10 nF immer 4 mm Entfernung sind? (Der Wert > 10nF ist nur ein Beispiel, ich weiß nicht, was da ein realistischer Wert > ist) Grundsätzlich muss man jede Taste einzeln kalibrieren. Meist ist nicht ganz identlisch geätzt oder Lötstellen sind minimalst schlechter. Das ist generell alles so eine etwas wackelige Sache. Kalibrieren in jedem Fall jede Taste einzeln. Gute Kalibration braucht sehr lange und ist sehr anstrengen > 7. Gibt es so ein Projekt vielleicht schon fertig zum nachbauen? (siehe > unten, was es werden soll) Interessanter nein. Es gibt von Microchip ein Demoboard. Damit empfiehlt es sich anzufangen. typ schrieb: > Ich will nämlich ein kleines Modul machen. OK > Über I²C soll man die > CapSense-Eingänge auslesen und die gewünschte Schaltentfernung schreiben > können. Einlesen klar aber was dann? Ich versteh an dem Satz nur Bahnhof ... Schaltentfernung schreiben ?!!!!
John Bauer schrieb: > Es ist nur eine Fläche. Die Flächen sollten nicht zu klein sein, damit > die Kapazitätsänderung nicht zu klein ist. Aber man braucht doch eine Masse oder nicht? Das könnte ja evtl die Große Massefläche auf der Platine sein, die CopperArea. Lehrmann Michael schrieb: > Allerdings muss > man sagen, dass das ein Fortgeschrittenenprojekt ist Dachte ich mir auch schon. Deshalb hätte ich auch nichts gegen einen fertigen Code bzw. fertiges Projekt. Lehrmann Michael schrieb: > Erfahrungsgemäß sind 10cm > das absolute Maximum in freien Kabeln. Ok, denn ich will das Modul recht nahe an den Tastern haben, jedoch sind die nicht immer gleich von der Größe bzw. der Verteilung der Tasten. Deshalb wollte ich die mit Kabeln anstecken. Lehrmann Michael schrieb: > Grundsätzlich muss man jede Taste einzeln kalibrieren. Meist ist nicht > ganz identlisch geätzt oder Lötstellen sind minimalst schlechter. Das > ist generell alles so eine etwas wackelige Sache. Kalibrieren in jedem > Fall jede Taste einzeln. Gute Kalibration braucht sehr lange und ist > sehr anstrengen Das ist schonmal doof. Wenn das wirklich so ausschlaggebend ist, dann nützt das allgemeine Modul ja auch nicht so viel oder? Lehrmann Michael schrieb: > Interessanter nein. sollte das "Interessanterweise" heißen? Ich hab sowas in der Art schonmal gesehen, nur direkt mit festen Tastern und auch nicht zum nachbauen. Lehrmann Michael schrieb: > Einlesen klar aber was dann? Ich versteh an dem Satz nur Bahnhof ... > Schaltentfernung schreiben ?!!!! Also der PIC soll als I²C-Slave fungieren. Ein Master kann über ein Befehl den aktuellen Status der Eingänge anfordern. Durch einen weiteren Befehl, so hab ich es mir gedacht, könnte man einen Wert übergeben, mit dem der PIC dann die erlaubte Toleranz einberechnen kann. Also meinetwegen, wenn der Finger einen Abstand von <5mm hat, ist eine Frequenzabfälschung von >500Hz und genau diese beispielsweise 500Hz will ich in den PIC schreiben, um festzulegen, dass er ab 5mm vor der Fläche schalten soll. Gibt es nicht evtl von Maxim oder von ST ein IC, was das schon macht? Also 1 zu 1 Parallel In, Parallel Out.
typ schrieb: > John Bauer schrieb: >> Es ist nur eine Fläche. Die Flächen sollten nicht zu klein sein, damit >> die Kapazitätsänderung nicht zu klein ist. > > Aber man braucht doch eine Masse oder nicht? Das könnte ja evtl die > Große Massefläche auf der Platine sein, die CopperArea. Es gibt verschiedene Varianten die Masse(n) zu legen. Hierzu solltest du dringends die Design Guidlines Lesen die dir gelinkt wurden =) typ schrieb: > Lehrmann Michael schrieb: >> Erfahrungsgemäß sind 10cm >> das absolute Maximum in freien Kabeln. > > Ok, denn ich will das Modul recht nahe an den Tastern haben, jedoch sind > die nicht immer gleich von der Größe bzw. der Verteilung der Tasten. > Deshalb wollte ich die mit Kabeln anstecken. Davon rate ich dir klipp und klar ab. Mach lieber eine größere Leiterplatte denn frei hängende Kabel im Raum. Sonst wirst du nicht glücklich. typ schrieb: > Lehrmann Michael schrieb: >> Grundsätzlich muss man jede Taste einzeln kalibrieren. Meist ist nicht >> ganz identlisch geätzt oder Lötstellen sind minimalst schlechter. Das >> ist generell alles so eine etwas wackelige Sache. Kalibrieren in jedem >> Fall jede Taste einzeln. Gute Kalibration braucht sehr lange und ist >> sehr anstrengen > > Das ist schonmal doof. Wenn das wirklich so ausschlaggebend ist, dann > nützt das allgemeine Modul ja auch nicht so viel oder? Ja und nein. Auch das Modul muss kalibriert werden. Je mehr Zeit man in die Kalibration steckt, desto besser wird das Ergebnis und desto zuverlässiger und genauer wird die Detektion. Klar funktioniert die grobe Kalibration auch so halbwegs aber um ein Feeling wie z.B. beim iPood Wheel zu erhalten bedarf es einiger Zeit und Erfahrung. Es gibt aber von Microchip ein Tool das das Kalibrieren grafisch vereinfacht. Such mal bei google nach "mTouch" und klick dann auf die Microchip HP. typ schrieb: > Lehrmann Michael schrieb: >> Interessanter nein. > > sollte das "Interessanterweise" heißen? Ich hab sowas in der Art > schonmal gesehen, nur direkt mit festen Tastern und auch nicht zum > nachbauen. Ja sollte interessanter Weise heißen. Also ich kenne keine Projekte mit mTouch wo die Firmenware + Layout zusammen veröffentlicht wären. Auf Youtube gibt's tausende Videos aber da ist nie Source dabei. Das Layout könnte man ja erraten. Ansonsten Demoboard von Microchip und deren Code. typ schrieb: > Also der PIC soll als I²C-Slave fungieren. Ein Master kann über ein > Befehl den aktuellen Status der Eingänge anfordern. Durch einen weiteren > Befehl, so hab ich es mir gedacht, könnte man einen Wert übergeben, mit > dem der PIC dann die erlaubte Toleranz einberechnen kann. Also > meinetwegen, wenn der Finger einen Abstand von <5mm hat, ist eine > Frequenzabfälschung von >500Hz und genau diese beispielsweise 500Hz will > ich in den PIC schreiben, um festzulegen, dass er ab 5mm vor der Fläche > schalten soll. Ja nu das ist der einfachste Teil der Übung. Das sollte kein Problem sein. Hat ja so gut wie jeder PIC I2C an Bord und ansonsten kann man das super einfach per Software nachmachen. www.sprut.de ist die beste (deutschsprachige) Adresse für diese Trivialitäten / Anfängerangelegenheiten (sorry soll nicht abwertend sein). typ schrieb: > Gibt es nicht evtl von Maxim oder von ST ein IC, was das schon macht? > Also 1 zu 1 Parallel In, Parallel Out. Meinst du nun den I2C oder die "kapazitative detection" ? Ich vermute du suchst einen IC: Daten (kapazitative Auswertung ) "verschlüsseln" <> I2C <> Kabel <> I2C <> Daten "entschlüsseln" ???? Das ist mit einem / zwei PIC einfacher als einen extra IC zu beschalten. Einen PIC brauchst du ja mindestens. typ schrieb: > Lehrmann Michael schrieb: >> Allerdings muss >> man sagen, dass das ein Fortgeschrittenenprojekt ist > > Dachte ich mir auch schon. Deshalb hätte ich auch nichts gegen einen > fertigen Code bzw. fertiges Projekt. Da hilft nur "Übung macht den Meister" Viel Erfolg und melde dich bei Fragen =) Gruß
Lehrmann Michael schrieb: > Hierzu solltest du > dringends die Design Guidlines Lesen die dir gelinkt wurden =) Ja werde ich machen. Lehrmann Michael schrieb: > Davon rate ich dir klipp und klar ab. Mach lieber eine größere > Leiterplatte denn frei hängende Kabel im Raum. Sonst wirst du nicht > glücklich. Ja das stimmt. Nur Ziel war es ja, ein kleines Modul bzw eine kleine Platine zu machen, das quasi schon fertig ist und nur noch die Pads und der I²C-Bus angeschlossen werden müssen und dann gehts. Lehrmann Michael schrieb: > www.sprut.de ist die beste > (deutschsprachige) Adresse für diese Trivialitäten / > Anfängerangelegenheiten (sorry soll nicht abwertend sein). jaja, die Seite kenn ich nur zu gut;) Gibt es denn bessere, nicht deutschsprachige Seiten oder warum hast du das betont ? Lehrmann Michael schrieb: > Meinst du nun den I2C oder die "kapazitative detection" ? Ich meine als Beispiel ein IC in DIP18, das neben + und - noch 8 CapSense Eingänge hat, so wie der PIC auch. Dann wird intern die Auswertung gemacht und dann über 8 TTL-Ausgänge der Status ausgegeben. Also Eingänge I.0 - I.7 und Ausgänge O.0 - O.7. An den Eingängen die Pad anschließen und wenn ein Finger in die nähe des Pads kommt, das an I.2 angeschlossen ist, geht O.2 auf High. Also einfach ein Konverter. Hoffe es ist so verständlicher ;) Vorteil wäre, dass man das IC dann z.b. auf ein Frontpanel machen kann und die TTL-Signale ohne Probleme per Kabel an das Hauptmodul stecken kann. Und 8 Eingänge im µC braucht man ja so oder so, nur mit dem IC ist es einfacher zu Programmieren und man kann µCs benutzen, die nicht so ein mTouch-Modul integriert haben.
Lehrmann Michael schrieb: > Es ist die Frage nach der Länge dieses Kabel. Erfahrungsgemäß sind 10cm > das absolute Maximum in freien Kabeln. Wenn man da ein Handy daneben > hält geht's schon mit dem Touch-Sensing durch. Da ist die Atmel Qtouch Methode aber deutlich unempfindlicher und toleranter. Der Trick dabei ist, daß beim Auswerten der Sensor kurzgeschlossen wird und somit Störungen nicht durchkommen. Man benötigt 2 IO-Pins und einen externen Kondensator pro Taste. Das Prinzip ist eine Ladungspumpe, der externen Kondensator (33nF) wird durch die Handkapazität (wenige pF) aufgeladen und die Zahl Aufladungen bis zum Erreichen der Schwellspannung gezählt. Bei Annäherung des Fingers wird die Zahl kleiner. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.