// Пример с прямой работой библиотеки на прерываниях #include EncButton enc; // энкодер с кнопкой //EncButton enc; // просто энкодер //EncButton enc; // просто кнопка void setup() { Serial.begin(9600); // желательно подключить оба пина энкодера на внешние прерывания по CHANGE // можно использовать PCINT https://github.com/NicoHood/PinChangeInterrupt attachInterrupt(0, isr, CHANGE); // D2 attachInterrupt(1, isr, CHANGE); // D3 // подключил оба прерывания на одну функцию } void isr() { enc.tickISR(); // в прерывании вызываем тик ISR } void loop() { // тут тоже вызываем тик, нужен для // корректной работы дебаунсов и прочих таймеров!!! enc.tick(); if (enc.turn()) { // любой поворот Serial.print("turn "); Serial.println(enc.counter); // вывод счётчика } // имитация загруженной программы, обработка происходит в прерывании delay(50); }