我是靠谱客的博主 过时丝袜,最近开发中收集的这篇文章主要介绍【工程师有空了】安信可ESP32之TOUCH触摸传感器的花式应用--一个IO识别多个触摸按键前言一、TOUCHU 触摸传感器工作原理及硬件设计二、程序设计三、常见问题四、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、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_NUMESP32 GPIO
TOUCH_PAD_NUM0GPIO4
TOUCH_PAD_NUM1GPIO0
TOUCH_PAD_NUM2GPIO2
TOUCH_PAD_NUM3GPIO15
TOUCH_PAD_NUM4GPIO13
TOUCH_PAD_NUM5GPIO12
TOUCH_PAD_NUM6GPIO14
TOUCH_PAD_NUM7GPIO27
TOUCH_PAD_NUM8GPIO33
TOUCH_PAD_NUM9GPIO32

这次,我们选择的是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 触摸传感器工作原理及硬件设计二、程序设计三、常见问题四、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部