ESP32有10个内部电容式触摸传感器。我们可以利用这些传感器制作触摸式按键。以下就是这些传感器相对应得GPIO引脚:
- T0:GPIO 4
- T1:GPIO 0
- T2:GPIO 2
- T3:GPIO 15
- T4:GPIO 13
- T5:GPIO 12
- T6:GPIO 14
- T7:GPIO 27
- T8:GPIO 33
- T9:GPIO 32
arduino 也内置有相应的语法:touchRead(Touch Pin *);
例如,要读取触摸传感器0(T0),我们可以这样操作: int value = touchRead(4);
这里是读取得值是一个模拟量得,我们可以使用串行监视器检查传感器读取的值并正确调整代码。以下是相应的代码:
[scu name=”arduino-ide-post”]
/*******************************************************
ESP32LED闪烁
功能:实现触摸按键按一下改变LED得状态
引脚:T0 (GPIO4)
Designer: Code_Mouse
Date:2018-9-1
T0:GPIO 4
T2:GPIO 2
T3:GPIO 15
T4:GPIO 13
T5:GPIO 12
T6:GPIO 14
T7:GPIO 27
T8:GPIO 33
T9:GPIO 32
*******************************************************/
#define TOUTCH_PIN 4 // ESP32 Pin D4
#define LED_PIN 2
int touch_value = 100;
int flg = 0;
void setup()
{
Serial.begin(115200);
delay(1000);
Serial.println("ESP32 Touch Test");
pinMode(LED_PIN, OUTPUT);
digitalWrite (LED_PIN, LOW);
}
void loop()
{
touch_value = touchRead(TOUTCH_PIN);
Serial.println(touch_value);
if (touch_value < 40)
{
flg = ~flg; digitalWrite (LED_PIN, flg);
}
}
[/scu]
以下是实验得现象:
就这样一个简易的触摸式按键就完成了。
写的非常好,跟着这个学没错
✗肌肉✗
?
学习学习
教程确实很不错
改進一下程式碼,讓觸摸開關更精確
#define TOUTCH_PIN 4 //Touch 0:GPIO 4
#define LED_PIN 2 //GPIO 2
int touch_value = 100;
int flg = 0;
int cnt = 0;
void setup()
{
Serial.begin(115200);
delay(1000);
Serial.println(“ESP32 Touch Test”);
pinMode(LED_PIN, OUTPUT);
digitalWrite (LED_PIN, LOW);
}
void loop()
{
touch_value = touchRead(TOUTCH_PIN);
Serial.println(touch_value);
if (touch_value 1500)
{
flg = ~flg;
digitalWrite (LED_PIN, flg);
cnt = 0;
}
}
}