বর্তমানে, আমার স্কেচটি প্রতিটি লুপের চারপাশে একটি ইনপুট পিন চেক করছে। যদি এটি কোনও পরিবর্তন সনাক্ত করে, এটির প্রতিক্রিয়া জানাতে এটি একটি কাস্টম ফাংশনকে কল করে। এখানে কোড (প্রয়োজনীয়গুলি ছাঁটাই):
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()
কিছুটা ধীরে ধীরে চলতে থাকে।
আরডুইনোগুলি ইনপুট পরিবর্তনটি সনাক্ত করতে এবং আমার ফাংশনটি স্বয়ংক্রিয়ভাবে কল করার কোনও উপায় আছে?