Carsten Meyer Eigene Touch-Sensoren

8
Touch-Sensoren Elektronik Im Luxus-Bad wird es hell, wenn man eine bestimmte Fliese berührt, und der Küchenherd springt an, wenn man mit dem Finger über das Ceranfeld wischt: Touch-Sensoren sind heute allgegenwärtig. Mit erstaunlich geringem Aufwand kann man den Smartphone-Komfort auch in eigene Geräte integrieren. 124 | c’t Hacks 2/2013 Zutaten ˇCMOS-Bausteine 4011 und 4013 ˇdiv. Widerstände ˇNetzteil 5 V ˇAVR-Controller ATmega8 oder 88 ˇISP-Programmiergerät für AVR ˇdiv. Kondensatoren Touch-Sensoren Eigene Carsten Meyer © Copyright by Heise Zeitschriften Verlag Persönliches PDF für Rebecca Husemann aus 30625 Hannover

Transcript of Carsten Meyer Eigene Touch-Sensoren

Page 1: Carsten Meyer Eigene Touch-Sensoren

Touch-SensorenElektronik

Im Luxus-Bad wird es hell, wenn man eine bestimmte Fliese berührt, und derKüchenherd springt an, wenn man mit dem Finger über das Ceranfeld wischt:

Touch-Sensoren sind heute allgegenwärtig. Mit erstaunlich geringem Aufwandkann man den Smartphone-Komfort auch in eigene Geräte integrieren.

124 | c’t Hacks 2/2013

Zutaten

–ˇCMOS-Bausteine 4011 und 4013

–ˇdiv. Widerstände

–ˇNetzteil 5 V

–ˇAVR-Controller ATmega8 oder 88

–ˇISP-Programmiergerät für AVR

–ˇdiv. Kondensatoren

Touch-SensorenEigene

Carsten Meyer

ch.0213.124-131 06.05.13 13:57 Seite 124

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 2: Carsten Meyer Eigene Touch-Sensoren

In irgendeinem „Tatort“-Krimi der späten Siebzi-ger bleibt der Ganove in einem Fahrstuhl ste-

cken und wird geschnappt – weil er versuchte, des-sen Sensortasten mit Handschuhen zu bedienen.Mit den heutigen Touch-Sensoren wäre er womög-lich davongekommen: Die reagieren nämlich nichtauf den Hautwiderstand, sondern auf kapazitiveÄnderungen.

Doch der Reihe nach: Ein Ausflug in das Holozänder berührungsempfindlichen Tasten taugt bes-tens als Lehrstück für erste elektronische Gehver-suche, denn manchmal reicht auch schon die ein-fache resistive Sensortaste. „Resistiv“ bedeutet,dass sie mit einem Widerstand arbeitet – nämlichdem des menschlichen Körpers, genauer gesagtdem Haut-Übergangswiderstand. Ein kleines Expe-riment demonstriert dies anschaulich: Nehmen Sieein Multimeter zur Hand und stellen es auf denMeg ohm-Bereich. Wenn Sie nun die Messspitzengleichzeitig mit den Fingern berühren, wird dasGerät einen Widerstand in der Größenordnung100 kOhm bis 5 MOhm anzeigen – je nach Feuch-tigkeitsgehalt der Haut. Gut gepflegte Damenhän-de ergeben mithin deutlich geringere Messwerteals derbe Maurerpranken.

Handauflegen

Einen Finger, der zwei Sensorkontakte überbrückt,kann man mit einer äußerst simplen Schaltung de-tektieren, die eigentlich nur aus einem hochohmi-gen Widerstand besteht (siehe Bild rechts oben).Finger und besagter Widerstand bilden in dieserSchaltung einen Spannungsteiler: Während der Widerstand versucht, als so genannter „Pullup“ denInverter-Eingang in Richtung 5ˇV (also einer logi-schen „1“) zu ziehen, hindert ihn der Hautwider-stand des Fingers bei Berührung daran. Sobald we-niger als 2,5ˇV übrig sind, schaltet der nachgeschal-tete CMOS-Inverter durch, und die LED leuchtet.Wir hätten Pull up-Widerstand und Sensorkontakteauch vertauschen können, allerdings vermeidetman es in der Regel, von außen zugängliche Teilemit der Betriebsspannung zu verbinden.

