Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене
Создание новых тем и ответов в разделе "Схемо - темы", должны соответствовать правилам сайта ( sxem.org/forum/pravila ).
  • Сторінка:
  • 1
  • 2

ТЕМА: Регистратор событий

Регистратор событий 13 жовт. 2016 09:10 #1

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Уважаемый Soir, снова обращаюсь к Вам за помощью. Требуется счетчик посещений помещения, т.е. количества срабатываний геркона на двери. Вот ТЗ:
Комната закрыта на замок и посещается не чаще 1-2 раз в месяц. Каждое открытие двери, т.е. размыкание геркона, должно быть зафиксировано, с занесением в память даты и времени этого события. Максимальное количество записей лимитируется возможностями МК, но не более 999. После заполнения памяти, запись происходит "по кругу": при срабатывании геркона, стирается самая давняя запись, все записи смещаются на одну позицию, в ячейку №1 записывается новое событие.
Дисплей 1602, в дежурном режиме выключен. При нажатии на кнопку "плюс" или "минус", дисплей включается на 15 сек. Отображается запись о последнем событии: порядковый номер события, его дата и время; текущие дата и время. Последнее событие всегда имеет номер 1, предыдущее номер 2 и т.д. При каждом нажатии "плюс", отображается информация о предшествующем событии, при нажатии "минус" - о последующем.
Не просмотренные события обозначаются мигающим номером.
Верхняя строка дисплея: порядковый номер - 3 знакоместа, пробел, дата события - 6 знакомест, пробел, время события - 5 знакомест.
Формат даты события ЧЧММГГ, формат времени ЧЧ:ММ (двоеточие не мигает).
Нижняя строка - текущие дата и время, состояние источника питания. Формат отображения текущей даты ЧЧ-ММ-ГГ, текущего времени ЧЧ : ММ (двоеточие мигает). Одно знакоместо отображает состояние батарейки: при напряжении 4,5 В - полное заполнение; при 3, 2 В - минимальное заполнение; менее 3,2 - мигающий подчерк.
Третья кнопка - "меню" - для установки даты и времени, а также для очистки памяти событий. Отдельные записи стереть невозможно, можно стереть только всю память. Для удобства манипуляций с настройками, допустимо наличие 4й кнопки - не знаю, как её назвать.
При отсутствии нажатий в течение 15 сек., дисплей выключается и МК переходит в спящий режим с минимальным потреблением тока. Ключ питания дисплея - полевой транзистор с р-каналом.
При размыкании геркона, МК просыпается и записывает событие. Дисплей при этом не включается. Далее МК опять засыпает (независимо от состояния геркона) и ждёт следующего размыкания.
МК - AtMega-8 или AtTiny2313 (имеются в наличии)
часы - DS1307
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 09:49 #2

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

Что касается алгоритма - вроде все понятно. МК - ATMEGA8, да и то еще надо посчитать память, может и не хватит для 999 событий. Пока вижу, что на одну запись уйдет 6-8 байт - умножить на 999. А еще часы, индикатор, кнопки, меню и т.п...
Энергонезависимой памяти и подавно не хватит. Если нужна такая опция, тогда нужно вешать отдельную память.
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 10:32 #3

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Спасибо за быстрый отклик. 999 - это допустимый максимум, диктуемый дефицитом знакомест в строке. Достаточно будет несколько десятков, в лучшем случае сотен.
Событие будем считать просмотренным, если, после включения дисплея, последовало нажатие любой кнопки. Далее, если мы опять попадаем на мигающий номер, то он считается непросмотренным до любого следующего нажатия.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 10:46 #4

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

Регистратор событий 13 жовт. 2016 10:55 #5

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Это на маркеры просмотра? Тогда лучше без. А можете навскидку прикинуть, сколько событий получится записать с меткой просмотра и без неё?
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 12:15 #6

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Глянул "типичный" проект с похожим набором функций. Если писать ЧЧ:ММ ДД/ММ/ГГ то речь будет идти примерно о 120-130 записях. Если с маркером то примерно 90-100. Это очень примерно, но порядок чисел такой.

И еще не понял, как все поместить в одну строку
ЧЧ:ММ ДД/ММ/ГГ - 14 знакомест. Места для номера записи нет. Разве что убрать пробелы.
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 13:48 #7

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Да, без пробелов внутри даты, тогда уложимся в строку. И давайте без меток просмотра.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 14:08 #8

  • Oto
  • Oto аватар
  • Оффлайн
  • Moderator
  • Дописи: 2468
  • Подякували: 1062
  • Site Sponsor 2017 Author sxem.org Sponsor 2019
