Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2).

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 11:16 #1

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Уважаемые Знатоки!надо программа для таймера!Надеюсь на ВАШУ помощь!





Работа каждого канала состоит из двух состояний , работа от 1 сек. до 10 мин. (на управляющем выходе лог.1) и пауза от 1 сек. до 10 мин. (на управляющем выходе лог.0)

Кроме этого, каждому циклическому таймеру, из пользовательского меню можно отключить или включить ON-OFF , каждый из периодов работы или паузы. /СТОП/в любом месте работы таймера(корректировать время)и/СТАРТ/с места остановки.При отключении питания/СТАРТ/с места остановки.Количество циклов от 1-100.Сохранение настроек.
Последнее редактирование: 01 дек 2019 11:21 от wolf2000. Причина: пм
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 11:52 #2

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
Вопросы, уточнения.
Логика работы.
1. Каждый канал имеет таймер, в котором задается время включенного состояния (Работа) и время выключенного состояния (Пауза), так?
2. Если оба состояния разрешены, тогда таймер включается на время Работа, затем выключается на время Пауза. Далее переход к следующему каналу. Так?
3. Если Работа запрещена, а Пауза разрешена, тогда отрабатывает только пауза и переход к следующему каналу. Так?
4. Если Работа разрешена, а Пауза запрещена, тогда отрабатывает только работа и сразу переход к следующему каналу. Так?
5. Если Работа запрещена и Пауза запрещена, тогда этот канал игнорируется и сразу переход к следующему каналу. Так?
Пожалуйста, по каждому пункту короткий ответ, да или нет. Если нет, тогда описывайте подробно, как должно быть.

Что означает стрелка ">" справа вверху?

Назначение кнопок, какая за что отвечает?

Сохранение при отключении питания. Или схема должна отслеживать наличие питания и иметь какой-то запас времени для сохранения, или программа сохраняет с какой-то периодичностью? Что именно должно сохраняться? Номер активного таймера или еще и какая стадия, сколько времени...?

Как работает подсветка ЖКИ?

Пока все. Но можете еще расписать как должны выглядеть окна настройки и т.п. Тогда Вы получите в таком виде, как Вам нужно, а не как мне было проще.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 15:48 #3

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Логика работы:5 пунктов-ДА.стрелка просто как разделение между символами,подсветку привязывать к контроллеру не надо.Назначение кнопок и окно настроек на своё усмотрение-главное просто и понятно. По поводу /стоп/ /СТАРТ/-при настройке остановить работу таймера(подкорректировать время) если(-)установленного времени таймер прекращает работу,если(+)продолжает работу с учётом ранее установленного времени.По поводу питания-таймер будет управлять гидравликой(отключили свет)потом подали питание:таймер начнёт отсчёт с начала и получиться куча металлолома!Вот для этого и нужна эта функция-при появлении питания таймер продолжает отсчёт с места ОСТАНОВКИ.Если это возможно реализовать програмно
Последнее редактирование: 01 дек 2019 15:56 от tolik110664.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 19:17 #4

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
таймер начнёт отсчёт с начала и получиться куча металлолома!
Это лишь вопрос времени, когда эта куча образуется. Во-первых, при всем желании программа не сможет запомнить время точно. Насколько точно - зависит от Вашего решения по питанию (чуть ниже об этом подробнее). Во-вторых, никаких гарантий, что программа может просто зависнуть (мало ли что, внешняя помеха, питание, ошибки в прошивке...). В третьих, может накапливаться ошибка времени (из-за неточно выставленного времени или погрешности хода. Поэтому я бы рекомендовал установку конечников, датчиков положения, датчиков тока... для калибровки и защиты.

Теперь про питание и запись в память. Если в общем, то запись в память а) требует времени, б) ресурс перезаписи в память ограничен.
Для этого микроконтроллера ресурс записи 100 000 раз (если не врут, конечно). Вроде и много, но если писать раз в секунду - то уже и немного. Если раз минуту, чуть лучше, но погрешность запоминания большая. Может и в секунду погрешность большая, тут Вам решать.
Поэтому более надежным и правильным вариантом было бы наличие источника бесперебойного (или автономного) питания. А программа чтобы отслеживала наличие основного питания. При его исчезновении производила запись текущего состояния а затем отключала все, в т.ч. и резервный источник. В простейшем случае в качестве такого источника может быть конденсатор достаточной емкости. Но здесь более жесткие требования по отслеживанию наличия питания.
Последнее редактирование: 01 дек 2019 19:18 от Soir.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 20:40 #5

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Уважаемый Soir!давайте остановимся на 5 пунктах,/СТОП/- /СТАРТ/ для настройки,количество циклов,меню и назначение кнопок на Ваше усмотрение. А если сделать запуск таймера с определённого канала?Ведь это упростит жизнь в экстренных ситуациях!А вообще это для себя-не для производства/будут дрова-будем разгребать/
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 21:18 #6

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
А если сделать запуск таймера с определённого канала?
Как скажете. Но что происходит при отключении питания? Гидравлика остается на месте или занимает стартовое положение?
Допустим таймер отсчитал половину и отключилось питание. Затем включилось, таймер ведь начнет считать сначала. Или таймер уже считал паузу... Это не навредит работе?