Statt des Inverters taugt natürlich jeder belie bigeCMOS-Logikeingang, so auch die Portleitungeneines beliebigen Mikrocontrollers – sofern man des-sen interne Pullup-Widerstände abschalten kann,die sind nämlich zu niederohmig (das kann heutejeder). Spätestens bei einer ESD-Prüfung bekommtman mit dieser Art Schaltungen aber Probleme: Werseine statische Aufladung vom Teppichboden aneinem CMOS-Eingang statt an einer Türklinke ab-zappt, schickt das IC in den sicheren Tod. In derRegel sieht man daher einen ESD-Schutzwiderstandam Eingang vor, der bei sehr hohen Ladungen aberauch nur begrenzt wirksam ist – wenn ihn der vomFinger ausgehende Funke (aua!) einfach über-springt. Zusätzlich ist ein kleiner Kondensator (ei -nige nF) vom Eingang nach Masse hilfreich, der steil-flankige Störungen ableitet, aber zu einem verzö-gerten Ansprechen der Schaltung führt.

Wesentlich niederohmiger und damit störun-empfindlicher arbeitet eine Schaltung, die Don

Lancaster 1977 in seinem (auch heute noch emp-fehlenswerten) „CMOS Cookbook“ publizierte; wirverwenden sie übrigens in abgewandelter Formauch in unserer MIDI-Sensor-Tastatur auf Seite 94.Sie arbeitet bereits kapazitiv, was man ihr nicht di-rekt ansieht: Ausgewertet wird die Verzögerungeiner Impulsflanke durch ein RC-Glied, wobei das„C“ in diesem Fall durch die Kapazität des Fingersgebildet wird.

Widerstand ist zwecklos

In Lancasters Originalschaltung (siehe Bild oben)sorgte ein CMOS-Inverter (etwa in einem CD4069oder einem 74HC14) dafür, dass ein D-Flipflop vomTyp 4013 an seinem Dateneingang mit jeder stei-genden Taktflanke ein „Low“ sieht, da das nieder-frequente Taktsignal ja durch den Inverter etwasverzögert (ca. 55 ns) eintrifft. Am Ausgang erscheintdaher stets ein „Low“-Signal – so lange, bis jemandden eingezeichneten Sensor-Kontakt berührt. Dannbilden R und die Kapazität des Fingers ein RC-Glied,durch das nun auch das Signal am Dateneingangverzögert wird. Ist diese Verzögerung größer als diedes Inverters, sieht das Flipflop plötzlich bei jedersteigenden Taktflanke ein „High“-Signal am Daten-

c’t Hacks 2/2013 | 125

KurzinfoZeitaufwand:0,5–3 Stunden

Kosten:0,5–10 Euro

Programmieren:Arduino SDK oderAVRco Pascal

Löten:leichte Lötarbei-ten, Bestückung

Elektronik:Grundkenntnisse

Schwierigkeitsgrad

leicht schwer

Simple resistive Sensorschaltung. Die einfacheAuslegung bringt als Nachteil eine hohe Stör -empfindlichkeit und geringe ESD-Festigkeit mit sich. Gegen Feuchtigkeit ist sie auch nicht immun.

Zwei Sensortasten und ein simples Flipflop werdenhier benutzt, um eine gespeicherte „On/Off“-Funktionzu realisieren.

ch.0213.124-131 06.05.13 13:57 Seite 125

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 3: Carsten Meyer Eigene Touch-Sensoren

eingang und schaltet seinen Q-Ausgang folglichebenfalls auf „high“.

Eine wirksame Entprellung findet dadurch statt,dass der Ausgang nur mit jedem Taktimpuls aktua-lisiert wird. Setzt man die Impulsfolgefrequenz alsorelativ niedrig an, kann auch ein zitternder Fingerkeine Fehlauslösungen verursachen. Empfehlens-wert sind Werte zwischen 20 und 200 Hz (im Bildgeneriert durch einen Schmitt-Trigger des 74HC14).Bei zu niedriger Frequenz besteht die Gefahr, dassdie Schaltung sehr kurze Berührungen „übersieht“.Bei unserer MIDI-Schaltung auf Seite 94 liegt dieWiederholrate bei etwa 100 Hz, die „Latenz“ beimBerühren einer Taste folglich bei 10 ms. Das störtselbst bei schnellen Soli nicht.

