ESP32 Arduino框架入门(二)外部中断和TouchPad(电容触摸引脚)

本文主要是介绍ESP32 Arduino框架入门(二)外部中断和TouchPad(电容触摸引脚),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接ESP32 Arduino框架入门(一)介绍和工程创建(8条消息) ESP32 Arduino框架入门(一)介绍和工程创建_长谷深风灯盏的博客-CSDN博客_arduino的esp32软件系统架构        接下来继续介绍ESP32-Wroom-32E的外部引脚、中断、定时器等部分内容

        ESP32的外部引脚功能有ADC,GPIO,I²C,I²S,PWM,SDIO,SPI,UART等,同时还有8个触摸电容引脚。

该图为ESP32-Wroom-32E的引脚对应功能关系:

一、外部中断

ESP32有多种外部中断形式,例如:低电平触发、引脚由低电平变为高电平触发等。接下来介绍如何写外部中断的代码,配置外部中断需要两部分:

 1.初始化中断

 初始化中断需要在setup函数里面写入中断初始化函数:

attachInterrupt(0, Init_Key_LED, FALLING);//初始化中断
//attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);
//pin:中断引脚号
//ISR:中断服务函数名
//mode:中断触发模式

函数内填入中断触发引脚,自己定义的中断服务函数,中断触发方式。中断触发方式有以下几种:(自行翻译即可)

 2.书写中断服务函数

中断服务函数就是自己定义一个函数,函数内书写我们所需要执行的任务的代码,例如:

 此代码就行声明一个中断服务函数,当中断触发时,引脚2输出低电平,并通过串口向电脑发送字符串。

二、TouchPad(电容触摸引脚)

ESP32内置多个电容触摸引脚,即当有物体接触该引脚时,可通过函数读取出一系列变化的值。可通过touchRead(Pin)函数读取此引脚的触摸值

void setup(){Serial.begin(115200);	//初始化串口
}void loop(){int value;               //用来记录所触摸引脚的电容值value = touchRead(4);    //读取引脚4的电容值Serial.printf(value);      //串口显示电容值
}

三、触摸灯

上文已介绍了外部中断和TouchPad,接下来做个小实验,效果有两种:

1.触摸引脚后,使开发板上指示灯亮的效果;

2.按下开发板上的按键,使得LED灯亮,持续按下按键,灯持续亮

#include <Arduino.h>int value, state;				//value用来判断Pin_4的状态
void Init_Key_LED()				//按键中断服务函数
{digitalWrite(2, LOW);Serial.printf("KeyInit Event.\r\n");  //串口显示delay(100);while (1);		//持续按下后一直执行服务函数
}void TouchLED() //触摸灯函数
{digitalWrite(2, state); // Turn HIGHSerial.printf("Touch Event.\r\n");      //串口显示delay(100);             // Wait for a second
}void setup()
{Serial.begin(115200);			pinMode(2, OUTPUT);attachInterrupt(0, Init_Key_LED, FALLING);//初始化中断
}void loop()
{value = touchRead(4);				//触摸取值,在loop可以一直检测if (value <= 50){state = HIGH;				//触摸状态TouchLED();					//亮灯}digitalWrite(2, !state);		//无触摸时灭灯
}

 setup函数中已经初始化了中断,在loop函数(相当于while(1){}),持续不断的检测引脚4的电容触摸值,当触摸值小于50时,引脚2输出高电平,灯亮。

至此,已介绍了ESP32的外部中断和TouchPad,该系列接下来会继续更新关于ESP32的内容。

这篇关于ESP32 Arduino框架入门(二)外部中断和TouchPad(电容触摸引脚)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226705

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地