現在、私のスケッチでは、メインループを回るたびに入力ピンをチェックしています。変更を検出すると、カスタム関数を呼び出してそれに応答します。コードは次のとおりです(要点に合わせてトリミングされています)。
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に入力の変更を検出させ、関数を自動的に呼び出す方法はありますか?