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