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

ТЕМА: Часы с 12-часовым форматом индикации

Часы с 12-часовым форматом индикации 06 фев 2016 21:35 #1

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
И снова, здравствуйте все-все-все, и отдельное приветствие уважаемым программистам! Если найдёте время\желание\силы помочь,- буду очень рад.
В темах о часах неоднократно поднимался вопрос о 12-часовом формате. Предлагалось создать соответствующую тему, и вот, наконец, вопрос дозрел.
Попытаюсь изложить техническое задание.

ФУНКЦИИ:
-12-часовой формат, поскольку имею соответствующий индикатор и корпус;
-без даты, без индикации секунд;
-1 будильник, без привязки к дням недели. Просто звонит 1 раз каждые сутки, согласно установке;
-1 термометр;
-регулировка яркости от фоторезистора;
-AtMega-8, DS1307, DS18B20;
-коррекция времени 1 раз в сутки;

ИНДИКАЦИЯ:
-общий анод;
-Разделительные точки - сегмент "h" 2-го разряда (единицы часов). Не мигают, горят постоянно;
-Индикаторы "РМ" и "Alarm" - отдельные светодиоды на плате индикатора, не привязанные к какому-либо разряду. В программе их можно использовать, как сегменты "h" 3-го и 4-го разрядов (десятки и единицы минут), поскольку, в конструкции индикатора, h3 и h4 отсутствуют; а я могу сделать соответствующее подключение;
-отображение температуры - двузначное целое, без десятых долей, вместо минут (3й и 4й разряды, при этом гаснут 1й и 2й разряды и разделительные точки. В случае отрицательной температуры, во 2м разряде зажигается знак "минус" (сегмент g);

УПРАВЛЕНИЕ:
Тут я затрудняюсь чётко сформулировать ТЗ. Хотелось бы использовать существующие кнопки и переключатели. На корпусе имеются такие кнопки (4шт., нормально разомкнуты):
-Set Alarm
-Set time
-Minute
-Hour
У всей этой группы имеется 1 общий контакт.

1 переключатель с группой контактов на переключение;
2 переключателя на 2 положения: "замкнуто-разомкнуто".

Вроде бы, ничего не упустил... Help, please! Прошу поставить меня в очередь работы над проектами.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 09:21 #2

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
Прошу поставить меня в очередь работы над проектами.
В очередь поставил, пока есть вопросы:
Айнцвайдрайченко пишет:
-1 будильник, без привязки к дням недели. Просто звонит 1 раз каждые сутки, согласно установке;
Тут подробнее, как именно звонит?
Айнцвайдрайченко пишет:
На корпусе имеются такие кнопки (4шт., нормально разомкнуты):
-Set Alarm
-Set time
-Minute
-Hour
У всей этой группы имеется 1 общий контакт.
Общий контакт куда-то подключен? К +5V или к массе?
Айнцвайдрайченко пишет:
1 переключатель с группой контактов на переключение;
2 переключателя на 2 положения: "замкнуто-разомкнуто".
Один из них можно использовать для оперативной активации будильника.

Каким образом переключать индикатор на отображение время-температура? Автоматически через какое-то время (какое?) или вручную, кнопкой (какой?)?
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 18:22 #3

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
В очередь поставил, пока есть вопросы:
Спасибо!

Теперь по порядку. Будильник:
Ожидание - лог.0, звонок - меандр 2 Гц, поставлю ключ и пищалку с генератором.
Кнопки: они расположены на отдельной плате, поэтому общий их вывод подсоединю, куда укажете. Если Вам без разницы, то к общему проводу.

Одному из переключателей можно назначить функцию "Alarm on/off" с одновременной индикацией светодиодом "Alarm"

Индикация "время-температура": По умолчанию - только время. Температура - автоматически через интервал (желательно регулируемый в секундах) на время (желательно регулируемое в десятых долях секунды), без анимации. Плюс постоянное отображение температуры, по переключению одного из переключателей.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 07 фев 2016 18:24 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 19:27 #4

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
По умолчанию - только время. Температура - автоматически через интервал (желательно регулируемый в секундах) на время (желательно регулируемое в десятых долях секунды), без анимации. Плюс постоянное отображение температуры, по переключению одного из переключателей.
Если температура автоматически, тогда как по умолчанию только время?
И зачем в десятых долях секунды? Снимете на видео а потом в замедленном воспроизведении смотреть будете какая температура? Или нужна такая точность в переключении индикации?
И с переключателями не совсем понял. Нарисуйте схему переключателей с указанием их положений и что в каком положении выводится на индикатор. Мне нужно понять сколько входов задействовать в МК.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 19:57 #5

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Я представляю себе, если, например, время отображается 1 сек, а температура 0,1 сек, то глаз успевает прочесть двузначное число температуры. Но, это, конечно, экстремальный вариант. Думаю, вполне читабельным будет вариант 2сек/0,5сек.
Почему мне не нравится более продолжительная индикация температуры? Если хочешь узнать время, достаточно беглого взгляда на часы, менее 1 секунды. А если там "висит" температура, приходится задерживать взгляд на несколько секунд, что раздражает. Другое дело, когда хочешь знать температуру - тогда можно и подождать.
Исходя из этих соображений, я представляю себе установки отображения приблизительно так:
отображение времени - от 0 до 99 (двузначное, после разделителя, в режиме установки мигает). Соответственно, 0 - отображается только температура, 1...99 - продолжительность интервала в секундах, когда отображается время, между отображениями температуры.
Отображение температуры - от 0 до 99; 0 (по умолчанию)- не отображается; 1...99 - продолжительность отображения в десятых долях секунды, т.е. от 0,1 сек до 9,9 сек.
Чтобы было видно, что именно устанавливаем,- можно изобразить какой-нибудь подсказывающий символ перед разделителем. Еще тут могут конфликтовать нули для времени и для т-ры, тогда подсказкой может быть символ ошибки Er.
Схему кнопок выложу чуть позже.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 07 фев 2016 20:03 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 20:09 #6

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
А если там "висит" температура, приходится задерживать взгляд на несколько секунд, что раздражает. Другое дело, когда хочешь знать температуру - тогда можно и подождать.
Конечно, смотря что в приоритете - термометр или часы. Но даже если часы, а хочется посмотреть температуру, то надо по максимуму 99 сек смотреть не моргая, чтобы не пропустить 0,5 сек индикации температуры?
Айнцвайдрайченко пишет:
Чтобы было видно, что именно устанавливаем,- можно изобразить какой-нибудь подсказывающий символ перед разделителем. Еще тут могут конфликтовать нули для времени и для т-ры, тогда подсказкой может быть символ ошибки Er.
В чем конфликт? Будут выведены символы, можно ошибку(?), а можно и другие...
Кстати, индикатор полноценный? В смысле, в каждом разряде весь набор сегментов?
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 07 фев 2016 21:43 #7

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Soir пишет:
Конечно, смотря что в приоритете - термометр или часы. Но даже если часы, а хочется посмотреть температуру, то надо по максимуму 99 сек смотреть не моргая, чтобы не пропустить 0,5 сек индикации температуры?
ннНу, столь экстремальное соотношение никто устанавливать не будет :blink:

Под конфликтом я имею в виду одновременную установку нулей на индикацию и времени, и температуры.

Плата кнопок и переключателей оказалась немного отличной от ранее мною описанной, но, при необходимости, могу её подкорректировать, подрезав дорожки.

вот плата индикатора:

Чтобы Вам не отслеживать схему индикатора по плате, вот словесное описание:
1й разряд (десятки часов) - есть только сегменты b, c;
2й разряд (единицы часов) - есть все сегмнты; сегмент h - разделительные точки между часами и минутами;
3й и 4й разряды (десятки и единицы минут) - есть a, b, c, d, e, f, g. Точек (h) нет.
Напаял SMD светодиоды так, чтобы получился общий анод.
PM и Alarm - отдельные светодиоды; при нехватке выводов микроконтроллера, могу их скоммутировать, как сегменты "h" 3 и 4 разрядов.

P.S. Принципиальную схему индикатора начертил, но в сообщение не вставляется.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 07 фев 2016 23:55 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 08 фев 2016 16:17 #8

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Прошивку написал. Посмотрите схему, протестируйте в Proteus. Проверьте точки, мог напутать. На индикаторе вижу еще справа два светодиода, они никуда.

В архиве прошивка, проект в Proteus, описание и FUSE.
Вложения:
Последнее редактирование: 09 фев 2016 20:13 от Soir. Причина: Обновление прошивки.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Айнцвайдрайченко

Часы с 12-часовым форматом индикации 09 фев 2016 15:38 #9

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Уважаемый Soir, спасибо, прекрасный проект!
Провожу тестирование в железе, пока неполное. На данный момент выловил только 1 несущественный баг:
- При отключении датчика температуры, отображаются не прочерки, а символ "acefg".
Продолжаю гонять. Кстати, попробовал режим отображения время/температура 5сек/0,1сек. Читается, правда с некоторым психическим напряжением.

И ещё, пожелания:
- хорошо бы добавить функцию отображения температуры по замыканию контактов кнопки или переключателя.
- в сигнале будильника изменить 2 Гц на 4 Гц

P.S. Прошу удалить моё предыдущее сообщение.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 09 фев 2016 16:05 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 16:02 #10

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
- При отключении датчика температуры, отображаются не прочерки, а символ "acefg".
Да, ошибся с минусом, исправил.
Айнцвайдрайченко пишет:
- хорошо бы добавить функцию отображения температуры по нажатию кнопки или переключателя.
Там есть. Если нажать Plus или Minus происходит принудительная смена показаний.
Айнцвайдрайченко пишет:
- в сигнале будильника изменить 2 Гц на 4 Гц
Там не 2 Гц, а 1 Гц. Пока исправил на 2 Гц. Если все-таки надо 4 - пишите.

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

Часы с 12-часовым форматом индикации 09 фев 2016 18:12 #11

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Протестировал всё, что смог. На данный момент не смог проверить коррекцию хода и наличие знака "минус" для температуры. Великолепно, это то, о чём мечтал!
Осталось внести 2 небольших шртиха:
- всё-таки, для будильника лучше 4 Гц;
- при нажатии кнопки PLUS или MINUS, на индикаторе перемигивается время-температура. Хотелось бы, чтобы, пока кнопка нажата, отображалась только температура.

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

!Вот ещё:
Если время отбражения температуры = 0, то, при попытке посмотреть температуру вручную (нажатием кнопки), на индикаторе высвечивается и висит Err. Требуется перезапуск часов, чтобы от этого избавиться.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 09 фев 2016 19:10 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 18:43 #12

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
Осталось внести 2 небольших шртиха:
Внес.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Айнцвайдрайченко

Часы с 12-часовым форматом индикации 09 фев 2016 19:02 #13

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
ухх, не успел... Посмотрите мой последний пост.

Минус температуры проверил, ОК.

И ещё: часы "тИкают" уже почти 6 часов, ошибка = 0,0 сек. Боюсь, коррекция 1 сек/сутки будет много.

Ага, вот ещё: если время индикации т-ры =0, то, по прошествии интервала отображения времени, появляется и висит "Err".
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 09 фев 2016 19:14 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 19:30 #14

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
И ещё: часы "тИкают" уже почти 6 часов, ошибка = 0,0 сек. Боюсь, коррекция 1 сек/сутки будет много.
Если надо, сделаю с десятыми долями. Делал и такие. Дома в одних с десятыми, поначалу игрался, ловил, настраивал... но они все равно куда-то потихоньку уплывают. Может от температуры, хотя в квартире более-менее стабильная, может от влажности или давления... А может терпения не хватило, да и образцового времени нет. Брал с сайта timenow.in.ua/

P.S.
Только индикация будет неудобная, первый разряд кастрированный - минус некуда выводить... Можно до 9,9 сек... Дайте предложение, как отображать.
Айнцвайдрайченко пишет:
если время индикации т-ры =0, то, по прошествии интервала отображения времени, появляется и висит "Err".
Исправил.
Последнее редактирование: 09 фев 2016 19:33 от Soir.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 20:04 #15

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Soir пишет:
...индикация будет неудобная, первый разряд кастрированный - минус некуда выводить... Можно до 9,9 сек... Дайте предложение, как отображать.

Думаю, достаточно будет от 0 до 99 в десятых долях секунды. Тогда минус можно поставить во 2й разряд.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 20:19 #16

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
достаточно будет от 0 до 99 в десятых долях секунды.
Сделал. Только не проверял, для этого надо относительно много времени даже в Proteus.
Администратор запретил публиковать записи гостям.
Спасибо сказали: Айнцвайдрайченко

Часы с 12-часовым форматом индикации 09 фев 2016 20:38 #17

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
О боже ж мой, какая прелесть вырисовывается! Правда, макет, конечно же, непригляден, но удовольствию моему нет предела! Спасибо!

Потребляет не более 30 мА, это при индикаторе высотой 55 мм! 78L05 справляется в лучшем виде.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 09 фев 2016 20:40 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 20:48 #18

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 4089
  • Спасибо получено: 1406
Айнцвайдрайченко пишет:
Потребляет не более 30 мА
А яркости светодиодов достаточно?
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 09 фев 2016 21:17 #19

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Думаю, будет достаточно. Визуально эти светодиоды светят ярче, чем в существующих часах. Это при резисторах 1 кОм на сегмент, так что резерв есть. Получается 2 мА на сегмент.
Там тоже по 2 шт в каждом сегменте, причем не SMD, а бескорпусные кристаллы прямо на плате. Вероятно, за счет рациональной конструкции рассеивателя, потери светового потока минимальны. А сверхъяркие светодиоды, кои я применил, появились на рынке после покупки этих часов.

Я установил время где-то в 14 часов (сегодня), сейчас 21:20. Разницу с моими наручными (они довольно точны) пока не замечаю. Сейчас залью в МК последнюю прошивку.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 09 фев 2016 21:21 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 11 фев 2016 23:17 #20

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Фуууххх... 2 дня пахал, как папа Карло. Вот что делает с людьми радиолюбительский азарт!
Часы готовы, только что встроил в старый корпус. Индикатор ярче, чем был. И цвет приятнее, тот был желто-зеленоватый, а сейчас приятный изумрудно-зелёный. Жене тоже нравится. Со вчерашнего, макет был разобран, поэтому генеральные испытания начинаются только сейчас. Погонял по функциям, замечаний нет.
Остаётся проверить точность хода и, при необходимости, коррекцию.
В общем, я доволен как слон и, еще раз, преогромнейшее спасибо уважаемому Soir!

Плата:
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 11 фев 2016 23:41 #21

  • wolf2000
  • wolf2000 аватар
  • на форуме
  • Moderator
  • Слава Україні !!! Смерть ворогам
  • Сообщений: 594
  • Спасибо получено: 89
год на плате прошлый )
Save Ukraine! Stop Putin!
Не купуй товари окупантів! На початку штрих-коду від 460 до 469
Администратор запретил публиковать записи гостям.

