Помогите реализовать

Вопросы от новичков
DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#1

Сообщение DanilaWERT » 06.03.2020{, 22:33}

У меня задача такая..В зависимости от количества прошедших дней снижать плавно температуру.С этим справился,но..Отсчет должен начинаться в 0 часов.Вот здесь засада.Никак не получается.Да и чувствую неправильно с записью в епром сделал.Ведь будет каждый 0й час перезаписывать переменную.Так?
Вложения
1.png
черновик1.flp
(59.68 КБ) 41 скачивание

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

Помогите реализовать

#2

Сообщение grin-mpx » 06.03.2020{, 23:00}

Запись в EEPROM я бы сделал через R триггер.
Еще нюанс, если перезапустить ардуину, то счетчик естественно обнулится и цикл сброса температуры начнется с начала. Не знаю цель данного проекта, но возможно имеет смысл записывать в память день, время старта и далее сравнивать с текущими временными данными.
Для этого придется либо делать блок нелинейного масштабирования или сделать массив количество часов -температура.

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#3

Сообщение DanilaWERT » 06.03.2020{, 23:20}

grin-mpx, совершенно верно,так и есть.Сбрасывается.Это скетч для брудера,где с начального дня до определенного должна сброситься температура.

Отправлено спустя 2 часа 40 минут 34 секунды:
Вот такое намутил )) Но сдается мне что при прохождении 0 часов следующих суток значение в епром перепишется.ТАК?
Вложения
черновик2.flp
(218.7 КБ) 49 скачиваний
2.png

Webq
Сержант
Сообщения: 131
Зарегистрирован: 15.02.2020{, 13:59}
Репутация: -3
Имя: Юрий

Помогите реализовать

#4

Сообщение Webq » 07.03.2020{, 03:32}

DanilaWERT,

А если с 23:59 сравнивать?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Помогите реализовать

#5

Сообщение edyapd » 07.03.2020{, 05:00}

DanilaWERT, сделайте кнопку и триггер. И записывайте в ЕЕПРОМ при двух условиях.
1-триггер установлен нажатием на кнопку.
2-переход через 0 часов.
После записи триггер кнопки должен быть сброшен.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Помогите реализовать

#6

Сообщение SSSergeich » 07.03.2020{, 09:44}

DanilaWERT, Сделайте отдельную плату выполняющуюся по условию старт=0, в ней задание дня первого старта и запись его в память. в конце платы ставите старт=1 и далее работает уже Ваша основная программа

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#7

Сообщение DanilaWERT » 07.03.2020{, 22:36}

Webq писал(а):
07.03.2020{, 03:32}
DanilaWERT,

А если с 23:59 сравнивать?
Не,смысла нет,также и останется.Только не в 0.В следующее 23:59 перезапись будет.

Отправлено спустя 4 минуты 13 секунд:
edyapd писал(а):
07.03.2020{, 05:00}
DanilaWERT, сделайте кнопку и триггер. И записывайте в ЕЕПРОМ при двух условиях.
1-триггер установлен нажатием на кнопку.
2-переход через 0 часов.
После записи триггер кнопки должен быть сброшен.
Как вариант..кнопку только мострячить не хочется. ))лишняя.

Отправлено спустя 2 минуты 29 секунд:
SSSergeich писал(а):
07.03.2020{, 09:44}
DanilaWERT, Сделайте отдельную плату выполняющуюся по условию старт=0, в ней задание дня первого старта и запись его в память. в конце платы ставите старт=1 и далее работает уже Ваша основная программа
НЕ умею я так.Ща попробую

Отправлено спустя 4 минуты 32 секунды:
SSSergeich писал(а):
07.03.2020{, 09:44}
в конце платы ставите старт=1
как это сделать?

Отправлено спустя 5 минут 8 секунд:
получается только опять через EEPROM...

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Помогите реализовать

#8

Сообщение dsfbuy » 07.03.2020{, 23:59}

DanilaWERT, а если не использовать календарь?
Вложения
Счётчик_дней.flp
(79.36 КБ) 39 скачиваний

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#9

Сообщение DanilaWERT » 08.03.2020{, 00:15}

dsfbuy писал(а):
07.03.2020{, 23:59}
DanilaWERT, а если не использовать календарь?
Я так изначально задумывал,но по такой схеме епром затираться будет быстрей.

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Помогите реализовать

#10

Сообщение dsfbuy » 08.03.2020{, 00:18}

Почему Вы так думаете?
Раз в сутки запись. Боитесь за дурину, пишите в EEPROM модуля часов.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Помогите реализовать

#11

Сообщение edyapd » 08.03.2020{, 05:02}

