ESP32 提供有 10 個可以當作觸控感測的接腳, 不過有些 ESP32 開發板, 像是這一個 DOIT DEVKIT 板子上有一顆內建的藍燈, 根據其電路圖, 它就是接在 GPIO2 上, 因此這個接腳就無法用來當作觸控感測的接腳, 實際運用時就要避開這個接腳。
For further actions, you may consider blocking this person and/or reporting abuse
ESP32 提供有 10 個可以當作觸控感測的接腳, 不過有些 ESP32 開發板, 像是這一個 DOIT DEVKIT 板子上有一顆內建的藍燈, 根據其電路圖, 它就是接在 GPIO2 上, 因此這個接腳就無法用來當作觸控感測的接腳, 實際運用時就要避開這個接腳。
For further actions, you may consider blocking this person and/or reporting abuse
Amador Criado -
Anil @ C Simplify IT -
Super Kai (Kazuya Ito) -
Josh Altons -
Top comments (7)
GPIO2在ESP32模组中已经pull low, 所以只要开机默认为pull low的电路使用,应该都可以,不需要刻意全面回避
你可能沒有瞭解我的意思, 我是指用來當觸控感測接腳的時候, 不是指所有情況都不能用 GPIO2。
我觉得还好,这个设计使用1K点阻串上LED,或许在判断触控的threshhold值与其它触控接脚有点差异,但使用触控应该没有问题。在乐欣的ESP32模块中,在GPIO2通常已经串上5K(新版)或1K(旧版)的pull-low电阻。
你應該沒有自己測試過, 觸控接腳是類比輸入, 這個接到 LED 的腳位只會讀到 0, 不會變化。其他腳位內部的 pull-low 電阻是可以控制要不要啟用的, 跟這˙個固定接到 LED 的狀況並不一樣。
我試過了, 在GPIO4/GPIO12/GPIO13/GPIO14/GPIO15 串上 330歐 接地或接3.3V, 這比接LED再接1K接地還嚴峻, 但Touch的檢測還是很正常, 我只是要表達造成GPIO2無法使用Touch的原因或許是很複雜, 不是我們看到接上LED的表面現象。
我是使用Micropython, 其內部的程式碼在這裡: github.com/micropython/micropython...
在102行,這裡並不只是讀值,還判斷返回的 err,或許往下追下去,可以得到真正無法讀值的原因。
PS: 在mpy 1.10 (IDF3.X), GPIO0/GPIO2 Touch正常使用; 在mpy 1.14 (IDF 4.X), GPIO0/GPIO2就有問題
我的測試結果和你的不同, GP02 即使在 MicroPython 1.10 下也是無法使用的, 會得到 Touch Pad Error, 可參考附圖。另外, GPIO4 腳若是接電阻到 GND 或是 3v3, 都會導致 Touch Pad Error, 只要拿掉就又恢復正常了。你是使用同一塊開發板嗎?可以看一下你實際的接線和測試結果嗎?
圖好像沒有上傳成功: