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:
The touch button is simply a 3/16" stainless steel machine screw through the faceplate withCode:'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
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