Имеем 1 шт шаговый двигатель М1. Драйвер Д1(step/dir). Три концевика К1(верхн положение), К2(среднее положение), К3(нижнее положение) (контакты NO). Две кнопки (пуск, стоп). Дисплей и кнопки для настройки. При включении питания двигатель вращается по часовой стрелке, ползун дойдя до концевика К1 замыкает контакты останавливает двигатель и начинает вращение против часовой стрелки, дойдя до концевика 2 двигатель останавливается. Это исходное положение. Дпалее начинается циклическая работа при нажатии кнопки пуск. При нажатии кнопки пуск двигатель вращается против часовой стрелки и ползун дойдя до концевика 3 останавливается. На одном из выходов ардуино формируется некоторое количество импульсов ( от 1 до 10). Длительность импульса от 0,1 сек до 2 сек с шагом 0,1 сек. Интервал между импульсами от 0, 1 сек до 2 сек с шагом 0,1 сек. После выполнения определённого количества импульсов включатся двигатель, вращение по часовой стрелке. Дойдя до концевика К1 двигатель останавливается на некоторое время от 0,1 сек до 2 сек с шагом 0,1 сек. после задержки двигатель начинает вращение против часовой стрелки и дойдя до концевика К2 останавливается. На этом цикл заканчивается, до следующего нажатия на кнопку пуск. Кнопка стоп для аварийной остановки.
Сейчас это работает на релюшках, вот это мне обошлось дёшево. Если не найдётся исполнитель. так и оставлю.