Auch bei mehreren Sensor-Tasten (statt desDual-Flipflops 4013 nimmt man dann beispiels -weise das Sechsfach-FF CD40174 oder 74LS174)benötigt man den Oszillator nur einmal; so lassensich die Kosten pro Taste auf unter 10 Cent drü-cken. Selbst den Verzögerungs-Inverter kann mansich sparen, indem man stattdessen ein RC-Gliedeinsetzt (realisiert bei unserer MIDI-Sensortastatur).Vorteil hierbei: Durch die leicht einstellbare Ver -zögerungszeit lässt sich die Empfindlichkeit derSchaltung in einem weiten Bereich einstellen. ImGrenzbereich liegt sie so hoch, dass ein auf 1  cmangenäherter Finger sicher detektiert wird. Die er-zielbare Empfindlichkeit ist vornehmlich von derGröße des Sensors abhängig.

Unsichtbare Sensoren

Das Tolle an dieser kapazitiv arbeitenden Schal-tung ist, dass keine direkte Berührung des Sensors

mehr nötig ist. Sie funktioniert auch durch Papier,dünne Plastikscheiben, Glas und Platinenmaterialhindurch, solange der Sensor mindestens Dau-mennagelgröße hat. Die zulässige Materialdicke iststark von der jeweiligen Dielektrizitätskonstante(Permittivität) abhängig, in jedem Fall sollte sienicht mehr als ein Viertel der Sensor-Diagonale be-tragen. Isolierende Sensorflächen sind natürlichunempfindlich gegen statische Aufladungen undlassen sich sehr unauffällig unterbringen, etwa alsgeheimer Türöffner oder versteckter Lichtschalter.

Auch die Lancaster-Schaltung ist, wenn man siezu kritisch einstellt, empfänglich für Störungen undExemplarstreuungen; im Zweifel muss man immereine Abgleichmöglichkeit vorsehen. Andere (äl tere) Ansätze kapazitiver Näherungssensoren arbeiten beispielsweise mit Hochfrequenz, diedurch die Hand- oder Fingerkapazität in Amplitudeoder Frequenz beeinflusst wird. Diese Art der indi-rekten Kapazitätsmessung funktioniert zuverlässig,bedingt aber einen erheblichen schaltungstechni-schen Aufwand.

Beide Nachteile vermeidet ein elegantes Prinzip,das so einfach wie genial ist (und wahrscheinlichdeshalb erst 2007 erfunden und patentiert wurde):Das so genannte Ladungstransfer-Verfahren (an-gelsächsisch Charge Transfer). Der Hersteller Quan-tum Research hat es erfunden, später erwarbAtmel das Patent. Die QTouch-Chips des Herstel-lers arbeiten damit, zu finden ist es inzwischenaber auch bei anderen Halbleiterfirmen wie Micro-chip oder Semtech.

Dabei wird der Sensor (beziehungsweise seineparasitäre Kapazität) periodisch auf die Betriebs-spannung aufgeladen. Die winzige Ladung wird als-

Die kapazitive Flipflop-Schaltunglässt sich sehr einfach mitweiteren Tasten aufrüsten. Der100-Hz-Taktgenerator wird nureinmal benötigt. Hier haben wir die Ansprechempfindlichkeit miteinem Trimmpoti einstellbargemacht.

126 | c’t Hacks 2/2013

Touch-SensorenElektronik

IsoliertKapazitive Sensoren arbei-ten auch durch nichtleiten-de Materialien hindurch. Diemaximale Schichtdicke istabhängig von deren Dielek-trizitätskonstante: Wenn derSensor in Luft bei 1 mm Ab-stand zuverlässig reagiert,darf die Dicke einer Glas-scheibe (Epsilon = 7) bis zu7 mm betragen. Platinenma-terial hat ein Epsilon von 4bis 5, die meisten Kunststof-fe liegen zwischen 2 und 4.

Einfacher kapazitiver Touch-Sensor: Ein Flipflop wertet die Verzögerung einerniederfrequenten Taktflanke aus. Kommendie Daten wegen der Fingerkapazität zuspät, schaltet das Flipflop auf „high“. DerSensor muss nicht unbedingt direkt berührtwerden, eine dünne Isolation ist zulässig.

