实验五:门磁单模块试验
一、实验目的
ESP32的一个引脚连接门磁,当门磁打开时,读取脚位的电平变化来触发中断程序。
二、实验内容
1.连接ESP32与门磁的引脚,另一引脚接地
2.将程序上传到ESP32
3.打开串口调试助手,观察门磁打开时,串口输出door open
三、实验设备
门磁
ESP32开发板
杜邦线
四、实验步骤
1)连接引脚
门磁:
门磁的引脚:一根接GND,一根接ESP32引脚IO2
连接图:
2)上传程序
#define NormolClose 13
bool door_open_flag; //开门动作标志位
void handleInterrupt() {
delay(100);
if (digitalRead(NormolClose)){// 电平高,门开
detachInterrupt(digitalPinToInterrupt(NormolClose)); //屏蔽中断脚位
door_open_flag = 1;
Serial.println("door open");
}
}
void setup() {
Serial.begin(9600);
pinMode(NormolClose, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(NormolClose), alarm, RISING);
}
void loop() {
if (!digitalRead(NormolClose)){ //电平低,门关
attachInterrupt(digitalPinToInterrupt(NormolClose), handleInterrupt, RISING); // 设置中断脚位,检测下降沿电压
door_open_flag = 0;
}
}