Saat ini, sketsa saya sedang memeriksa pin input setiap kali sepanjang loop utama. Jika mendeteksi perubahan, ia memanggil fungsi khusus untuk meresponsnya. Berikut kodenya (dipangkas hingga yang penting):
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();
}
}
Sayangnya, ini tidak selalu berfungsi dengan baik untuk perubahan yang sangat singkat pada input (mis. Pulsa singkat), terutama jika loop()
berjalan agak lambat.
Apakah ada cara untuk membuat Arduino mendeteksi perubahan input dan memanggil fungsi saya secara otomatis?