Поверьте, я ночью столько перепробовал и было почти уже добился, но превысил время обработки моих if в void impDown() и начало выдавать нули. Получается, что на мой анализ не хватило 500 мкс. Вычистил, кстати переменные оставил в скетче, но важно не это, я нигде не могу найти развернутого описания функции attachInterrupt(0, переход, событие);
что такое 0 ?
CHANGE, RISING, FALLING - понятно, но не до конца, что она будет делать, если не произойдет ожидаемое событие? Наверно поэтому и ставят detachInterrupt(0);
Про LOW вообще в описании завуалировано, не понятно когда произойдет событие.