Управление воротами

Добрый день.

Можно создать глобальную переменную, в которой будет храниться текущее состояние. Так же можно использовать PersistentStorage.
Например, 0 будет указывать на то, что ворота внизу, 1 — наверху, 2 — промежуточное состояние.

Для удобства и наглядности лучше создать функцию, аргументом которой будет задаваться желаемое состояние — вверх, стоп, вниз, а так же текущее состояние и внутри функции уже обрабатывать эти данные. Для создания импульсов можно воспользоваться таймером.