ขณะนี้ร่างของฉันกำลังตรวจสอบพินอินพุตทุกครั้งที่วนรอบลูปหลัก หากตรวจพบการเปลี่ยนแปลงจะเรียกใช้ฟังก์ชันที่กำหนดเองเพื่อตอบสนองต่อการเปลี่ยนแปลงนั้น นี่คือรหัส (ตัดลงไปที่จำเป็น):
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 ตรวจจับการเปลี่ยนแปลงอินพุตและเรียกใช้ฟังก์ชั่นของฉันโดยอัตโนมัติหรือไม่?