概述
文章目录
- 前言
- 一、TOUCHU 触摸传感器工作原理及硬件设计
- 1.触摸传感器的原理
- 2.多个触摸按键的识别方案
- 3.硬件连接
- 二、程序设计
- 1.传感器IO选择
- 2.驱动库的使用
- 3. 关于按键枚举
- 4. 使用演示
- 三、常见问题
- 1. 触摸误识别
- 2. 是否可以通过串联电阻来提高识别率
- 四、总结
前言
总所周知,ESP32内部集成了一些传感器,其中就包括触摸传感器,并提供了10个通道给开发者们使用。这个意思就是,总共就10个触摸用完就没了。
今天呢,就给大家介绍一下用一个触摸传感器识别多个触摸按键的方法,全是骚操作。
一、TOUCHU 触摸传感器工作原理及硬件设计
1.触摸传感器的原理
ESP32芯片内部的TOUCH触摸传感器属于电容式触摸传感器,传感器其实就是一个RC振荡器,相信电子专业的同学应该对这个有点印象,它的公式是这样的:
ESP32内部的传感器的输出就是频率。可以从公式中看到,电阻阻值固定,当电容增大时,频率 Fc就是降低。
2.多个触摸按键的识别方案
因此当我们人手去触摸按键时,电容会增大,传感器的频率输出就会减小。而一个IO识别多个触摸按键的操作就是通过不同的频率来操作,而我们现在要解决的就是如何让多个触摸按键输出不同的频率。根据上面那条公式,可以看出有两种方式:
- 通过改变电阻,达到触摸时改变频率的目的
- 通过改变电容,达到触摸时改变频率的目的
3.硬件连接
我们测的是电容的触摸按键,所以是采用改变电容的方式来改变传感器的输出频率,通过给各个触摸按键串联不同大小的电容,以达到区分按键的目的。
可以看到,四个触摸按键博主所串联的电容的大小相差都是很大的,就是想让触摸传感器的输出相差也大一点,方便我们软件作识别。
二、程序设计
1.传感器IO选择
ESP32的TOUCH传感器的IO是有固定映射的,这10个通道的对应关系如下:
TOUCH_PAD_NUM | ESP32 GPIO |
---|---|
TOUCH_PAD_NUM0 | GPIO4 |
TOUCH_PAD_NUM1 | GPIO0 |
TOUCH_PAD_NUM2 | GPIO2 |
TOUCH_PAD_NUM3 | GPIO15 |
TOUCH_PAD_NUM4 | GPIO13 |
TOUCH_PAD_NUM5 | GPIO12 |
TOUCH_PAD_NUM6 | GPIO14 |
TOUCH_PAD_NUM7 | GPIO27 |
TOUCH_PAD_NUM8 | GPIO33 |
TOUCH_PAD_NUM9 | GPIO32 |
这次,我们选择的是TOUCH_PAD_NUM9也就是IO32引脚。
2.驱动库的使用
本次应用所用的程序,我们已经写成了函数:
- app_touch_calibration(touch_pad_t touch_num)
校准函数,会自动校准并储存不同触摸按键的输出频率,每次复位都会执行校准 - app_touch_read_raw_data(touch_pad_t touch_num)
按键识别函数,输出识别到的按键枚举。
3. 关于按键枚举
在app_touch.h
文件中,有个touch_button_num_t
枚举,里面定义触摸按键的数量,如需添加,请在枚举里面添加相关枚举号即可:
//自己修改枚举号
typedef enum {
TOUCH_BUTTON_ERROR = 0,
/** 可以修改以下内容**/
TOUCH_BUTTON_NUM1,
TOUCH_BUTTON_NUM2,
TOUCH_BUTTON_NUM3,
TOUCH_BUTTON_NUM4,
/***********************/
TOUCH_BUTTON_NUM_MAX,
}touch_button_num_
4. 使用演示
三、常见问题
1. 触摸误识别
问题:明明触摸的这个按键,却识别到其他按键号。
答:按键之间输出的频率太近,导致误识别率提高,建议修改串联的电容。可以通过校准函数的输出来调节电容大小,知道每个按键输出的差距变大,越大越好
2. 是否可以通过串联电阻来提高识别率
答:可以,但是不能过多,当有两个触摸按键输出的频率无法进行电容调节时,其中一个可以改为电阻来增大两个触摸按键的频率差距
四、总结
总而言之,硬件上尽可能地把各个触摸按键的输出频率的差距变大,越大越好,越大越精准。
官方官网:https://www.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com
最后
以上就是过时丝袜为你收集整理的【工程师有空了】安信可ESP32之TOUCH触摸传感器的花式应用--一个IO识别多个触摸按键前言一、TOUCHU 触摸传感器工作原理及硬件设计二、程序设计三、常见问题四、总结的全部内容,希望文章能够帮你解决【工程师有空了】安信可ESP32之TOUCH触摸传感器的花式应用--一个IO识别多个触摸按键前言一、TOUCHU 触摸传感器工作原理及硬件设计二、程序设计三、常见问题四、总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复