Мне и так не до конца понятно, требуется уточнить!
Начнём сначала: у Вас 8 светящихся ступеней(лампочек)!
Два датчика движения, внизу - первого этажа, вверху - второго этажа, давайте так и условимся(для ясности) их называть!
Зачем для каждого датчика потребовалось два входа использовать? Почему одного не достаточно?
Теперь об алгоритме работы, я так понял при движении снизу-вверх срабатывает датчик движения первого этажа, ступени начинают по очереди загораться снизу-вверх 1-8(тоже давайте так условимся с номерами ступеней для ясности), короче по очереди(1-8) снизу-вверх зажигаются все ступени, Вы пересекаете датчик второго этажа(срабатывает датчик второго этажа) и ступени начинают гаснуть так же снизу-вверх в порядке 1-8, "бегущий огонь" как бы сопровождает Вас в пути по лестнице, я правильно понял алгоритм работы? Повторю вопрос, зачем по два входа для каждого датчика, в смысле, какую роль они играют?
Теперь об обратном движении, сверху-вниз: срабатывает датчик второго этажа, ступени загораются сверху-вниз по очереди в порядке 8-1, мы доходим вниз, срабатывает датчик первого этажа, ступени гаснут в той же последовательности, что и зажигались, в смысле 8-1, "бегущий огонь" как бы сопровождает Вас, но уже в другую сторону?
Я правильно вас понимаю или Вы как-то иначе хотели?
Давайте для начала с этим разберёмся, а потом ещё несколько нюансов будет, в смысле, например Вы шли снизу-вверх, сработал датчик первого этажа, ступени загорелись по очереди 1-8, но Вы передумали, например соседка позвонила в дверь, типа за солью пришла, Вы развернулись и пошли соседку встречать, а ступени всё горят и горят, в смысле не плохо бы, мне так кажется, чтобы они выключались по истечении какого-то интервала времени, достаточного для подъёма по лестнице!
Или у Вас по два входа для каждого датчика используются не с проста, они стоят перед лестницей и ступени загораются только при пересечении второго датчика, если считать по ходу движения?
Короче, был у меня подобный макрос работы с энкодером! Даже можно сделать чтобы ступени загорались не при пересечении второго датчика, а при его прохождении, для исключения ложных(ненужных) срабатываний(включений освещения), короче, я правильно понимаю вашу логику, в смысле на каком варианте остановился? Надеюсь, понятно объяснил?
Короче, ранее в одной из тем проект обсуждали с реверсивным сдвиговым регистром, вот для ваших задач его немного подшаманил, в смысле, сделал чтобы лампы и гасли по очереди, ранее такого в нём не было:
Включение по очереди_8_3.PNG
Включение по очереди_8.3.owle
В принципе должно Вас устроить, с небольшими доработками!
И, забыл сказать, очень легко расширить до 32(включительно) ступенек, в смысле, ламп или выходов!
Даже так, для более чёткого выключения:
Включение по очереди_8_4.PNG
Включение по очереди_8.4.owle