Страница 1 из 3
Помогите реализовать
Добавлено: 06 мар 2020, 22:33
DanilaWERT
У меня задача такая..В зависимости от количества прошедших дней снижать плавно температуру.С этим справился,но..Отсчет должен начинаться в 0 часов.Вот здесь засада.Никак не получается.Да и чувствую неправильно с записью в епром сделал.Ведь будет каждый 0й час перезаписывать переменную.Так?
Помогите реализовать
Добавлено: 06 мар 2020, 23:00
grin-mpx
Запись в EEPROM я бы сделал через R триггер.
Еще нюанс, если перезапустить ардуину, то счетчик естественно обнулится и цикл сброса температуры начнется с начала. Не знаю цель данного проекта, но возможно имеет смысл записывать в память день, время старта и далее сравнивать с текущими временными данными.
Для этого придется либо делать блок нелинейного масштабирования или сделать массив количество часов -температура.
Помогите реализовать
Добавлено: 07 мар 2020, 02:00
DanilaWERT
[ref]grin-mpx[/ref], совершенно верно,так и есть.Сбрасывается.Это скетч для брудера,где с начального дня до определенного должна сброситься температура.
Отправлено спустя 2 часа 40 минут 34 секунды:
Вот такое намутил )) Но сдается мне что при прохождении 0 часов следующих суток значение в епром перепишется.ТАК?
Помогите реализовать
Добавлено: 07 мар 2020, 03:32
Webq
[ref]DanilaWERT[/ref],
А если с 23:59 сравнивать?
Помогите реализовать
Добавлено: 07 мар 2020, 05:00
edyapd
[ref]DanilaWERT[/ref], сделайте кнопку и триггер. И записывайте в ЕЕПРОМ при двух условиях.
1-триггер установлен нажатием на кнопку.
2-переход через 0 часов.
После записи триггер кнопки должен быть сброшен.
Помогите реализовать
Добавлено: 07 мар 2020, 09:44
SSSergeich
[ref]DanilaWERT[/ref], Сделайте отдельную плату выполняющуюся по условию старт=0, в ней задание дня первого старта и запись его в память. в конце платы ставите старт=1 и далее работает уже Ваша основная программа
Помогите реализовать
Добавлено: 07 мар 2020, 22:52
DanilaWERT
Webq писал(а): 07 мар 2020, 03:32
[ref]DanilaWERT[/ref],
А если с 23:59 сравнивать?
Не,смысла нет,также и останется.Только не в 0.В следующее 23:59 перезапись будет.
Отправлено спустя 4 минуты 13 секунд:
edyapd писал(а): 07 мар 2020, 05:00
[ref]DanilaWERT[/ref], сделайте кнопку и триггер. И записывайте в ЕЕПРОМ при двух условиях.
1-триггер установлен нажатием на кнопку.
2-переход через 0 часов.
После записи триггер кнопки должен быть сброшен.
Как вариант..кнопку только мострячить не хочется. ))лишняя.
Отправлено спустя 2 минуты 29 секунд:
SSSergeich писал(а): 07 мар 2020, 09:44
[ref]DanilaWERT[/ref], Сделайте отдельную плату выполняющуюся по условию старт=0, в ней задание дня первого старта и запись его в память. в конце платы ставите старт=1 и далее работает уже Ваша основная программа
НЕ умею я так.Ща попробую
Отправлено спустя 4 минуты 32 секунды:
SSSergeich писал(а): 07 мар 2020, 09:44
в конце платы ставите старт=1
как это сделать?
Отправлено спустя 5 минут 8 секунд:
получается только опять через EEPROM...
Помогите реализовать
Добавлено: 07 мар 2020, 23:59
dsfbuy
[ref]DanilaWERT[/ref], а если не использовать календарь?
Помогите реализовать
Добавлено: 08 мар 2020, 00:15
DanilaWERT
dsfbuy писал(а): 07 мар 2020, 23:59
[ref]DanilaWERT[/ref], а если не использовать календарь?
Я так изначально задумывал,но по такой схеме епром затираться будет быстрей.
Помогите реализовать
Добавлено: 08 мар 2020, 00:18
dsfbuy
Почему Вы так думаете?
Раз в сутки запись. Боитесь за дурину, пишите в EEPROM модуля часов.
Помогите реализовать
Добавлено: 08 мар 2020, 05:02
edyapd
DanilaWERT писал(а): 07 мар 2020, 22:52
кнопку только мострячить не хочется. ))лишняя.
Если у вас, во время работы есть вероятность перезагрузки микроконтроллера, то проще именно с кнопкой.
Если просто надо считать сколько часов прошло с первого включения после перепрошивки, то можете инициализировать любую ячейку памяти при первом старте, каким-либо значением. Скажем A5. А во вторую ячейку записать показание часов. После этого при каждом старте сравнивать значения с ячейкой, в которой у вас записано А5. Если так есть это значение, значит часы прописывать не надо. Если нет А5, значит это был первый старт.
Но это получится одноразовое устройство. Для вторичного использования, вам придётся его перепрошивать (как минимум ЕЕПРОМ)
Помогите реализовать
Добавлено: 08 мар 2020, 09:12
SSSergeich
DanilaWERT писал(а): 07 мар 2020, 22:52
Как вариант..кнопку только мострячить не хочется. ))лишняя.
Кнопка сброса по любому нужна будет, иначе как инициализировать устройство будете?
Помогите реализовать
Добавлено: 08 мар 2020, 11:33
DanilaWERT
[ref]edyapd[/ref], [ref]SSSergeich[/ref], Я уже это додул...))Мострячил кнопку полночи.И в конец запутался..Я напишу проект сначала,как его вижу,а вы если не трудно проверите.Может это же самое можно как то по другому нарисовать.
Помогите реализовать
Добавлено: 09 мар 2020, 01:56
DanilaWERT
Вот что получилось...Все работает вроде как и хотелось...)))Посмотрите кому ни лень пожалуйста.Может как то проще и надежнее сделать можно?
Помогите реализовать
Добавлено: 10 мар 2020, 02:09
DanilaWERT
Появилась закавыка.)) Должно быть так..С 1по 5 день освещение вкл постоянно,а с 5 дня начинает выключаться сперва на час ,в следующий день +20мин, в следующий день еще +20мин, и т.д.Собрал схемку на блоке Poligon.В него вписал параметры в миллисекундах,так как TOF на вход считает в миллисекундах.И Poligon начал выдавать чуш...Подумав)),решил что числа слишком большие для Integer.В Poligon отрезал от них по три ноля.Poligon начал работать адекватно.И получилась вот такая схемка.Проверить на работоспособность не знаю как.Скажите ,теоретически будет так работать? Или как то по другому делается это?
Помогите реализовать
Добавлено: 10 мар 2020, 05:33
edyapd
Вот так вроде должно работать
112.flp
Помогите реализовать
Добавлено: 11 мар 2020, 01:53
DanilaWERT
[ref]edyapd[/ref], неожиданное решение )) Я б не додумался так.. Но к сожалению так не пойдет.Там в 5 день на час вырубаться должно а уже потом по 20 минут.А раз TOF сможет обработать Unsigned long Integer,то оставлю свой варик.Спасибо.
Отправлено спустя 4 часа 2 минуты 31 секунду:
Перепутал TON c TOF ,полночи блин зря просидел..не получается и все ))))Разобрался.Вот так получилось.
Помогите реализовать
Добавлено: 12 мар 2020, 02:16
DanilaWERT
Подскажите,как правильней? Плата 1 или плата 2?
Помогите реализовать
Добавлено: 12 мар 2020, 06:51
Phazz
[ref]DanilaWERT[/ref], первый вариант избыточен счетчик сам умеет сбрасывать при достижении максимума.
Помогите реализовать
Добавлено: 13 мар 2020, 01:40
DanilaWERT
[ref=#404040]Phazz[/ref], с счетчиком то понятно.Он у меня досчитывает до 255 и останавливается.И обратно также.Я за генераторы волнуюсь ))) они же так и продолжают генерировать постоянно.И соответственно задействуют мощности ардуинки,наверно...
Отправлено спустя 1 час 49 минут 32 секунды:
С тригерами как на схеме не прокатило...Пришлось их заменить на переключатели.
Отправлено спустя 37 минут 6 секунд:
Помогайте пожалуйстА!! Не работает эта схема.Вернее работает но не так как надо.
Как сейчас..Допустим наступило время выключения света.Он выключился.Таймер начал отсчет времени выключеного состояния.Досчитал-включился свет.Но если в этот период перезагрузить ардуину,то соответственно отсчет начинается с начала.Это очень плохо...
Так как используется таймер,то думаю сохранение чего либо в епром не решит проблему.Надо координально новую логику.
Помогайте пожалуйста.