STM32 十九 電容按鍵檢測

2022-06-30 19:48:09 字數 1036 閱讀 9390

如上圖為乙個電容按鍵結構圖,由絕緣材料、金屬感應片以及fr-4板材構成,金屬感應片和接地的金屬片形成乙個等效電容cx,當手指觸控時金屬感應片和手指會形成乙個cs等效電容。

工作原理:

在電路板未上電時,可以認為電容cx是沒有電荷的,在上電時,在電阻作用下,電容cx就會有乙個充電過程,直到電容充滿, 即vc電壓值為3.3v,這個充電過程的時間長短受到電阻r阻值和電容cx容值的直接影響。但是在我們選擇合適電阻r並焊接固定到電路板上後,這個充電時間就基本.上不會變了,因為此時電阻r已經是固定的,電容cx在無外界明顯干擾情況下基本上也是保持不變的。

當手指觸控時,相同的電阻r情況下,電容容值=cx+cs,電容容值增大了,這就導致需要更長的充電時間,通過判斷充電時間就可以判斷電容按鍵是否被按下。

我們可以利用定時器輸入捕獲功能計算充電時間,即設定timx_ch為定時器輸入捕獲模式通道。這樣先測量得到無觸控時的充電時間作為比較基準,然後再定時迴圈測量充電時間與無觸控時的充電時間作比較,如果超過一定的閾值就認為是有手指觸控。

圖33-4 為vc跟隨時間變化情況,可以看出在無觸控情況下,電壓變化較快;而在有觸控時,總的電容量增大了,電壓變化緩慢一些。

為測量充電時間,我們需要設定定時器輸入捕獲功能為上公升沿觸發,圖33-4中vq就是被觸發_上公升沿的電壓值,也是stm32認為是高電平的最低電壓值,大約為1.8v。 tl和t2可以通過定時器捕獲/比較暫存器獲取得到。

不過,在測量充電時間之前,我們必須想辦法製作這個充電過程。之前的分析是在電路板上電時會有充電過程,現在我們要求在程式執行中迴圈檢測按鍵,所以必須可以控制充電過程的生成。我們可以控制timx_ ch引腳作為普通的gpio使用,使其輸出一小段時間的低電平,為電容cx放電,即vc為0v。當我們重新配置timx_ _ch 為輸入捕獲時電容cx在電阻r的作用下就可以產生充電過程。

stm32 電容觸控按鍵

電容觸控按鍵原理 使用的是檢測電容充放電時間的方法來判斷是否有觸控,圖中 r 是外接的電容充電電阻,cs 是沒有觸控按下時 tpad 與 pcb 之間的雜散電容。而 cx 則是有手指按下的時候,手指與 tpad 之間形成的電容。圖中的開關是電容放電開關 由實際使用時,由 stm32f4 的io 代替...

stm32 工業按鍵檢測 STM32按鍵的檢測

stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.件 ifndef key h define key h include sys.h definekey0 gpio rea...

STM32按鍵的檢測

stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.h檔案 ifndef key h define key h include sys.h definekey0 gpio r...