Microchip提供兩種電容式觸摸感應解決方案,一種為張馳振蕩器方式,即通過檢測觸摸感應電容充放電的頻率變化,來檢測是否有鍵按下,根據單片機集成的硬件資源不同,另一種通過Microchip單片機集成的片上充電時間檢測單元(CTMU)實現。 簡單RC振蕩方式 這種方式比較適合一個按鍵情況,通過集成模擬比較器的PIC10F204或PIC10F206實現觸摸感應功能,用到的硬件資源為模擬比較器和Timer0定時器。圖1為電路圖,上電時,觸摸感應電容Cp沒有充電,比較器輸出高電平,通過D1給電容迅速充電至接近VDD,之后比較器翻轉,輸出低電平,Cp通過R1放電,直至低于內部參考電壓0.6V,比較器翻轉輸出高,進入下一個振蕩周期。將比較器輸出送給Timer0,作為時基,經過固定的軟件延時,讀出Timer0的值,可以計算出比較器輸出頻率。當手指接觸按鍵時,電容值改變,隨之比較器輸出頻率改變,讀出的Timer0的值發生變化,從而檢測到有觸摸動作。 帶SR鎖存器的比較器方式 利用PIC16F61X、PIC16F690和PIC16F88X系列內部集成的模擬比較器具有SR鎖存器功能,配合Timer0和Timer1,可以方便的實現觸摸感應檢測。這類器件在不進行外部模擬通道擴展情況下,可以直接支持4路觸摸感應檢測。 如圖2所示,Cs表示觸摸感應對地電容,觸摸感應直接與單片機片內比較器反相輸入端相連,比較器C1采用內部大約2/3VDD作為參考電壓,C2采用外部電阻分壓,獲得1/4VDD電壓。當上電時,Cs上電壓為0,C2輸出為1,C1輸出為0,SR鎖存器反相端輸出為1,通過電阻對Cs充電;當Cs電壓超過1/4VDD,C2輸出為0,SR鎖存器保持原來輸出狀態。當Cs充電超過2/3VDD時,C1輸出為1,SR鎖存器反相端輸出由1變為0,Cs通過電阻放電,當Cs放電電壓低于2/3VDD時,C1輸出為0,SR鎖存器保持原來輸出狀態。當Cs放電電壓低于1/4VDD時,C2輸出為1,SR鎖存器反相端輸出為1,通過電阻對Cs充電,開始一個新的周期。這樣Cs反復充放電,電容電壓為鋸齒波,SR鎖存器輸出為同頻率方波。 有觸摸時,Cs變大,改變了RC電路的時間常數,SR鎖存器輸出的方波頻率隨之發生改變。將SR鎖存器輸出的方波信號送給Timer1作為時基,每一次Timer0溢出中斷,中斷程序中讀出Timer1寄存器的值即代表對應頻率,頻率是否變化即代表是否有觸摸動作。 容性傳感模塊(CSM)方式 PIC16F72X系列集成了CSM,這個模塊具有恒定的拉灌電流能力,能夠直接驅動容性負載(PCB焊盤),在觸摸感應電容上形成連續振蕩的三角波,CSM輸出同頻率的方波,方波信號可以提供給Timer0或Timer1做時基,通過Timer2中斷讀出相對應的計數值,即代表對應頻率。這種方式電路非常簡單,可以直接將焊盤連接到CSM輸入對應的引腳。 |