Возобновление цикла loop
- Войдите на сайт для отправки комментариев
Вс, 02/09/2018 - 22:43
Добрый день!
С моей точки зрения - нерешаемая задача, но не мне судить:
1. идет выполнение цикла loop (паровоз едет по рельсам, на пути два геркона - кнопки - реализовано челночнье движение, старт, разгон, проехали над герконом - выход на крейсерскую скорость, проехали над другим геркном - торможение, смена полярности ( l293d), пауза (millis), разгон....)
2. выключили макет
3. включили питание макета, питание пришло на ардуино и ....
Как в этот момент продолжить выполнять действие выполняемое в момент 2.???
Заранее спасибо!
Т.е. выключение макета?
Выключение ардуино, как и включение происходит при выключении всего макета (железнодорожный макет в масштабе 1-87), от которого в свою очередь запитана ардуино
Перечитайте свой вопрос и пункт N 2. Потом попробуйте еще раз ответить на заданный вопрос.
Видимо из-за скудности ума ваш вопрос я не понял, додумал его и ответил на то что надумал) задайте более конструктивный вопрос пожалуйста)
2. выключили макет
...
Как в этот момент продолжить выполнять действие выполняемое в момент 2.???
...
Какое действие ваша ардуина должна выполнять? Я не вижу в пункте 2 ничего, кроме выключения.
Ну из того что понял, как минимум сохранять значения переменных в память, а в момент включения считывать из памяти и прога типа "продолжится", но значения миллис если их все время сохранять ушатают память очень быстро, как я понял пункт2 штука внезапная? Автор я правильно понял? Автор, косноязычие плохая штука, учитесь выражаться яснее.
Либо тупо насиловать EEPROM (прикинуть, на сколько хватит). Либо делать контроль внешнего питания и при отключении переходить на резервное, чтобы "сохраниться".
Вы поняли абсолютно верно. Внезапное выключение питания.
Ну из того что понял, как минимум сохранять значения переменных в память, а в момент включения считывать из памяти и прога типа "продолжится"
Это можно реализовать ?
Если не миллис а например чтение serial print перед каждым действием?
Предложение следующее:
1. Организовать отдельное питание ардуины на 5сек (можно конденсаторами).
2. При пропадании питания на основном макете писать в ЕЕПРОМ и останавливать программу.
3. Убрать паузы (на вклейках в форуме есть варианты).
Мне более интересно, что будет, если после включения сразу дать крейсерскую скорость (допустим, что лепестричество пропало на этом этапе). Или, допустим, модель по инерции проехала геркон, но не зафиксировала данный факт, так как контроля уже не было. ...газануть прямо в отбойник что ли?
Мне более интересно, что будет, если после включения сразу дать крейсерскую скорость (допустим, что лепестричество пропало на этом этапе). Или, допустим, модель по инерции проехала геркон, но не зафиксировала данный факт, так как контроля уже не было. ...газануть прямо в отбойник что ли?
Это еще хорошо, что модель паровоза, а не самолета
ИМХО. надо на трассе расставить больше герконов. После пропадпния питания запускаем "аварийный режим" и тихим шагом движемся до ближайшего контрольного пункта, где определяем свое местонахождение и запускаем программу с этого места.
При таком раскладе ЕЕПРОМ вообще не нужен.
ИМХО. надо на трассе расставить больше герконов. После пропадпния питания запускаем "аварийный режим" и тихим шагом движемся до ближайшего контрольного пункта, где определяем свое местонахождение и запускаем программу с этого места.
При таком раскладе ЕЕПРОМ вообще не нужен.
Еще надо знать в какую сторону ехать. Боюсь, что без запоминания таки не обойтись.
Еще надо знать в какую сторону ехать. Боюсь, что без запоминания таки не обойтись.
Да.. очень важно в какую сторону и как...
Как же реализовать запоминание?
Предложение следующее:
1. Организовать отдельное питание ардуины на 5сек (можно конденсаторами).
2. При пропадании питания на основном макете писать в ЕЕПРОМ и останавливать программу.
3. Убрать паузы (на вклейках в форуме есть варианты).
3. Паузы это delay? Если да, то не использую
2. Еепром это как и что такое?
1. Я думал над отдельном питании .. допетрил только до батарейки, как в Биос. А кондером это как?
Можно еще ионистором, думаю.
2. Еепром это как и что такое? - матчасть изучил, 100000 циклов записи в еепром. В реальности это сколько? 100000 обращений - 50000 включений/выключений, верно?
Ионистор - альтернатива конденсатору?
Если решения нет, возможно действительно - при включении доказывать состав до дополнительных герконов на старт/финиш точках на самой малой скорости, и после сработает - остановка, смена полярности, millis, и по основному алгоритму?
Ну почему же решения нет? Решение Вам написали. Делаете схему контроля напряжения, делаете резервное питание (аккумуляторы, ионисторы, батарейки). И в случае отключения электричества записываете состояние макета в еепром. В таком режиме Вам её ресурса хватит за глаза.
Если не хотите/не можете с этим разобраться, попробуйте придумать какой-нибудь алгоритм безопасного адекватного включения макета, типа процитированного.
Если честно, я не понял что решение найдено)
1. Хочу разобраться, а смогу или нет - это покажет время;
2. Буду искать схему контроля питания
3. Результат выложу
Всем спасибо
Я думаю, что нужно начать с простой вещи: понять, зачем городить всю эту фигню с сохранением состояния. Если это демо-макет, а не фрезерный станок, то доехать до концевика и продолжить работать по простому алгориму, видится не самым худшим решением.
Я думаю, что нужно начать с простой вещи: понять, зачем городить всю эту фигню с сохранением состояния. Если это демо-макет, а не фрезерный станок, то доехать до концевика и продолжить работать по простому алгориму, видится не самым худшим решением.
1. Я не знаю фигня или нет, но гораздо эффектнее выглядит когда ты включаешь макет, а поезд поехал как ни в чем не бывало, а не откатывается до геркона/концевика;
2. Вы правы, если не получится найти в сети скетч с контролем питания и схемой с кондициционером или батерейкой и не получится все это скомпилировать в общий скетч, откачусь к идее алгоритма включения через докатку до концевика
3. Был бы признателен если кто-то встречал подобный скетч - с отправкой в еепром состояния скетча при отключении пеитания - поделитесь)
Нет у скетча никакого сохраняемого состояния. Сохранить можно только значения переменных. Вот подумайте, какие переменные вам нужно сохранить, чтобы из нулевого состояния определить, где вы находитесь, в какую сторону ехать и с какой скоростью. И учтите, что перемещения модели вне времени контроля микроконтроллером никак не могут быть учтены сохранением в EEPROM или еще куда-то.
Спасибо
Ушел в глухую берлогу думать
А еще можно насиловать внешнюю EEPROM, стоит копейки, например
В теле программы писать в EEPROM только измененные данные
Вот такой код надумался
По направлению движения -
переменные
EN1
IN1
IN2
эти данные помогут продолжить двигаться в нужном направлении с нужной скоростью
Соответственно при считывании этих данных поезд продолжит движение.
Но, если питание выключилось на EN1 = 55 как ему понять какое значение EN1 следующее - 105 или 0?
Опять я что-то упускаю....
Уже вижу ошибку.
Ввожу regim иначае не прекину полярность.
Но вопрос осталя....
Medvedev81, Если вы такой используете код для опроса кнопок(геркона), то воспользуйтесь этим.
Medvedev81, Если вы такой используете код для опроса кнопок(геркона), то воспользуйтесь этим.
Очень круто но не очень понятно... Я как раз не могу понять как мне читать вторую кнопку, режим ее не хочет читать
А как вашими переменными читать ?
Medvedev81, Если вы такой используете код для опроса кнопок(геркона), то воспользуйтесь этим.
Ваш просто очень короче и как-то красивее но пока не пойму что он делает
А он просто опрашивает 4 кнопки и действия отправляет в Serial
А он просто опрашивает 4 кнопки и действия отправляет в Serial
Вообще не реагирует.
Сразу зажигает синий диод а на нажатия кнопок не реагирует
Сериал выкидывает 3 down и 4 down, так как я их на аналог повесил, а с 2 и 4 пина кнопки ничего не меняют
Такое ощущение что не туда поплыли
Medvedev81, а вот это што за ужас?
кто вас научил так интервалы отмерять?
Эта конструкция - полный аналог лператора delay(2000) и она точно так же блокирует работу программы на 2 секунды. С таким кодом никакой опрос кнопок работать не будет