PIC單片機之電容觸摸按鍵
PIC單片機電容觸摸按鍵,最方便的地方就是外圍電路簡單,不需要任何外圍元器件。只要從引腳連接出一條線到焊盤上即可。
電容按鍵觸摸的原理
PIC單片機通過松弛振蕩器是一個自激 RC 振蕩器,它使用 2 個帶 SR 鎖存的比較器來改變感應(yīng)電容器電壓的充電方向,進行充電或者放電。通俗點說就是在管腳上產(chǎn)生了一個三角波。當手指按上去后就引入了一個額外的電容 使得 充放電的周期沿長。也就是說人的手靠近的時候充電時間沿長了,然后放電時間也加長了。這樣我們就可以同過判斷 RC震蕩頻率的快慢來判斷 是否有手指按下。
如何判斷RC震蕩頻率的快慢呢?
這就和我們平時判斷一個人做事情快慢是一樣的。比如我們給個10S的時間,讓兩個人吃薯條如果吃的越多的,就說明他的吃東西的頻率越快反之越慢。
官方的資料給了個比較簡單的實現(xiàn)方式。 由TIMER1來完成計數(shù)也就是充放電的次數(shù),由TIMER0來計時。TIMER0每隔段時間觸發(fā)一次中斷,來讀取TIMER1充放電的次數(shù)。
如果采集的的次數(shù)明顯小于之前的次數(shù)。那就說明充放電頻率降低了。有人的手按下了。這就是判斷的大致原理。
官方提供的簡單按鈕檢測方式(大概就這意思)
首先要有三個變量 unsigned int average;//平均值
unsigned int raw;//當前值
unsigned int trip;//按下時頻率與平均值得差
中斷程序
ISR{
...
if(raw < (average - trip))
// 按鈕按下
else
//按鈕沒有按下
//對當前讀數(shù)進行平均
average = average*15/16+raw/16;
}