I have been using capacitive touch switches for several years with little problem except the
Q prox chips became obsoleted after a couple of years.
Any Microchip can be used as the requirements are unbelievably simple:
An I/O pin to charge with supply voltage and an AD pin to read the cap sense value.
I sometimes take 20 to 100 readings, bubble sort them highest to lowest, then average
only array elements 20% to 80% to to remove any errant readings.
The outcome is stable, varies only one or two at 8 bit.
The AD needs to be coded for power conservation however.
The following code is derived almost directly from AN1286:
Code:
'PIC18F2520
subLOAD_AD_ARRAY:
ADCON0 = %00000001 'ENABLES AD
For i = 0 To 99
LOW PORTA.0
LOW PORTA.2
ASM
NOP
ENDASM
TRISA.0 = 1 'INPUT
HIGH PORTA.2
ASM
NOP
ENDASM
'AD BY REGISTER'S
ADCON0.1 = 1 ' START AD GO/DONE BIT
While ADCON0.1 = 1 : Wend ' AD ENDED GO/DONE Bit
wAD.LowByte = ADRESL ' 2520 10 BIT AD ONLY
wAD.HighByte = ADRESH
yAD_ARRAY100[i] = wAD >> 2
Next
ADCON0 = %00000000 'DISABLE AD
Return
The touch button is simply a 3/16" stainless steel machine screw through the faceplate with
a double nut tightened around a soldered wire loop connected to the AD.
I add a little grommet for looks.
The charge lead is simply wound several times around the screw behind the faceplate.
Another version is individual metal tabs of sheet metal adhered to the underside of the
enclosure for buttons.
The AD wire is soldered to each tab and the charge wire only needs to wrap around the
AD wire or all AD wires.
The cap sensor readings can vary over time and the base line to compare the readings against
should be re zeroed and a new max value redetermined at regular intervals.
I laminate an inkjet photo quality paper (not photo paper) printout for the faceplate.
The last consideration is ESD.
A simple 100k resistor in line on both leads is a good solution.
Norm
Bookmarks