玩转 ESP32 + Arduino (四) 电容按键 霍尔传感器 外部中断 延时 脉冲检测
2025-04-07 来源:jianshu
一. 电容输入 touchRead(pin) 及电容输入中断touchAttachInterrupt(pin, TSR , threshold)
ESP32专门提供了电容触摸传感器的功能, 共有T0,T2~T9 共 9个touch传感器可用.分别对应引脚4、2、15、13、12、14、27、33、32. 无需设置PinMode
touchRead(pin)
返回值 0~255. 触摸强度
注意: 摸得越瓷实,数值越小
void setup(){
Serial.begin(9600);}void loop(){
Serial.printf('touch:%dn',touchRead(4));}touchAttachInterrupt(pin, TSR , threshold)
参数:
TSR :中断回调函数, 不能带参数, 不能有返回值。
threshold:阈值, 达到该阈值会触发此中断
void TSR(){
Serial.printf('我被按下了!rn');
}void setup(){
Serial.begin(9600);
touchAttachInterrupt(4, TSR , 20);}void loop(){
}二. 霍尔传感器
ESP32自带霍尔传感器 , 当有磁场靠近时,会显示正负值
hallRead()
三. 外部中断
1. 开启外部中断 attachInterrupt(pin,function,mode);
参数:
pin: 外部中断引脚
function : 外部中断回调函数
mode : 5种外部中断模式, 见下表:
| 中断触发模式 | 说明 |
|---|---|
| RISING | 上升沿触发 |
| FALLING | 下降沿触发 |
| CHANGE | 电平变化触发 |
| ONLOW | 低电平触发 |
| ONHIGH | 高电平触发 |
void func1(){
Serial.printf('按键中断触发');
}void setup(){
Serial.begin(9600);
attachInterrupt(0,func1,FALLING);}void loop(){
}2. 关闭引脚中断 detchInterrupt(pin);
无返回值
四. 时间统计函数
1. 开机至今的毫秒数 millis
millis() 返回值是unsigned long 类型, 大约50天溢出一次
2. 开机至今的微秒数 micros
micros() 返回值是unsigned long 类型, 大约70分钟溢出一次
五. 阻塞延时
时间控制函数
由于我们接下来的实验程序很多都用到延时函数,那么这里就介绍几个:
delay() ----- 毫秒级延时
delayMicroseconds() ----- 微秒级延时
硬件定时器相关请见第六篇
六. 引脚脉冲信号检测 pulseIn()
pulseIn(pin,state)
pulseIn(pin,state,timeout)
参数:
pin : 引脚
state : 脉冲类型, 可选高或者低
timeout : 超时时间, 默认1秒钟. 单位为微秒, 无符号长整型.
返回值: 脉冲宽度, 单位微秒, 数据类型为无符号长整型. 如果超时返回0
例: 使用SR04超声波测距

板上接线方式,VCC、trig(控制端)、 echo(接收端)、 out(空脚)、 GND

#include Serial.begin(115200); pinMode(4, OUTPUT); digitalWrite(4, LOW);}void loop(){ digitalWrite(4, HIGH); delayMicroseconds(20); digitalWrite(4, LOW); distance = pulseIn(18,HIGH)/58; Serial.printf('当前距离是:%d cm',distance); delay(1000);}
- ESP32/8266固件备份方法
- upyOS:基于 MicroPython 的模块化操作系统,兼容 ESP32、RP2040 等微控制器
- ESP32与STM32哪个更适合初学者?问题解析与对比
- STM32与ESP32核心应用场景解析及PCB设计实践(深度探讨)
- ESP32与STM32:比较并非明智之举
- ESP32与STM32:性能对比分析及选型指南
- STM32与ESP32:核心差异详解
- 串口、并口、USB、UART及RS232/RS485接口与ESP32、STM32的应用解析
- ESP32音频输入-MAX4466,MAX9814,SPH0645LM4H,INMP441
- ESP32 ADF windows开发环境搭建 适配ADF到ESP32A1S
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