ch.0213.124-131 06.05.13 13:57 Seite 126

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 4: Carsten Meyer Eigene Touch-Sensoren

dann auf einen relativ großen Sampling-Konden -sator geschaltet, nach Coulomb verteilt sich diewinzige Ladung gleichmäßig auf beide Konden -satoren. Die Spannung am Sampling-Kondensatorlegt dabei um einen sehr kleinen Betrag zu, wäh-rend die Spannung an der vergleichsweise kleinenSensor-Kapazität stark zusammenbricht. Den Vor-gang wiederholt man so lange, bis die Spannungam Sampling-Kondensator eine bestimmte Schwel-le übersteigt. Die Anzahl der Schleifendurchläufe istnun ein direktes Maß für die Sensor-Kapazität, diees ja möglichst genau zu messen galt.

Beispiel: Wenn die Sensor-Kapazität etwa 20 pFund die Sampling-Kapazität 20 nF beträgt, hat dieSpannung am Sampling-Kondensator nach rund500 Schleifendurchläufen die halbe Betriebsspan-nung erreicht – in der Regel die Schaltschwelle beiCMOS-Eingängen. Mit diskreter Schaltungstechnikwäre die Schaltung recht aufwendig: ElektronischeSchalter, Ablaufsteuerung und Zähler würdenschnell eine halbe Eurokarte füllen. Ein Mikrocon-troller kann diese Aufgabe aber quasi nebenbei er-ledigen. Prinzipbedingt ist das Verfahren nicht zeit-kritisch: Lediglich die Anzahl, aber nicht die Ge-schwindigkeit der Umladevorgänge ist entschei-dend. Die Schleifendurchläufe lassen sich zumBeispiel bequem im Interrupt erledigen, und derVergleich mit einem Schwellwert ist nichts anderesals der Vergleich zweier Ganzzahlen.

Geiz ist geil

Atmel spart sich bei seinen QTouch-Chips aufwen-dige A/D-Wandler und Komparatoren, die relativkonstante Schaltschwelle eines normalen CMOS-Eingangs reicht als Kriterium völlig aus. Wenn mandann noch die internen Port-Richtungsschalter ge-schickt nutzt, kann man mit nur zwei Portleitungenund einem einzigen 2-Cent-Kondensator(!) einensehr zuverlässigen und störunempfindlichen kapa-zitiven Näherungssensor realisieren. Selbstver-ständlich funktioniert das Verfahren mit jedemMikrocontroller, dessen Portleitungen man perSoftware in der Datenrichtung umschalten kann;außerdem muss ein interner Pullup-Widerstand ab-schaltbar (oder kann schlicht nicht vorhanden)sein. AVRs und PICs können das auf jeden Fall, nurbei sehr alten Typen geht das manchmal nicht.Unser kleines Pascal-Beispielprogramm rechtszeigt das Prinzip.

Die in AVRco-Pascal geschriebene Routine istsehr einfach auf andere Hochsprachen oder gar Assembler zu übersetzen – man achte aber auf dieexakte Reihenfolge der Port-Befehle. Vom gewon-nenen absoluten Zählwert zieht man zur Auswer-tung praktischerweise eine Konstante ab, die manbeim Start auch automatisch mit einem Vorab-Durchlauf ermitteln kann. Das vollständige Pro-gramm für einen ATmega8, das wir wie üblich in-klusive HEX-File in unserem Git-Repositorygithub.com/heise abgelegt haben, ist noch umeine Ausgabefunktion erweitert, die den Messwertalle paar Zehntelsekunden mit 9600 Bd auf der seriellen Schnittstelle des Bausteins auswirft.

