1.9.1. 基础
Esp32部分GPIO内置了touch按钮功能(电容式),具体有touch功能的引脚在配置为touchpad后,单片机读入的电容值随是否被触碰发生变化,系统根据电容值的变化判断判断是否有有效动作。
Esp32具有touchpad功能的引荐,可查数据手册,如下图所示:
MicroPython官方说明:
1.9.2. 触摸演示
驱动touchpad,使用machine模块下的TouchPad模块。以IO14为例,在命令行模式下按1Hz的频率循环打印IO14的值,代码如下:
1 from machine import Pin,TouchPad 2 from time import sleep 3 4 tt = TouchPad(Pin(14)) #Pin模式可以不做配置 5 6 while True: 7 Print(tt.read()) 8 Sleep(1)
执行效果如下图:
1.9.3. 程序设计
案例:触摸按钮动作时,切换板载led的状态(由点亮切换为熄灭或有熄灭切换为点亮)。
分析:结合1.6节和1.7.1内容,设置valve值,代码实现如下:
1 from machine import Pin,TouchPad 2 from time import sleep 3 4 led = Pin(2,Pin.OUT) 5 tp = TouchPad(Pin(14,Pin.IN)) 6 tp_valve = 700 7 8 cnt = 0 9 max_value = 10 10 valve = 5 11 12 def button_deal(): 13 if(led.value() > 0): 14 led.off() 15 else: 16 led.on() 17 print("valid btn") 18 19 while True: 20 #按钮部分 21 if(tp.read()<tp_valve): 22 if(cnt < max_value): 23 cnt = cnt +1 24 else: 25 cnt = 0 26 27 if(cnt==valve): 28 button_deal() 29 sleep(0.01)
----*----*----*----*----*----*----*----*----*----*----*----
史久超
email:shijiuchao1983@163.com
tel:15999550975 微信同号
qq:157185173 经常不在线,尽量微信