Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене
  • Сторінка:
  • 1
  • 2

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

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

  • tolik110664
  • tolik110664 аватар
  • Оффлайн
  • I go sometimes
  • Дописи: 61
Уважаемые Знатоки!надо программа для таймера!Надеюсь на ВАШУ помощь!





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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Я не знаю, как работает Ваша гидравлика, поэтому не могу ничего определенного сказать. Лишь пытаюсь для себя уяснить, как должна работать программа.
Пока не совсем понимаю, каким образом происходит старт программы при подаче питания. Всегда вручную?

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

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

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

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

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

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

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

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

  • tolik110664
  • tolik110664 аватар
  • Оффлайн
  • I go sometimes
  • Дописи: 61
Всегда с первого, но нужно предусмотреть возможность выбора
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Опробуйте то, что есть. Потом подумаю как такой выбор организовать в меню.
Адміністратор заборонив доступ на запис.

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

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

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

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

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

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

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

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

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

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

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

  • tolik110664
  • tolik110664 аватар
  • Оффлайн
  • I go sometimes
  • Дописи: 61
Конечно устроит!
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Если при паузе нажать на SET, тогда начнет мигать оставшееся время. Его можно менять. Дискретность установки - 1 сек. Если предполагается делать большие изменения, тогда могу разделить минуты и секунды.
Повторное нажатие на SET - выход из коррекции. Далее, как обычно.
Адміністратор заборонив доступ на запис.

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

  • tolik110664
  • tolik110664 аватар
  • Оффлайн
  • I go sometimes
  • Дописи: 61
Нет не надо разделять-при подстройке небольшой интервал времени.Лучше конечно один раз попробовать чем 100 раз услышать
Адміністратор заборонив доступ на запис.

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

  • tolik110664
  • tolik110664 аватар
  • Оффлайн
  • I go sometimes
  • Дописи: 61
Погонял прошивку!вроде все функции работают.Работают первые 8 каналов остальные нет.не нашёл функцию /выбор канала/ при запуске таймера.
Адміністратор заборонив доступ на запис.

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
tolik110664 пише:
Работают первые 8 каналов остальные нет
Починил.

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

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

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

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


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

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
tolik110664 пише:
на экране высвечивается (№17 stop 00-00)
17 - наверно ошибка в прошивке. Но скажите, что же должно быть на дисплее по завершению всех циклов.

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

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

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

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

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
tolik110664 пише:
каналы с 9 по 16 на выходе (0)
Вы проверяли с обновленной прошивкой?

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