Listing Sensor-Routine//Abfrage eines Sensors mit Csamp zwischen Port D6 und D7function getSensor_D7: word;var my_loopcount: word;// Charge-Transfer-Sensor mit zwei I/Os Port D6 und D7begin// S1 und S3 on, Kondensator wird entladenPort_D7:= low; // Sampling-PinPort_D6:= low; // Drive-PinDDR_D7:= high; // Sampling-Pin Datenrichtung: AusgangDDR_D6:= high; // Drive-Pin Datenrichtung: Ausgangudelay(1); // μs-Pause, Sampling-Kondensator entladenDDR_D7:= low; // Datenrichtung: Eingang, beide offenDDR_D6:= low;// zunächst beide Schalter offenfor my_loopcount:= 0 to 1023 do// S2 on, Drive-Port High;Port_D6:= high;DDR_D6:= high;nop;nop;// wieder kurz alle offen,// um Überschneidungen zu vermeiden:DDR_D6:= low;Port_D6:= low;nop;nop;// S1 on, Sample-Port low:DDR_D7:= high;nop;nop;if Pin_D7 then // Sample-Input auf High-Schwelle?break; // Schleife abbrechen!endif;

endfor;return(my_loopcount); // Ergebnisend;

Ladungstransfer-Prinzip: Der aus Sensor und Fingerbestehende Kondensator wird in der einen Stellung des Umschalters mit der Betriebsspannung aufgeladen,in der anderen Stellung ergießt sich seine kleineLadung in den viel größeren Sampling-KondensatorCsamp. Je größer die Sensor-Kapazität (und damit dieNähe des Fingers), desto weniger Umschaltvorgängewerden benötigt, bis der Sampling-Kondensator eine bestimmte Spannung erreicht hat. S1 dient zum Entladen von Csamp nach erfolgter Messung.

c’t Hacks 2/2013 | 127

ch.0213.124-131 06.05.13 13:57 Seite 127

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 5: Carsten Meyer Eigene Touch-Sensoren

Erweiterungen

Je größer der Sampling-Kondensator gewählt wird,desto mehr Schleifendurchläufe benötigt der Charge Transfer; prinzipiell wird die Auflösung undEmpfindlichkeit größer, dafür dauert die Messunglänger. Praktikable Werte liegen zwischen 10 und47 nF; die Leerschleife sollte „unberührt“ auf 500bis 1000 Durchläufe kommen. In unserem Ver-suchsaufbau erreichten wir mit einem 22-nF-Kon-densator und einem zwei Quadratzentimeter gro-ßen Sensor rund 600 Durchläufe, bei Berührungder Sensorfläche durch eine FR4-Platine hindurchging der Zählerstand auf 350 bis 400 zurück.

Für möglichst wenig „springende“ Messwertekann man die Messwerte softwaremäßig tiefpass-filtern oder integrieren. Durch Differenzbildungmit dem ungefilterten Signal erhält man ein Sig-nal, dass Änderungen der Hand- oder Finger-Ent-fernung signalisiert. Und schließlich kann man einsehr niederfrequentes Tiefpassfilter implementie-ren, das den Sensor-Basiswert (d. h. ohne Berüh-rung) nachführt; so lassen sich störende Effektedurch Verschmutzung und Betauung eliminieren.

Virtuelle Schieberegler

Mit zwei keilförmig ineinander verschränktenSensoren, einer geeigneten Interpolation undetwas höherem Firmware-Aufwand sind auch „vir-tuelle“ Schiebe- oder Drehregler kein Problem.Hier muss man gegebenenfalls mit den Messwert-Skalierungen und -Offsets etwas experimentieren.Auch hierfür haben wir eine Beispiel-Firmware online gestellt, die noch bequem in die kosten -lose Demo-Version des Compilers (www.e-lab.de)„passt“. Sie enthält auch die angesprochenen Tief-passfilter.

Den Schaltplan haben wir gegenüber der obenbesprochenen Version etwas erweitert: Die vierSampling-Kondensatoren werden nun durch exter-ne Schalttransistoren gemeinsam entladen, wasdrei wertvolle Portleitungen sparte – die sind beimATmega8 ja nicht im Überfluss vorhanden. Außer-dem haben wir ein Schieberegister hinzugefügt,das eine LED-Kette ansteuert. Die etwas eigene Rei-henfolge ergab sich übrigens durch den Zwang zueinem möglichst einfachen Platinenlayout, das wirmit der c’t-Hacks-Portalfräse (siehe letzte Ausgabe)fräsen wollten. Eine Tabelle in der Firmware über-setzt den per Touch-Slider ermittelten „Pegel“-Wert in das passende Byte zur Ausgabe durch das74HC164-Schieberegister.

128 | c’t Hacks 2/2013

Touch-SensorenElektronik

