目前,我的草图是每次绕主循环检查一次输入引脚。如果检测到更改,它将调用自定义函数以对此做出响应。这是代码(精简了要点):
int pinValue = LOW;
void pinChanged()
{
//...
}
void setup()
{
pinMode(2, INPUT);
}
void loop()
{
// Read current input
int newValue = digitalRead(2);
// Has the input changed?
if (newValue != pinValue) {
pinValue = newValue;
pinChanged();
}
}
不幸的是,对于输入的非常短的更改(例如短暂的脉冲),这并不总是能正常工作,尤其loop()
是在运行缓慢的情况下。
有没有办法让Arduino检测到输入变化并自动调用我的函数?