ардуино нано, 3 кнопки (вверх, стоп, вниз) и 2 реле(или драйвер), и коллекторный мотор.
задача: управлять двигателем по времени, для примера (10 секунд).
допустим штора находиться вверху, нажал кнопку вниз и мотор включается в одну сторону отсчитывая 10 секунд, так же и вдругую сторону. что бы кнопкой стоп можно остановить в любой момент и кнопками вверх или вниз продолжить движение. и самое главное это сохранение положения шторы в EEPROM что бы при отключении электричества во время движения шторы ардуино запомнила сколько секунд отсчитано до отключения и продолжило с этого места при подаче напряжения.
Отсчет перемещения по времени на практике будет работать паршиво.
Моторы не работают одинаково в разных направлениях движения и разных температурных условиях.
Шторы должны иметь концевики. Это аксиома. Никаким учетом времени Вы от этого не избавитесь.
Использовать в качестве критерия для движения/положения штор - безнадежная затея: характерное время будет меняться в широких пределах в зависимости от:
текущего положения шторы,
направления движения,
по мере загрязнения штор,
при замене штор на другие (такие же),
по мере износа в процессе эксплуатации,
при изменении температуры/влажности/погоды на Марсе,
просто ни с того, ни с сего…
Если Вам нужно контролировать любое положение штор - нужен энкодер.
Если достаточно 2-3-4 фиксированных положений (из которых два крайних), можно обойтись концевиками/герконами/оптическими датчиками. Но эти датчики должны физически быть, заменить их чисто программным решением не получится.
Если промежуточные положения не нужны - в EEPROM нужно записывать только текущее состояние (НЕ положение):
У меня покупная штора, она имеет возможность запомнить два любых положения, вверху и внизу, а так же одно промежуточное, они программируются с пульта пользователем, за 3 года эксплуатации ни разу не было проблем! Штору можно отключать от сети но при новом включении она снова останавливается в тех же точках как бы там ни было… Интересно, как она это делает?
чепуха какая то. что сложного высчитать количество шагов у шд до полного открытия шторы и работать с этим числом?ведь оно будем неизменно вне зависимости от износа, температуры,влажности и погоды на марсе. и без концевиков
Можно предложить с десяток различных способов, но среди них не будет ни одного, где бы использовалось время и не использовались аппаратные датчики (за исключением шаговых механизмов, которые сами себе датчики). Самое простое - энкодеры.
А шторе это надо?
На мой взгляд, отключение питания в процессе движения - форсмажор, после которого штора имеет право “откалиброваться”, доехав до одного из концевиков.
В любом случае: запоминать текущее место останова или текущее состояние - это возможно, а запоминать каждый шаг - очень скоро можно износить весь EEPROM.
ну каждый шаг нет, но Вы хотите сказать что каждый раз когда я останавливаю штору в том или ином положении она пишет его в ЕЕПРОМ ? Иначе от чего отталкиваться если она пол дня простояла, и вдруг пропало питание, ещё через час оно появилось, я пришёл, хочу закрыть штору?
Я хочу сказать, что останавливаете штору Вы кнопкой. Значит, имеет смысл сравнивать ресурс кнопки в нажатиях и EEPROM в циклах записи. Думаю, преимущество окажется у EEPROM - кнопка сломается раньше. А вот если Вы будете писать каждый шаг, то, скорее всего, EEPROM выйдет из строя раньше.
Да не нужно это.
Сколько времени работает двигатель шторы в сутки? наверняка не больше десятков секунд, от силы - минута. Это 0.07% всего времени. Даже если у вас отключают свет по 10 раз в сутки, все равно отключение придется на работу двигателя реже раза в год. Этот тот “форсмажор” о котором я писал выше.
Поэтому писать достаточно лишь тогда, когда штора достигла целевого положения. В принципе, здесь возможны варианты.
Но в любом случае говорить “а вот у меня покупной образец…” не совсем корректно. Разработчику, когда он делает устройство, которое предполагается продавать не дешевле $100 миллионными тиражами, нет собой разницы, уйдет на разработку $100000 или $1000000, а для изготовителя единичного экземпляра как одна, так и другая сумма лежат за пределами реальности.
Опять же, изготовить серийным способом абсолютный энкодер на 32-64 позиции можно совсем не дорого, а для любительской конструкции это может оказаться проблемой.