Das Oszillogramm zeigt die miteinem hochohmigen Tastkopfausgekoppelte Spannung amSensor-Pad. Gut sichtbar die mitjedem Umlade-Impuls kleinerwerdende Impulshöhe – das ist die Betriebsspannung minusangesammelte Spannung amSampling-Kondensator.

Die drei zum Umladen der beiden amQtouch-Prinzip beteiligten Kondensatorenbenötigten Schalter finden sich in jedemMikrocontroller – in Form der Port- undDatenrichtungs-Bits. Durch dieseNeuanordnung spart man sich einenexternen elektronischen Umschalter.

ch.0213.124-131 06.05.13 13:57 Seite 128

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 6: Carsten Meyer Eigene Touch-Sensoren

MerkwürdigkeitenDa wir bereits mit LEDs in unmittelbarer Nähe zuden Sensor-Pads experimentiert haben, hier nochein paar Hinweise: Generell ist die Schaltung durchden recht großen Sampling-Kondensator recht un-empfindlich gegenüber Störsignalen auf Leiter-bahnen in der Nähe. Allerdings ändert sich die in-nere Kapazität einer LED (generell: jedes PN-Über-gangs in Halbleitern) stark, sobald Strom durch siefließt. Eine solche Kapazitätsänderung bemerkt dieSchaltung in jedem Fall. Anzeige-LEDs nahe denSensor-Pads sollte man also mit einem Kondensa-tor (einige nF reichen) überbrücken, damit die un-erwünschte prozentuale Kapazitätsschwankungmöglichst gering ausfällt.

Der Sensor ist übrigens umso empfindlicher, jegeringer seine Kapazität gegenüber der restlichenSchaltung ausfällt; mit unserer isolationsgefrästenMusterplatine (Bild auf der letzten Seite) haben wirwegen der engen Isolationsabstände und mithinrecht hohen parasitären Kapazitäten also den„Worst Case“ geschaffen (die Schaltung funktio-niert allerdings trotzdem!). Besser ist es, in weitemUmkreis der Sensoren und ihrer Zuleitungen keine

Masseflächen und keine eng anliegenden Leiter-bahnen zu verlegen. Kommt es auf gleiche Emp-findlichkeit der Sensoren untereinander an, solltendie Leiterbahnen zu den Sensor-Pads in etwagleich lang sein (notfalls ein paar Schleifen bei denkürzeren vorsehen). Zu beachten ist, dass natürlichauch die Leiterbahn selbst schon einen (wenn auchgeringer empfindlichen) Sensor darstellt.

Da wir mit der Slider-Demo-Firmware zweiSchieberegler abfragen wollen, haben wir die Ent-lade-Transistoren „ausgelagert“, was hier schondrei Portleitungen spart. Die Kondensatoren kön-nen problemlos gemeinsam entladen werden. AlsSlider schlagen wir eine kapazitive Teilerkette vor.Die 8er-LED-Kette zeigt die jeweils letzte Touch- Position an.

c’t Hacks 2/2013 | 129

Im Schaltplan zum Sensor-Demo-Programm, dereigentlich nur aus Controller und dem Sampling-Kondensator zwischen Port D6 und D7 besteht(den Rest erledigt die Software), kann noch einWiderstand von 1 bis 10 kOhm in die Leitung zum Sensor vorgesehen werden. Für die Funktionist er unerheblich, er sorgt aber für eine höhereESD-Festigkeit des Eingangs. Die LED leuchtetbei Annäherung an den Sensor auf. Da sich derController nach dem Start (durch Blinken derLeuchtdiode angezeigt) kalibriert, sollte man zudiesem Zeitpunkt den Sensor nicht berühren.

FertigteileStatt zu selbstprogrammier-ten Controllern kann mannatürlich auch zu fertigenICs greifen, wie sie vonAtmel, Microchip und Sem-tech angeboten werden.Wer zwei Portleitungen anseinem Controller erübrigenkann, fährt mit der vorge-stellten Lösung allerdingsbilliger.

Atmels Vorschlag für ein Schiebe -regler-Layout benötigt drei Sensor -eingänge. Das Prinzip des Sensor-Designs wird aber auch so deutlich.

ch.0213.124-131 06.05.13 13:57 Seite 129

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 7: Carsten Meyer Eigene Touch-Sensoren