Далее. Запуск с определенного канала автоматический при подаче питания или вручную кнопкой?
Последнее редактирование: 01 дек 2019 21:19 от Soir.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 22:13 #7

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Гидравлика останется на том-же месте.Смотрите-это как я размышляю!Допустим таймер отсчитал половину и отключилось питание. Затем включилось,таймер ожидает команду/СТАРТ/.Если сделать/СТАРТ/начнётся отсчёт с 1 канала,а если сделать /СТАРТ/ вручную, с определённого канала (я ведь буду знать какой канал отвечает за какую функцию)Таймер дорабатывает до конца и начинает отсчёт с 1 канала.Я думаю в таком варианте может обойтись и без дров или малой кровью ВАШЕ мнение?
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 01 дек 2019 22:59 #8

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
Я не знаю, как работает Ваша гидравлика, поэтому не могу ничего определенного сказать. Лишь пытаюсь для себя уяснить, как должна работать программа.
Пока не совсем понимаю, каким образом происходит старт программы при подаче питания. Всегда вручную?

В принципе, можно сделать запоминание последнего активного канала. При подаче питания программа сама сможет установить, какой таймер был в работе до отключения питания. Его можно запустить или вручную или автоматически.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 10:08 #9

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Добрый день SOIR! Не будем усложнять-писать и работать проще! 1 Вкл. таймер 2 Настройка ;ставим 1 канал /СТАРТ/отработал /СТОП/ если надо корректируем-проверяем.Переходим к 2 каналу- ИТД 3 Если в процессе работы коррекция любого канала /СТОП/ корректируем /СТАРТ/ таймер дорабатывает цикл и начинает новый(с 1 по 16) 4 Логика работы.
1. Каждый канал имеет таймер, в котором задается время включенного состояния (Работа) и время выключенного состояния (Пауза), так
2. Если оба состояния разрешены, тогда таймер включается на время Работа, затем выключается на время Пауза. Далее переход к следующему каналу. Так
3. Если Работа запрещена, а Пауза разрешена, тогда отрабатывает только пауза и переход к следующему каналу. Так
4. Если Работа разрешена, а Пауза запрещена, тогда отрабатывает только работа и сразу переход к следующему каналу. Так
5. Если Работа запрещена и Пауза запрещена, тогда этот канал игнорируется и сразу переход к следующему каналу. Так 5 Количество циклов 1-100 6 Память (чтобы после каждого ВКЛ не настраивать) 7 Меню графика на ВАШЕ усмотрение-понятно и доступно
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 10:57 #10

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
Проект и прошивка в архиве. Еще буду дорабатывать (нужно пересмотреть процедуру переключения таймеров), но материалы будут обновляться в этом сообщении.
Посмотрите правильность назначения выводов, работу кнопок, меню... Если дружите с Proteus, то можете запустить симуляция и сначала протестировать виртуально, чтобы не наломать дров в железе.
В железе в любом случае на время отладки отключите все приводы и механизмы.

Вход в меню - кнопка MENU, SET - перебор пунктов в меню. PLUS/MINUS - установка параметра. Сохранение настроек через 10 сек по бездействию (если не нажимались кнопки).
При подаче питания таймеры не запущены. Запуск - из основного окна кнопка PLUS. Нажатие MINUS - пауза, повторное нажатие - стоп. Продолжение из режима паузы - кнопка PLUS.

Вопрос по запуску у меня остался. Вернее, он должен быть у Вас. С какого канала должна стартовать программа? Всегда с первого, или нужно предусмотреть возможность выбора?
Вложения:
Последнее редактирование: 04 дек 2019 21:18 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 11:05 #11

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Всегда с первого, но нужно предусмотреть возможность выбора
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 11:11 #12

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
Опробуйте то, что есть. Потом подумаю как такой выбор организовать в меню.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 14:33 #13

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Логика работы всё ОК-отсчёт,пауза,пропуск! Отображение на экране простое а главное понятное.С кнопками разобрался-даже почти привык! Пауза-на выходе 1 а должен быть 0 (таймер стоит а устройство продолжает работу)Если в этой функции сделать возможность изменять время настроек и продолжение работы с учётом изменений было-бы вообще замечательно ну и выбор канала при запуске
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 16:12 #14

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
Пауза-на выходе 1 а должен быть 0
Сделал 0.
tolik110664 пишет:
выбор канала при запуске
При остановленной программе нажать SET. Начнет мигать номер канала. Выбрать нужный канал и еще раз нажать на SET. Далее как обычно.

