簡介
ESP32芯片內(nèi)置了多達 10 個電容式觸摸傳感 GPIO,能夠探測由手指或其他物品直接接觸或接近而產(chǎn)生的電容差異。這種設計的低噪聲特性和電路的高靈敏度支持使用相對較小的觸摸板。也可以使用觸摸板陣列以探測更大區(qū)域或更多點。這些引腳可以很容易地集成到電容盤,并取代機械按鈕。此外,當ESP32處于深度睡眠狀態(tài)時,觸摸還可以用作喚醒源。
觸摸傳感器系統(tǒng)主要由 3 個部分組成,從外到內(nèi)依次為平面保護層、電極與基片,如下圖
主要特性:
? 最多支持 10 路電容觸摸管腳/通用輸入輸出接口 (General Purpose Input and Output, GPIO)
? 觸摸管腳可以組合使用,可覆蓋更大觸感區(qū)域或更多觸感點
? 觸摸管腳的傳感由有限狀態(tài)機 (FSM) 硬件控制,由軟件或?qū)S糜布嫊r器發(fā)起
? 觸摸管腳是否受到觸碰的信息可由以下方式獲得:
– 由軟件直接檢查觸摸傳感器的寄存器
– 由觸摸監(jiān)測模塊發(fā)起的中斷信號判斷
– 由觸摸監(jiān)測模塊上的 CPU 是否從 Deep-sleep 中喚醒判斷
? 支持以下場景下的低功耗工作:
– CPU 處于 Deep-sleep 節(jié)能模式,將在受到觸碰后逐步喚醒
– 觸摸監(jiān)測由超低功耗協(xié)處理器 (ULP coprocessor) 管理
ULP 用戶程序可通過寫入與檢查特定寄存器,判斷是否達到觸碰閾值

觸摸管腳的電容會進行周期性充放電。” 觸摸管腳的內(nèi)部電壓” 代表充/放電電壓在參考高值 (drefH) 與參考低值(drefL) 之間的變化。在每次變化中,觸摸傳感器將生成一個輸出脈沖 (OUT)。由于觸摸管腳受到觸碰(高電容)與未受到觸碰(低電容)時的電壓變化速率不同,我們可以通過統(tǒng)計同一時間間隔內(nèi)出現(xiàn)的輸出脈沖數(shù)量,判斷觸摸管腳是否受到觸碰??梢酝ㄟ^ TIE_OPT 設置開始充/放電的初始電壓電平。
讀取觸摸傳感器引腳的轉(zhuǎn)態(tài)值示例
打開Arduino IDE ESP32的觸摸傳感器的示例
// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.
void setup() {
Serial.begin(115200);
delay(1000); // give me time to bring up serial monitor
Serial.println("ESP32 Touch Test");
}
void loop() {
Serial.println(touchRead(T0)); // get value using T0
delay(1000);
}
由于T1對應GPIO0,GPIO0被用作BOOT程序下載模式占用,這里修改T1為T0,T0對應GPIO4
實驗驗證
上傳代碼到ESP32開發(fā)板,連接一根導線到GPIO4引腳,并用手指觸摸導線,可讀取不同的觸摸值
打開串口助手或串口繪圖儀,觸摸導線另一頭,ESP32可讀取到不同的觸摸值

總結(jié)
通過本實驗我們了解了ESP32芯片內(nèi)置的電容式觸摸傳感器的基本原理和使用方法。把讀取到的觸摸值和一個設定閾值比較,還可以實現(xiàn)更多的功能,比如觸摸燈,觸摸門禁等。
審核編輯 黃宇
-
電容
+關注
關注
100文章
6446瀏覽量
158251 -
觸摸傳感器
+關注
關注
0文章
126瀏覽量
23753 -
ESP32
+關注
關注
24文章
1090瀏覽量
20931
發(fā)布評論請先 登錄
VSCode + ESP-IDF環(huán)境下給ESP32-S3項目添加頭文件
ESP32-WROOM-32 技術規(guī)格書
ESP8266和ESP32開發(fā)板常見的2種下載方式
樂鑫ESP32-C6和ESP32-C61究竟該如何選擇?一文讀懂本質(zhì)區(qū)別
ESP32-運行網(wǎng)頁服務器(Web Server)-實用篇
樂鑫ESP32-C5全面進入量產(chǎn)
ESP32驅(qū)動ST7789觸摸屏開發(fā)指南:LVGL主題設置與示波器面板
ESP32-C3:革新物聯(lián)網(wǎng)應用的超高效能芯片,家電遠程控制應用等
ESP32運行網(wǎng)頁服務器 (Web-Server)-入門篇
低功耗觸摸傳感器GTX314L應用程序注釋以及觸摸檢測的感應輸入線
【AI技術支持】ESP32模組接大電容無法正常啟動處理

ESP32內(nèi)置電容觸摸傳感器的使用
評論