130 | c’t Hacks 2/2013

Unsere Testschaltung für zwei Schiebe regler(Slider): Den „weichen“ Übergang von einemSensor zum anderen kann man über dieSensor-Geometrie oder, wie hier einge -zeichnet, mit einer Kondensatorkette lösen.

ch.0213.124-131 06.05.13 13:57 Seite 130

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover

Page 8: Carsten Meyer Eigene Touch-Sensoren

Die Firmware steuert zwei elektronische Schiebe -regler an, kann aber leicht auf drei oder vier Slidererweitert werden, so man genügend Port-Pinsübrig hat. Die Geometrie der Sensor-Pad-„Verzah-nung“ beeinflusst maßgeblich die Linearität des Sli-ders; einige Grundlagen dazu finden Sie unter demuntenstehenden Link bei Atmel und bei Quantum.Auf Anhieb gelingt ein Slider, wenn man den sanf-ten Übergang von einem zum anderen Pad nichtgeometrisch, sondern elektrisch löst. Wir haben aufunserer selbstgefrästen Demo-Platine einfach neunEinzel-Pads platziert, wovon nur erstes und letztesPad mit dem Controller verbunden sind. Die mittle-ren sieben Pads hängen an einer Teilerkette auskleinen Kondensatoren (22 pF), die wir der Einfach-heit halber als SMD-Bauteile direkt an die Pads ge-lötet haben. Das funktionierte viel besser als die vonAtmel vorgeschlagene Widerstandskette.

Die Schaltung reagiert relativ empfindlich aufschnelle Schwankungen der Betriebsspannung.Diese sollte also gut stabilisiert und entkoppeltsein; am besten versorgt man den Controller (des-sen Schaltschwelle ja über die Wandlungszeit ent-scheidet) getrennt von weiteren Verbrauchern(hier die LED-Kette).

Luxus-Alternative

Experimentierwilligen wollen wir eine weitere Ideenicht vorenthalten: Wählt man den Sampling-Kon-densator eher klein (in der Größenordnung der Sen-sor-Kapazität, also einige zehn pF), käme man natür-

lich nur auf einen oder zwei Umladevorgänge, bisdie Ladungen beider Kondensatoren ausgeglichensind. Wenn man nun aber nicht die Umladevor -gänge zählt, sondern gleich nach dem ersten Um -laden die Spannung am Kondensator mit dem beivielen Controllern eingebauten A/D-Wandler misst,hat man ebenfalls einen brauchbaren Messwert fürdie Sensorkapazität und damit den Fingerabstand.

Mit ein paar CMOS-Multiplexern bekommt mandann auch mehrere Eingänge, die nur einen ge-meinsamen A/D-Kanal belegen. Wegen des kleingewählten Sampling-Kondensators ist diese Me-thode aber recht zeitkritisch: Allzu lange darf manmit dem Auswerten der winzigen Kondensator -ladung nicht warten, sonst wird sie durch Netz-spannungsfelder oder statische Effekte verfälscht.Microchip verwendet unseres Wissens nach diesesVerfahren; interessanterweise verwenden die Microchip-Routinen die auf dem Chip integrierteSample-and-hold-Kondensator des A/D-Wandlersals Umladekapazität. (cm)

c’t Hacks 2/2013 | 131

Links und Forenwww.ct.de/ch1302124

QTouch odermTouch

Atmel und Microchip bietenfür ihre Controllerfamilienfertig kompilierte Librariesfür Charge-Transfer-Senso-ren an. Die sind allerdingsrecht komplex zu parame-trieren und schleppen vielOverhead mit sich herum, sodass man mit der hier vorge-stellten Routine womöglicheinfacher zum Ziel kommt.

Unsere Musterplatine haben wir mit der c’t-Hacks-Fräse

aus dem letzten Heft gefräst.Gut sichtbar sind die C-Teiler -

ketten für die beiden Slider mitSMD-Kondensatoren.

Das Kit QT600 Atmel enthältallerlei Sensor-Module zumExperimentieren, kostet aber rund 200 Euro.

ch.0213.124-131 06.05.13 13:57 Seite 131

© Copyright by Heise Zeitschriften VerlagPersönliches PDF für Rebecca Husemann aus 30625 Hannover