8457| 0
|
[讨论] 介绍一下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. 程序超简单的。我们用串口看一下触控结果 [mw_shl_code=applescript,true]// 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); }[/mw_shl_code] 简单吧。下面来个进阶的。如果我们设置一个值。如果变量大于这个值,高电平,低于这个值,低电平。 [mw_shl_code=applescript,true]// 设触控针脚 #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); }[/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed