外部中断:达到实时响应处理事件的效果。
目前Ardinuo UNO引脚只有2个,一个是2号口,一个是3号口
在Ardinuo中中断函数,返回值为空,不能有参数
程序运行截图如下:
当感应到震动后:
这里来看下震动传感器
这里s接中断2口上,-接地。这样就可以了。当震动就会将其接通。
接线是这样的。LED一边接到地,一个接到端口9。震动传感器一个接到2口,一个接地。
源码如下:
int SensorLED = 9;
int SensorINPUT = 2;
volatile int state = LOW;
void setup()
{
pinMode(SensorLED, OUTPUT); //LED为输出模式
pinMode(SensorINPUT, INPUT_PULLUP); //震动开关为输入模式
//下降沿触发,触发中断0,调用blink函数
attachInterrupt(0, blink, FALLING);
}
void loop() {
if (state == HIGH) {
state = LOW;
digitalWrite(SensorLED, HIGH);
delay(500);
}
else {
digitalWrite(SensorLED, LOW);
}
}
void blink() { //中断函数blink()
state = !state;
}
作者:IT1995