Без пробелов , плохо.
Лучше упразднить показания года, там помесячно и так будет ясно какой это год
01_ЧЧ:ММ_ДД/ММ вот так 14 символов, в принципе для этого дела лучше бы подошел дисплей 20х4 цена у китайцев та же.
С росийским паспортом, Ты мразь!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 14:31 #9

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

Регистратор событий 13 жовт. 2016 14:45 #10

  • Oto
  • Oto аватар
  • Оффлайн
  • Moderator
  • Дописи: 2468
  • Подякували: 1062
  • Site Sponsor 2017 Author sxem.org Sponsor 2019
Или, сделать в одной строке посекундную ротацию время - дата.
С росийским паспортом, Ты мразь!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 15:42 #11

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Дисплей выписывать не буду, чтобы не тормозить процесс. Ротация не нравится.
Да, капризный я...
Давайте так:
NN_ЧЧ:ММ_ДД/ММ/Г
где NN - двузначный номер записи (ограничимся макс. числом 99)
Год - только последняя цифра
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 13 жовт. 2016 18:24 #12

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

Выход из режима сна - кнопка SET. Листание памяти - PLUS/MINUS. Если записи нет - прочерки. Вот и все.

---
P.S.
Доработал прошивку - установка времени и даты. Выбор кнопкой SET, установка PLUS/MINUS. Установки секунд нет, сбрасываются в 0 при настройке.

Надо проверить спящий режим, режим пробуждения, включение дисплея... тут Proteus не помощник, надо в железе.
Долучення:
Останнє редагування: 16 жовт. 2016 05:40 від Soir. Причина: Обновление прошивки.
Адміністратор заборонив доступ на запис.
Користувачі які сказали Дякую: Айнцвайдрайченко

Регистратор событий 14 жовт. 2016 17:12 #13

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Смакетировал схему. Время и дата установились, счетчик работает, срабатывания запоминаются и отображаются правильно.
Неправильно:
1) регистрируются замыкания геркона. Надо регистрировать именно размыкания;
2) при замкнутом герконе, МК не уходит в сон, дисплей не выключается. При разомкнутом - есть сон, есть выключение дисплея;
3) при пропадании питания, стирается память событий;
4) задержка выключения 7 секунд - это мало. Хочется 20 сек.;
5) чувствительность к дребезгу геркона. Интегрирующая цепочка 10кОм 0,1мкФ спасает, но лучше сделать программно;
6) проблема с включением дисплея. Ключ IRLML2502 установлен в разрыв общего провода дисплея. Если закоротить канал вручную, дисплей включается, экран пустой. При нажатии SET, появляется правильная информация. Если же ключ управляется микроконтроллером, то при включении видим набор произвольных символов, повторное нажатие SET не помогает.

В спящем режиме ток потребления 0,6 мА, из них 0,4 - МК, 0,2 - DS1307
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Останнє редагування: 14 жовт. 2016 18:34 від Айнцвайдрайченко.
Адміністратор заборонив доступ на запис.

Регистратор событий 15 жовт. 2016 04:12 #14

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Айнцвайдрайченко пише:
1) регистрируются замыкания геркона. Надо регистрировать именно размыкания;
2) при замкнутом герконе, МК не уходит в сон, дисплей не выключается. При разомкнутом - есть сон, есть выключение дисплея;
Особенности режима сна микроконтроллера.
Варианты:
а). Замена геркона.
б). Инвертор сигнала геркона.
в). Изменение режима сна (увеличение потребления).
Айнцвайдрайченко пише:
3) при пропадании питания, стирается память событий;
Перенес запись событий в EEPROM. Стирание памяти - нажатие и удержании нажатой SET в течении 5 сек.
Айнцвайдрайченко пише:
4) задержка выключения 7 секунд - это мало. Хочется 20 сек.;
Сделал 15, потом только дочитал, что нужно 20. При следующее правке прошивки исправлю на 20.
Айнцвайдрайченко пише:
5) чувствительность к дребезгу геркона. Интегрирующая цепочка 10кОм 0,1мкФ спасает, но лучше сделать программно;
Сделал программно, но и "железно" лучше оставить.
Айнцвайдрайченко пише:
6) проблема с включением дисплея. Ключ IRLML2502 установлен в разрыв общего провода дисплея. Если закоротить канал вручную, дисплей включается, экран пустой.
Доработал подачу питания. Но ручное замыкание силового ключа не включит дисплей. Если с дисплея снималось питание, то он должен быть инициализирован, это может сделать только микроконтроллер.

