Hoe werken capacitieve aanraaksensoren?
Capacitieve aanraakinterfaces kwamen pas echt op gang na hun succes in de Apple iPod met zijn draaischijf. Sindsdien hebben aanraaktoetsen hun intrede gedaan in bijna elk huishoudelijk apparaat, elke industriële toepassing, en zelfs onze auto's. We onderzoeken de principes van capacitieve aanraakgevoeligheid en de uitdagingen om ze robuust genoeg te maken voor gebruik in een echte toepassing.
Ooit waren we allemaal best tevreden met mechanische knoppen. Toen, in 2003, verscheen de Apple iPod met een volledige aanraakinterface. Van de ene dag op de andere sloegen de geesten van produktmarketeers wereldwijd op hol, en moest alles, van wasmachines en koffiezetapparaten tot autoportiergrepen, een aanraakinterface hebben.
Een groot deel van het succes van de iPod is toe te schrijven aan zijn gebruikersinterface met aanraakbediening. Achter zijn glanzende ring en zijn verlichte knoppen zaten capacitieve sensoren. Elke verandering in hun capaciteit, die vele malen per seconde geëvalueerd werd, gaf de aanwezigheid van een vinger aan om een druk of een draai instructie te geven. Natuurlijk was het toegepaste verschijnsel niets nieuws. De invloed van de capaciteit van het menselijk lichaam op elektronische schakelingen werd ontdekt in 1919 toen Leon Theramin het gebruikte voor het regelen van een heterodyne oscillator in zijn instrument met dezelfde naam.
Wie ervaring heeft met elektronica zal waarschijnlijk wel eens ervaren hebben welke invloed een vinger op een schakeling heeft. Audio- en radiocircuits reageren vaak op de aanwezigheid van een vinger door de toonhoogte van hun uitgang te veranderen of op een andere radiozender af te stemmen. Ik hoorde eens van iemand die ontdekte dat zijn radio-ontvanger plotseling werkte zoals verwacht door zijn vinger op een van de electronenbuizen te leggen. Omdat hij niet van plan was zijn vinger voor altijd achter in de radio te houden, verving hij hem door een worst die enige tijd goede diensten bewees en een verrassing was voor de technicus die uiteindelijk het varkensvleesproduct moest vervangen met een echte reparatie.
Capacitieve aanraakschakelingen steunen op de verandering in capaciteit die een vinger of lichaamsdeel heeft op de werking van een schakeling. De aanwezigheid van een vinger vormt een parallelle capaciteit naar massa die de waarde van de condensator in de schakeling verhoogt.
Een mogelijke methode is het gebruik van de condensatoren in een oscillator. In dit voorbeeld variëren we de waarde van C2 tussen 1 µF en 7 µF in stappen van 1.5 µF om de toevoeging van een parallelle capaciteit te simuleren.
Kijken we naar de FFT ( Fast Fourier Transform) van de uitvoer, dan zien we dat de frequentie begint bij 70 Hz, en daalt tot 40 Hz, 28 Hz, 21 Hz, en dan 17 Hz als reactie op deze veranderingen. Opgemerkt moet worden dat de uitvoer een blokgolf is, dus veel harmonischen vertroebelen het zicht.
Hier hebben we de beginfase van een schakeling voor aanraakdetectie. De uitgang kan verbonden worden met een teller. Het verschil tussen aanraken en niet aanraken kan bepaald worden door het aantal pulsen in een bepaalde periode, zeg 100 ms, te tellen en een teldrempel in te stellen. Een andere aanpak is het meten van de variatie in de breedte van de aanrakingspulsen.
Op dit punt speelt de werkelijkheid een rol als we zulke schakelingen proberen te implementeren. Het menselijk lichaam vormt een capaciteit van ergens tussen 100 pF en 200 pF. Vervangen we C1 in onze schakeling door een condensator van 300 pF en variëren we C2 tussen 100 pF en 200 pF, dan verandert het uitgangssignaal. Van 356 kHz zonder aanraking van de mens, en daalt tot 284 kHz bij de aanwezigheid van de maximale capaciteit van het menselijk lichaam. Opgemerkt moet worden dat dit slechts een simulatie is, en dat de gekozen transistors in werkelijkheid misschien niet bij deze frequentie werken. We hebben echter het begin gemaakt van een capacitieve aanraaksensor.
Een voorbeeld is de Charge Time Measurement Unit (CTMU), een onderdeel in een aantal microcontrollers van Microchip. Het werkt door een constante lading (0,55 µA, 5,5 µA, of 55 µA) op de sensor aan te brengen gedurende een vaste periode. Als deze periode voorbij is, wordt de spanning op de sensor gemeten met een analoog-digitaal omzetter (ADC). Als de meting met de ADC voltooid is, wordt de sensor volledig ontladen, zodat het proces herhaald kan worden. Dit wordt bij benadering nagebootst in de onderstaande schakeling.
Zoals bij elke analoge sensortoepassing zal het gemeten signaal beïnvloed worden door interferentie, en zal enige filtering nodig zijn om een aanraking met een vingertip nauwkeurig te detecteren. In de metingen hieronder vermindert een naderende vinger de piekspanning die bij de sensor bereikt wordt.
Self-capacitance aanraaksensoren worden meestal gebruikt als slechts een beperkt aantal knoppen nodig is of voor nabijheidsdetectie. Door de sensoren te groeperen, kunnen ze draaibare interfaces of schuifregelaars vormen. Door de koperen pads op de printplaat te verweven kan de overgang tussen de afzonderlijke sensoren soepel verlopen.
Storing wordt aangepakt door aardingsringen rond de sensor aan te brengen of achter de sensor een gearceerd oppervlak met aarde te plaatsen. Men moet echter oppassen dat de gevoeligheid niet te ver daalt. Ook de grootte van de sensor is belangrijk. Idealiter moet het sensorgebied overeenkomen met dat van een menselijke vingerafdruk, ergens tussen 8 en 20 mm in diameter.
Capacitieve sensoren worden gewoonlijk achter een plastic omhulsel aangebracht. Hoe dikker het materiaal, hoe lager de gevoeligheid van de sensor. Tenslotte zijn veel oppervlakken, zoals de gebruikersinterface van een wasmachine, gebogen, terwijl een PCB meestal vlak is. Flexibele PCB's op polyimide kunnen gebruikt worden om dit op te lossen, maar flex PCB's zijn duur. Als alternatief kan de afstand tussen het aanrakingsoppervlak en de printplaat overbrugd worden met veren of geleidend schuim. Hoewel dit het probleem mechanisch oplost, zijn extra tests en verdere fijnafstelling van de schakelingen en de software nodig om de betrouwbaarheid te garanderen.
Het ruitvormige rasterpatroon is een goed uitgangspunt en werkt goed in een koper layout. Idealiter moeten zowel de X als de Y rijen aan dezelfde kant liggen, zodat veel via's nodig zijn voor de X of de Y rijen. Afhankelijk van de toepassingseisen, zoals grootte en gevoeligheid, kunnen ook andere patronen gebruikt worden. Bij smartphones wordt het patroon op de glazen afdekplaat boven het beeldscherm aangebracht met Indium-Tin Oxide (ITO). Dit materiaal heeft een relatief lage weerstand, en het is doorzichtig, zodat de invloed op de leesbaarheid van het scherm en het verlies van helderheid minimaal is. Andere materialen, zoals ultrafijne kopersporen op transparante folie, zijn ook gebruikt. Om het visuele effect van het beeldscherm niet te beïnvloeden, worden de kopersporen zo aangebracht dat ze tussen de rijen pixels van het beeldscherm liggen.
Deze toepassingen maken gebruik van speciale chipsets, zoals MaxTouch. Ontwerpers waarderen zulke complete toepassingen omdat ze honderden capaciteiten per seconde kunnen evalueren en de nodige filtering toepassen. Aan de uitgang herleiden ze de gebruikersinteractie tot X-Y coördinaten voor elke vinger en kunnen zelfs de gebruikte gebaren geven (knijpen, vegen, draaien). In de toepassingssoftware worden deze sensorgegevens op vrijwel dezelfde manier behandeld als die van andere invoerapparaten, zoals een muis, zonder dat men zich zorgen hoeft te maken over het decoderen van gebaren en het verwijderen van ruis uit de signalen.
Astable circuit @ 70 Hz:
Astable Circuit @ 350 kHz:
CTMU Model:
Vertaling: Hans Adams
Een groot deel van het succes van de iPod is toe te schrijven aan zijn gebruikersinterface met aanraakbediening. Achter zijn glanzende ring en zijn verlichte knoppen zaten capacitieve sensoren. Elke verandering in hun capaciteit, die vele malen per seconde geëvalueerd werd, gaf de aanwezigheid van een vinger aan om een druk of een draai instructie te geven. Natuurlijk was het toegepaste verschijnsel niets nieuws. De invloed van de capaciteit van het menselijk lichaam op elektronische schakelingen werd ontdekt in 1919 toen Leon Theramin het gebruikte voor het regelen van een heterodyne oscillator in zijn instrument met dezelfde naam.
De invloed van capaciteit op circuits
Wie ervaring heeft met elektronica zal waarschijnlijk wel eens ervaren hebben welke invloed een vinger op een schakeling heeft. Audio- en radiocircuits reageren vaak op de aanwezigheid van een vinger door de toonhoogte van hun uitgang te veranderen of op een andere radiozender af te stemmen. Ik hoorde eens van iemand die ontdekte dat zijn radio-ontvanger plotseling werkte zoals verwacht door zijn vinger op een van de electronenbuizen te leggen. Omdat hij niet van plan was zijn vinger voor altijd achter in de radio te houden, verving hij hem door een worst die enige tijd goede diensten bewees en een verrassing was voor de technicus die uiteindelijk het varkensvleesproduct moest vervangen met een echte reparatie.Capacitieve aanraakschakelingen steunen op de verandering in capaciteit die een vinger of lichaamsdeel heeft op de werking van een schakeling. De aanwezigheid van een vinger vormt een parallelle capaciteit naar massa die de waarde van de condensator in de schakeling verhoogt.
Een mogelijke methode is het gebruik van de condensatoren in een oscillator. In dit voorbeeld variëren we de waarde van C2 tussen 1 µF en 7 µF in stappen van 1.5 µF om de toevoeging van een parallelle capaciteit te simuleren.
Hier hebben we de beginfase van een schakeling voor aanraakdetectie. De uitgang kan verbonden worden met een teller. Het verschil tussen aanraken en niet aanraken kan bepaald worden door het aantal pulsen in een bepaalde periode, zeg 100 ms, te tellen en een teldrempel in te stellen. Een andere aanpak is het meten van de variatie in de breedte van de aanrakingspulsen.
Op dit punt speelt de werkelijkheid een rol als we zulke schakelingen proberen te implementeren. Het menselijk lichaam vormt een capaciteit van ergens tussen 100 pF en 200 pF. Vervangen we C1 in onze schakeling door een condensator van 300 pF en variëren we C2 tussen 100 pF en 200 pF, dan verandert het uitgangssignaal. Van 356 kHz zonder aanraking van de mens, en daalt tot 284 kHz bij de aanwezigheid van de maximale capaciteit van het menselijk lichaam. Opgemerkt moet worden dat dit slechts een simulatie is, en dat de gekozen transistors in werkelijkheid misschien niet bij deze frequentie werken. We hebben echter het begin gemaakt van een capacitieve aanraaksensor.
Capacitieve sensor soorten: Self-capacitance
Er zijn twee soorten capacitieve detectie: self-capacitance en mutual-capacitance. Self-capacitance is de hierboven beschreven methode, waarbij de aanraaksensor een condensator vormt naar massa, en de schakeling de verandering in de waarde ervan meet als er een vinger op gehouden wordt. In plaats van de condensator als onderdeel van een oscillator te gebruiken, gebruiken aanraaksensorschakelingen gewoonlijk meer nauwkeuriger methodes.Een voorbeeld is de Charge Time Measurement Unit (CTMU), een onderdeel in een aantal microcontrollers van Microchip. Het werkt door een constante lading (0,55 µA, 5,5 µA, of 55 µA) op de sensor aan te brengen gedurende een vaste periode. Als deze periode voorbij is, wordt de spanning op de sensor gemeten met een analoog-digitaal omzetter (ADC). Als de meting met de ADC voltooid is, wordt de sensor volledig ontladen, zodat het proces herhaald kan worden. Dit wordt bij benadering nagebootst in de onderstaande schakeling.
Capacitieve sensoren worden gewoonlijk achter een plastic omhulsel aangebracht. Hoe dikker het materiaal, hoe lager de gevoeligheid van de sensor. Tenslotte zijn veel oppervlakken, zoals de gebruikersinterface van een wasmachine, gebogen, terwijl een PCB meestal vlak is. Flexibele PCB's op polyimide kunnen gebruikt worden om dit op te lossen, maar flex PCB's zijn duur. Als alternatief kan de afstand tussen het aanrakingsoppervlak en de printplaat overbrugd worden met veren of geleidend schuim. Hoewel dit het probleem mechanisch oplost, zijn extra tests en verdere fijnafstelling van de schakelingen en de software nodig om de betrouwbaarheid te garanderen.
Capacitieve sensor soorten: Mutual capacitance
Mutual-capacitance sensoren gebruiken een capacitieve sensor die tussen twee pinnen van de aanraaksensorchip of een microcontroller is verbonden, en meten de verandering in lading met en zonder de aanwezigheid van een vinger. De vinger steelt in wezen lading van de condensator alsof hij tussen de twee platen wordt geplaatst. Zo wordt een aanraking zichtbaar als een daling van de capaciteit. Deze aanpak maakt het mogelijk een raster van condensatoren over vlakke oppervlakken te maken om touch screens te ondersteunen, wat meestal projected capacitive touch of PCAP genoemd wordt. Eén methode laadt de X rijen van het sensorgebied opeenvolgend op en evalueert de capaciteiten aan de hand van de Y rijen, waarbij elke cyclus tientallen keren per seconde plaatsvindt. Dit is de capacitieve aanraakmethode die bij voorkeur gebruikt wordt voor de schermen van smartphones en touchpads op laptops.Deze toepassingen maken gebruik van speciale chipsets, zoals MaxTouch. Ontwerpers waarderen zulke complete toepassingen omdat ze honderden capaciteiten per seconde kunnen evalueren en de nodige filtering toepassen. Aan de uitgang herleiden ze de gebruikersinteractie tot X-Y coördinaten voor elke vinger en kunnen zelfs de gebruikte gebaren geven (knijpen, vegen, draaien). In de toepassingssoftware worden deze sensorgegevens op vrijwel dezelfde manier behandeld als die van andere invoerapparaten, zoals een muis, zonder dat men zich zorgen hoeft te maken over het decoderen van gebaren en het verwijderen van ruis uit de signalen.
Capacitieve aanraking toevoegen aan Arduino en Raspberry Pi
Kant en klare capacitieve touch IC's zijn verkrijgbaar bij Microchip, Azoteq, en Texas Instruments. Deze vereenvoudigen het circuit ontwerp aanzienlijk, en bieden meestal een digitale uitgang of seriële interface die rechtstreeks verbinding maakt met een Arduino of Raspberry Pi. Er moet echter op gewezen worden dat een succesvolle toepassing in werkelijkheid een uitvoerige praktijktest met verschillende sensorontwerpen en -configuraties vergt om de robuustheid en betrouwbaarheid op lange termijn te garanderen. Als alternatief zijn er bibliotheken beschikbaar voor Arduino waarmee met behulp van alleen een weerstand capacitieve sensoren gemaakt kunnen worden. Dit is meer dan genoeg om studenten en makers in staat te stellen zelf aanraakinterfaces te maken om concepten te verkennen en ideeën snel uit te proberen.Doe het zelf: LTspice code
Astable circuit @ 70 Hz:
Q1 N002 N004 0 0 BC547B
Q2 N003 N005 0 0 BC547B
R1 N001 N002 100R
R2 N001 N003 100R
R3 N001 N004 10K
R4 N001 N005 10K
C1 N005 N002 1µ
C2 N003 N004 {X}
V1 N001 0 5V
.model NPN NPN
.model PNP PNP
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.bjt
.tran 15s startup
.step param X 1u 2u 0.5u
.backanno
.end
Q2 N003 N005 0 0 BC547B
R1 N001 N002 100R
R2 N001 N003 100R
R3 N001 N004 10K
R4 N001 N005 10K
C1 N005 N002 1µ
C2 N003 N004 {X}
V1 N001 0 5V
.model NPN NPN
.model PNP PNP
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.bjt
.tran 15s startup
.step param X 1u 2u 0.5u
.backanno
.end
Astable Circuit @ 350 kHz:
Q1 N002 N003 0 0 BC547B
Q2 OUTPUT N004 0 0 BC547B
R1 N001 N002 100R
R2 N001 OUTPUT 100R
R3 N001 N003 10k
R4 N001 N004 10k
C1 N004 N002 300p
C2 OUTPUT N003 {X}
V1 N001 0 5V
.model NPN NPN
.model PNP PNP
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.bjt
.tran 1ms startup
.step param X 100p 200p 25p
.backanno
.end
Q2 OUTPUT N004 0 0 BC547B
R1 N001 N002 100R
R2 N001 OUTPUT 100R
R3 N001 N003 10k
R4 N001 N004 10k
C1 N004 N002 300p
C2 OUTPUT N003 {X}
V1 N001 0 5V
.model NPN NPN
.model PNP PNP
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.bjt
.tran 1ms startup
.step param X 100p 200p 25p
.backanno
.end
CTMU Model:
CTouch_Pad PAD 0 10pF
CFinger PAD 0 {X}
I1 0 PAD PULSE(0 5.5u 2u 0 0 5u 100u 1)
M1 PAD N001 0 0 NMOS
V1 N001 0 PULSE(0 5 12u 0 0 50u 100u 1)
.model NMOS NMOS
.model PMOS PMOS
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.mos
.tran 30u
.step param X 0p 200p 20p
.backanno
.end
CFinger PAD 0 {X}
I1 0 PAD PULSE(0 5.5u 2u 0 0 5u 100u 1)
M1 PAD N001 0 0 NMOS
V1 N001 0 PULSE(0 5 12u 0 0 50u 100u 1)
.model NMOS NMOS
.model PMOS PMOS
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.mos
.tran 30u
.step param X 0p 200p 20p
.backanno
.end
Vertaling: Hans Adams