Часы с 12-часовым форматом индикации 14 фев 2016 11:38 #22

  • Айнцвайдрайченко
  • Айнцвайдрайченко аватар
  • на форуме
  • Модератор
  • Сообщений: 283
  • Спасибо получено: 59
Прошу модераторов удалить предыдущий пост.
Вот он, мой красавчик-будильничек, выстраданный и любимый! :))) Высота цифр 55 мм
Несколько месяцев назад, безуспешно пытался бороться с китайской схемой старой начинки. Теперь, сидел-сверлил-паял до боли в спине, с раздражением отзываясь на призывы завтракать-обедать-ужинать. Одних только SMD светодиодов 50 штук! Придумывал-резал-клеил крепление платы, т.к. старая китайская плата не была закреплена - она висела на 2х жёстких шлейфах,- к индикатору и к клавиатуре.
Уход за сутки менее секунды, через неделю прикину коррекцию. Часовой кварц взял из очень приличных наручных часов, когда-то мною разобранных (по причине отсутствия техподдержки изготовителя). Датчик т-ры вывел на улицу, показывает точно и в коррекции не нуждается. Разъём для подключения датчика, мини-аудио 2,5мм, расположил на задней стенке корпуса.
Фоторезистор СФ2-5. Резистор на плате в цепи Photo поставил подстроечный SMD 20kOм + постоянный 6,8к. Нужно было предусмотреть место для него на плате, а теперь пришлось приладить на проволочках :(
Все 3шт. СФ2-5, которые есть в наличии, показывают очень разные величины и темнового сопротивления, и на ярком свету. Из трёх зол выбрал среднее :) Рабочее значение суммарного сопротивления цепи резисторов на плате получилось 14,5 кОм. Окошко с фоторезистором видно на снимке, слева внизу, под дымчатым стеклом.



Пробовал установить режим отображения время/температура 1сек/0,1сек - не получилось. Вероятно, ограничение в программе. 2сек/0,1сек - получилось. Эффект похож на "25й кадр", т-ра читается, но такой режим утомляет.

5 июня 2016:
ВолкИ позорные, прислали хреновую партию светодиодов. Сегодня, после почти 5 месяцев работы, погас один сегмент из-за внутреннего КЗ в светодиоде. Первый раз такое уже было, еще на макете.
Заменил диод, собрал часы, включил - тут же погас другой сегмент! Опять разборка - замена.
Купил на АлиЭкспресс.

И что интересно: после прогрева при демонтаже они, подлые, восстанавливаются! Всё равно выбрасываю.
СЛАВА УКРАЇНІ!
Позор агрессору, смерть оккупантам!
Последнее редактирование: 24 авг 2016 11:57 от Айнцвайдрайченко.
Администратор запретил публиковать записи гостям.
Модераторы: wolf2000, Vakula, Айнцвайдрайченко