Прошивку перезалил. Проверяйте все еще раз.
Адміністратор заборонив доступ на запис.
Користувачі які сказали Дякую: Айнцвайдрайченко

Регистратор событий 15 жовт. 2016 14:46 #15

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Память сработок сохраняется, стирание памяти работает. Всё работает, кроме: Дисплей упорно не инициализируется :(((
____________________________________________
Поставлю инвертор сигнала геркона.
15 сек - номально, пусть так и остаётся.
И еще одна незадача: приходится подстраивать контраст при просадке батареи. При 3,5 В уже невозможно прочесть и регулировка не помогает. Думаю, стоит ли применить на питание дисплея Step-Up преобразователь... Вероятно, это ещё более замедлит включение; предполагаю, что это надо учесть в прошивке.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Останнє редагування: 15 жовт. 2016 15:14 від Айнцвайдрайченко.
Адміністратор заборонив доступ на запис.

Регистратор событий 15 жовт. 2016 15:17 #16

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

Регистратор событий 15 жовт. 2016 15:22 #17

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Можно включить только ручной коммутацией питания, экран пустой. Последующее нажатие SET инициализирует дисплей и он правильно отображает.
Любое включение от МК вызывает набор случайных символов в верхней строке. Нижняя строка пустая. Нажатие на SET ничего не изменяет.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 15 жовт. 2016 16:06 #18

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

Регистратор событий 15 жовт. 2016 16:24 #19

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
При включении питания проходит заставка, на 0,5 сек появляется информация, затем экран очищается. Питание не выключается (ждал несколько минут). Далее, при нажатии SET, появляется информация и через 0,5сек экран очищаетя. Питание не выключается. Дальнейшие нажатия не дают результата.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Останнє редагування: 15 жовт. 2016 17:10 від Айнцвайдрайченко.
Адміністратор заборонив доступ на запис.

Регистратор событий 15 жовт. 2016 18:16 #20

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13323
  • Подякували: 5047
  • sxem.org 2019,2021 Respect Author
Странно. Ладно, наверно надо самому в железе посмотреть. Но это уже завтра.

P.S.
Возможно проблема в том, что Вы разрываете общий провод. Может через сигнальные цепи внутри дисплея формируется какое-то напряжение, что мешает индикатору нормально отключится.
Адміністратор заборонив доступ на запис.

Регистратор событий 15 жовт. 2016 18:44 #21

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Когда МК спит, то:
При разорванном общем проводе, ток потребления 0,6 мА
При разорванной плюсовой линии питания, ток потребления 0,8 мА
Это и послужило причиной выбора разрываемой линии.

P.S. В предыдущих прошивках отключение дисплея работало правильно.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Останнє редагування: 15 жовт. 2016 18:56 від Айнцвайдрайченко.
Адміністратор заборонив доступ на запис.

Регистратор событий 16 жовт. 2016 05:41 #22

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

Регистратор событий 16 жовт. 2016 09:41 #23

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
:((( Дисплей не инициализируется при включении. Можно включить вручную и инициализировать кнопкой SET.
Не выключается. С выхода 4 подаётся логический ноль, но дисплей подпитывается через порты.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Адміністратор заборонив доступ на запис.

Регистратор событий 16 жовт. 2016 09:48 #24

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

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

Регистратор событий 16 жовт. 2016 14:21 #25

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • Оффлайн
  • Модератор
  • Дописи: 888
  • Подякували: 360
  • sxem.org 2019,2020,2021 Author zavsehdatay
Согласен, такой способ "режет глаз". Но я ищу пути уменьшить потребление.
Я пробовал размыкать Vcc дисплея... Пробую на каждой прошивке. Получается ток потребления более 1 мА, когда МК спит :(
При размыкании земли, ток 0,6 мА.
Чтобы уменьшить ток, регулятор контраста запитан вместе с дисплеем, т.е. при размыкании земли, он тоже выключается. Точно так же и делитель контроля питания.
СЛАВА УКРАЇНІ!
Ганьба агресору, смерть окупантам!
Останнє редагування: 16 жовт. 2016 14:35 від Айнцвайдрайченко.
Адміністратор заборонив доступ на запис.
  • Сторінка:
  • 1
  • 2
Модератори: wolf2000, Vakula, Айнцвайдрайченко, Soir