DanilaWERT писал(а):
07.03.2020{, 22:52}
кнопку только мострячить не хочется. ))лишняя.
Если у вас, во время работы есть вероятность перезагрузки микроконтроллера, то проще именно с кнопкой.
Если просто надо считать сколько часов прошло с первого включения после перепрошивки, то можете инициализировать любую ячейку памяти при первом старте, каким-либо значением. Скажем A5. А во вторую ячейку записать показание часов. После этого при каждом старте сравнивать значения с ячейкой, в которой у вас записано А5. Если так есть это значение, значит часы прописывать не надо. Если нет А5, значит это был первый старт.
Но это получится одноразовое устройство. Для вторичного использования, вам придётся его перепрошивать (как минимум ЕЕПРОМ)

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Помогите реализовать

#12

Сообщение SSSergeich » 08.03.2020{, 09:12}

DanilaWERT писал(а):
07.03.2020{, 22:52}
Как вариант..кнопку только мострячить не хочется. ))лишняя.
Кнопка сброса по любому нужна будет, иначе как инициализировать устройство будете?

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#13

Сообщение DanilaWERT » 08.03.2020{, 11:33}

edyapd, SSSergeich, Я уже это додул...))Мострячил кнопку полночи.И в конец запутался..Я напишу проект сначала,как его вижу,а вы если не трудно проверите.Может это же самое можно как то по другому нарисовать.

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#14

Сообщение DanilaWERT » 09.03.2020{, 01:56}

Вот что получилось...Все работает вроде как и хотелось...)))Посмотрите кому ни лень пожалуйста.Может как то проще и надежнее сделать можно?
Вложения
4.png
черновик3.flp
(1.34 МБ) 50 скачиваний

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#15

Сообщение DanilaWERT » 10.03.2020{, 02:09}

Появилась закавыка.)) Должно быть так..С 1по 5 день освещение вкл постоянно,а с 5 дня начинает выключаться сперва на час ,в следующий день +20мин, в следующий день еще +20мин, и т.д.Собрал схемку на блоке Poligon.В него вписал параметры в миллисекундах,так как TOF на вход считает в миллисекундах.И Poligon начал выдавать чуш...Подумав)),решил что числа слишком большие для Integer.В Poligon отрезал от них по три ноля.Poligon начал работать адекватно.И получилась вот такая схемка.Проверить на работоспособность не знаю как.Скажите ,теоретически будет так работать? Или как то по другому делается это?
Вложения
7.png
черновик4.flp
(44.41 КБ) 38 скачиваний
Последний раз редактировалось DanilaWERT 11.03.2020{, 01:50}, всего редактировалось 1 раз.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Помогите реализовать

#16

Сообщение edyapd » 10.03.2020{, 05:33}

Вот так вроде должно работать
112.flp
(76.16 КБ) 42 скачивания

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#17

Сообщение DanilaWERT » 10.03.2020{, 21:50}

edyapd, неожиданное решение )) Я б не додумался так.. Но к сожалению так не пойдет.Там в 5 день на час вырубаться должно а уже потом по 20 минут.А раз TOF сможет обработать Unsigned long Integer,то оставлю свой варик.Спасибо.

Отправлено спустя 4 часа 2 минуты 31 секунду:
Перепутал TON c TOF ,полночи блин зря просидел..не получается и все ))))Разобрался.Вот так получилось.
Вложения
черновик свет.flp
(90.49 КБ) 36 скачиваний
9.png

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#18

Сообщение DanilaWERT » 12.03.2020{, 02:16}

Подскажите,как правильней? Плата 1 или плата 2?
Вложения
10_Лист1.png

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Помогите реализовать

#19

Сообщение Phazz » 12.03.2020{, 06:51}

DanilaWERT, первый вариант избыточен счетчик сам умеет сбрасывать при достижении максимума.

DanilaWERT
Сержант
Сообщения: 147
Зарегистрирован: 01.12.2018{, 14:20}
Репутация: 1
Имя: danila

Помогите реализовать

#20

Сообщение DanilaWERT » 12.03.2020{, 23:14}

Phazz, с счетчиком то понятно.Он у меня досчитывает до 255 и останавливается.И обратно также.Я за генераторы волнуюсь ))) они же так и продолжают генерировать постоянно.И соответственно задействуют мощности ардуинки,наверно...

Отправлено спустя 1 час 49 минут 32 секунды:
С тригерами как на схеме не прокатило...Пришлось их заменить на переключатели.

Отправлено спустя 37 минут 6 секунд:
Помогайте пожалуйстА!! Не работает эта схема.Вернее работает но не так как надо.
Как сейчас..Допустим наступило время выключения света.Он выключился.Таймер начал отсчет времени выключеного состояния.Досчитал-включился свет.Но если в этот период перезагрузить ардуину,то соответственно отсчет начинается с начала.Это очень плохо...
Так как используется таймер,то думаю сохранение чего либо в епром не решит проблему.Надо координально новую логику.
Помогайте пожалуйста.
Вложения
черновик свет.flp
(90.49 КБ) 41 скачивание

Ответить

Вернуться в «Начинающим»