Hiện tại, bản phác thảo của tôi đang kiểm tra một pin đầu vào mỗi lần vòng quanh vòng lặp chính. Nếu nó phát hiện ra một sự thay đổi, nó sẽ gọi một chức năng tùy chỉnh để đáp ứng nó. Đây là mã (được cắt bớt các yếu tố cần thiết):
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();
}
}
Thật không may, điều này không phải lúc nào cũng hoạt động chính xác cho những thay đổi rất ngắn trên đầu vào (ví dụ: xung ngắn), đặc biệt là nếu loop()
chạy chậm một chút.
Có cách nào để làm cho Arduino phát hiện thay đổi đầu vào và tự động gọi chức năng của tôi không?