gada888 发表于 2018-10-29 22:09:20

介绍一下ESP32的触控功能

不多说了,直接上图做说明



特色
ESP32是双核,即它可以执行多任务
ESP32内置了蓝牙和wifi功能
ESP32可以运行32位程序
内置时钟频率可达240MHz
内存是512K
针脚多达30个
其外设功能可以有: 触控, ADCs, DACs,
UART, SPI, I2C 等。

烧录工具多样

这里并不想不时间浪费在安装ESP32到arduino上,这里假定您已经安装了esp32 到Arduino上了。

这里要调用一个arduino的命令,叫touchRead()。
函数表达是touchRead (pin),问题来了这个pin是用哪个呢?还记得pinout图吗。

pin 0 对应的是GPIO4.
程序超简单的。我们用串口看一下触控结果
// Done by gada888
//Touch0 is T0 which is on GPIO 4.
void setup()
{
Serial.begin(115200);
delay(1000); // give me time to bring up serial monitor
Serial.println("ESP32 Touch Test");
}
void loop()
{
Serial.println(touchRead(T0)); // get value using T0
delay(1000);
}


简单吧。下面来个进阶的。如果我们设置一个值。如果变量大于这个值,高电平,低于这个值,低电平。

// 设触控针脚
#define touchPin T0
const int ledPin = 16;
// 设灯针脚
const int threshold = 20;
// 变量存放触控值
int touchValue;
void setup(){
Serial.begin(115200);
delay(1000); // 缓冲
//初始化LED
pinMode (ledPin, OUTPUT);
}
void loop(){
// 读按键值
touchValue = touchRead(touchPin);
Serial.print(touchValue);
// 检查变量值大小,确定LED高或低电平
if(touchValue < threshold){
// 开灯
digitalWrite(ledPin, HIGH);
Serial.println(" - LED on");
}
else{
//关灯
digitalWrite(ledPin, LOW);
Serial.println(" - LED off");
}
delay(500);
}






页: [1]
查看完整版本: 介绍一下ESP32的触控功能