esp32外部中断_玩转ESP32+Arduino(四)电容按键霍尔传感器外部中断延时...

esp32外部中断_玩转ESP32+Arduino(四)电容按键霍尔传
感器外部中断延时脉冲。。。
⼀. 电容输⼊ 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:%d\n",touchRead(4));
}
touchAttachInterrupt(pin, TSR , threshold)
参数:
TSR :中断回调函数, 不能带参数, 不能有返回值。
threshold:阈值, 达到该阈值会触发此中断
void TSR()
{
Serial.printf("我被按下了!\r\n");
}
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
int distance = 0;
void setup()
宝石饰品
{
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);
}

本文发布于:2024-09-22 07:39:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/329715.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   触发   脉冲   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议