tolik110664 пишет:
сделать возможность изменять время настроек и продолжение работы с учётом изменений
Тут я не понял. В какой функции, пауза? Но таймер уже что-то насчитал, начать заново? Или как, опишите подробнее.

Прошивку обновил.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 16:51 #15

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
В функции /ПАУЗА/ сделать возможность изменять время настроек и продолжить отсчёт /например:изначально время 30 сек.таймер отсчитал 25-вижу что изначального времени мало делаю ПАУЗУ ставлю 35сек. и таймер отсчитывает с учётом отсчитанного (25)новое время(35)
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 19:41 #16

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
таймер отсчитывает с учётом отсчитанного (25)новое время(35)
На индикатор выводится оставшееся время работы. Могу сделать возможность его корректировать. Но это будет одноразовое воздействие, для текущего цикла и в памяти не сохранится. Для постоянного - нужно менять настройку таймера. Так устраивает?
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 19:53 #17

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Конечно устроит!
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 02 дек 2019 20:50 #18

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
Если при паузе нажать на SET, тогда начнет мигать оставшееся время. Его можно менять. Дискретность установки - 1 сек. Если предполагается делать большие изменения, тогда могу разделить минуты и секунды.
Повторное нажатие на SET - выход из коррекции. Далее, как обычно.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 03 дек 2019 08:44 #19

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Нет не надо разделять-при подстройке небольшой интервал времени.Лучше конечно один раз попробовать чем 100 раз услышать
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 03 дек 2019 19:07 #20

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Погонял прошивку!вроде все функции работают.Работают первые 8 каналов остальные нет.не нашёл функцию /выбор канала/ при запуске таймера.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 03 дек 2019 19:30 #21

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
Работают первые 8 каналов остальные нет
Починил.

tolik110664 пишет:
не нашёл функцию /выбор канала/ при запуске таймера.
См. сообщение №14.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 03 дек 2019 19:42 #22

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Извиняюсь -нашёл!!! И ещё вопрос;таймер отработал заданное количество циклов и на экране высвечивается (№17 stop 00-00)что и для чего это.С 9 по 16 канал на выходе 0

Прийду с работы протестирую и отпишусь а пока ОГРОМНОЕ СПАСИБО,


Сообщения объединил. Нарушение Правил форума, раздел 5, п.8
Soir
Последнее редактирование: 03 дек 2019 20:00 от Soir. Причина: Нарушение Правил форума.
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 03 дек 2019 20:02 #23

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
на экране высвечивается (№17 stop 00-00)
17 - наверно ошибка в прошивке. Но скажите, что же должно быть на дисплее по завершению всех циклов.

tolik110664 пишет:
С 9 по 16 канал на выходе 0
Я исправил, или все равно?
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 04 дек 2019 11:48 #24

  • tolik110664
  • tolik110664 аватар
  • Не в сети
  • Пользователь
  • Сообщений: 17
Добрый день!Извеняюсь за нарушение-исправлюсь!!!По ЖКИ;кубики указывают на состояние канала(если я правильно понял) 1. 2 точки-работа и пауза /да/ 2.ставлю 2 кубика-пропуск канала/да/ 3.верхний кубик-пропуск/работа/, отрабатывает /пауза/ и переход к следующему каналу/да/ 4.нижний кубик-функция/работа/отсчёт времени идёт по кругу бесконечно /нет/ Должно быть :функция /работа/,пропуск/пауза/ и переход к следующему каналу.По завершению циклов на индикаторе /1 канал stop 00:00/ /ДА/.Вообщем осталось 2 проблемы;нижний кубик и каналы с 9 по 16 на выходе (0),а в остальном всё отлично!!!
Администратор запретил публиковать записи гостям.

Циклический таймер, 16 каналов(ATmega16, ЖКИ 16x2). 04 дек 2019 14:24 #25

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 10269
  • Спасибо получено: 3702
  • Respect sxem.org Sponsor 2019 Author
tolik110664 пишет:
каналы с 9 по 16 на выходе (0)
Вы проверяли с обновленной прошивкой?

Больше ничего из Вашего сообщения не понял. Все в одну строчку, что такое /да/, что такое /нет/... И нечитаемо, и непонятно.
Но работу каналов пересмотрел, сделал исправления и обновил прошивку.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: wolf2000, Vakula, Айнцвайдрайченко, Soir