- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Статьи по AVR

Читать в Яндекс.Подписках



    NIXIE CLOCK. Настройка часов. (Часть 3 из 3)
Просмотров: 7335
     Ну, вот и третья, последняя часть небольшого цикла о часах на газоразрядных лампах, или, как принято их величать - Nixie clock.
Из названия уже ясно, что посвящена энта статья будет только рассмотрению функционала данных часов, который, если вы читали предыдущие статьи, довольно-таки немалый. Ладно, меньше слов, больше текста дела!
     Для работы с часами предусмотрены 2 кнопочки, назову их верхняя (1 кнопка) и нижняя (2 кнопка) (бог мой! а что было бы, если бы я их расположил горизонтально?!). Программа микроконтроллера распознаёт кратковременное и длительное нажатие кнопок, что по функционалу сопоставимо с применением четырёх кнопок с определением только одного режима нажатия.
     Часы имеют два вида меню настроек - стандартное меню и быстрое меню.
     Стандартное меню вызывается при длительном нажатии 1 кнопки (при кратковременном её нажатии в течение четырёх секунд показывается текущая дата в формате день-месяц-год), и позволяет настроить следующие параметры:
- время;
дату;
- режим индикации (отключение секунд);
- время понижения яркости индикаторов и подсветки;
время увеличения яркости индикаторов и подсветки;
- точность хода часов.
     Быстрое меню вызывается при длительном нажатии 2 кнопки (при кратковременном её нажатии происходит выбор режима работы будильника), и имеет следующие режимы:
- настройка времени срабатывания будильника;
- выбор дня недели срабатывания будильника;
- регулировка яркости индикаторов и светодиодов.
     А теперь пробежимся подробно по каждому режиму. Итак-с!
     При длительном нажатии 1 кнопки вы переходите в режим установки времени:

     На рисунке первая пара цифр это часы, вторая пара цифр это минуты, а последняя цифра (6 индикатор) - это текущий день недели (имеется ввиду понедельник-воскресение, на фото, естественно, пятница). Кратковременным нажатием на 1 кнопку осуществляется выбор индикатора, а при кратковременном нажатии на 2 кнопку происходит выбор нужной цифры (0-9). Выбранный индикатор будет мигать, что, несомненно, облегчит настройку нужного разряда. Если в меню настроек ничего не делать в течение 10 секунд, то часы автоматически перейдут в режим показа текущего времени. Это свойство характерно для любого режима настроек, как для стандартного меню так и для быстрого. Для сохранения введённых данных нужно длительно нажать 2 кнопку. При этом вы вернётесь в основной режим показа времени.
     
     Следующий режим - это настройка даты (для перехода в этот режим нужно опять длительно нажать 1 кнопку (это если вы находитесь в меню настройки времени) а если находитесь в режиме показа реального времени (ну, основной режим работы), то в это меню войдёте при 2-х длительных нажатиях на 1 кнопку. Этот принцип сохраняется для входа во все режимы меню, поэтому, при дальнейшем их рассмотрении, я буду указывать только способ перехода с предыдущего режима настроек. Такая вот хитрая у меня настройка работы часов!
     Первая пара цифр на рисунке - день (день публикации статьи 8-), вторая пара - месяц и третья пара (браво, вы догадались!) - год. Как и в предыдущем меню, как впрочем, и во всех последующих, кратковременным нажатием на 1 кнопку осуществляется выбор индикатора, а при кратковременном нажатии на 2 кнопку происходит выбор нужной цифры (0-9). Для сохранения введённых данных нужно длительно нажать 2 кнопку. 

     Режим индикации. В него можно попасть из предыдущего меню, опять длительно нажимая 1 кнопку. Этот режим позволяет убрать секунды, и, при желании, вместо них показывать день недели. Первоначально меню имеет такой вид (это часы-минуты-секунды):
     Если ежесекундно меняющиеся секунды тревожат вашу нежную нервную систему, кратковременным нажатием на 1 кнопку, вы можете лишить себя возможности их лицезреть (хотя, может, стоит обратиться к психиатру?):
     Если ещё разок нажмёте на 1 кнопку, то можете на месте исчезнувших секунд показывать день недели (для того, чтобы не сбить пользователя с толку обилием всяких циферок, я в этом режиме специально отображаю только нули!):
     Важный нюанс! Для сохранения выбранного режима индикации длительно нажимать на 2 кнопку не нужно!!! Просто перебираете оставшиеся режимы настройки часов, пока не выйдете в режим работы часов. Или же ждёте 10 секунд, ничего не нажимая.
     И ещё пара возможных режимов:
     Следующий режим - режим настройки времени снижения яркости газоразрядных индикаторов и светодиодной подсветки. 
     Этот режим позволяет настроить время в часах и минутах (первая и вторая пара индикаторов соответственно), при наступлении которого яркость индикаторов и светодиодной подсветки будет снижаться до заданной (последняя пара индикаторов). Подходит для тех, кому яркий свет из недр комнаты наводит параноидальные мысли о присутствии пришельцев. 5-й индикатор характеризует уровень яркости неоновых газоразрядных индикаторов (всего 5 уровней), а 6-й индикатор - уровень светодиодов (всего 6 уровней яркости). Данные значения, что приведены на рисунке, уже установлены по умолчанию. Слишком низкий уровень яркости индикаторов я делать не стал, т.к. из-за особенностей работы программы (некоторых нюансов реализации процедур прерываний 2-х таймеров) иногда наблюдалось мерцание ламп, а полностью переделывать уже немаленькую программу не очень-то и хотелось). Светодиодную подсветку можно полностью отключить (уровень яркости "0"). Само снижение яркости происходит плавно и не напрягает зрение (если только в это время не нажмёте какую-нибудь кнопку, тогда установка яркости произойдёт моментально). Для сохранения выбранного режима индикации длительно нажимать на 2 кнопку не нужно!!!

     Следующий режим - это настройка времени увеличения яркости индикаторов и подсветки (естественно, и их уровня):
     Настройка режима идентична предыдущему, за исключением только того, что по умолчанию стоит 6.00 утра и уровни яркости 1(для ламп) и 1(для светодиодов). Для сохранения выбранного режима индикации длительно нажимать на 2 кнопку не нужно!!!

     Последний режим настроек стандартного меню - настройка хода часов. Позволяет ввести суточную и/или декадную поправку в секундах в пределах -9...+9 секунд (с шагом в 1 секунду). Просто проверьте, насколько часы отстают или опережают эталонное время (интернет-сайты точного времени в помощь!) за сутки, и внесите эту поправку. А потом засеките уход времени за декаду (10 дней то есть) и введите уже эту поправку. В меню на рисунке - первая пара индикаторов, это  область для настройки суточной коррекции времени, вторая пара (5-й и 6-й индикаторы) - рабочая область для настройки декадной коррекции времени.
     Выбор нужной области для введения поправки осуществляется кратковременным нажатием 1 кнопки. Увеличение значения поправки выполняется кратковременным нажатием на 2 кнопку, а уменьшение значения - долгим нажатием на 2 кнопку. Хитро, правда? Сам в шоке, как до такого додумался?! При этом, если поправка в секундах со знаком "+", то данные буду выводиться на 1-м или 5-м индикаторах (в зависимости от того, суточную или декадную поправку вы юзаете!), а если поправка со знаком "-", то данные будут выводится на 2-м или 6-м индикаторе. Пример на рисунке говорит о том, что никаких поправок не вводилось. Введённые изменения, как и в предыдущих трёх режимах, сохраняются автоматически. А теперь делаете длительное нажатие на 1 кнопку, и, О, чудо! Вы в обычном режиме работы часов!!!
     Коррекция времени выполняется в 23 часа 57 минут и 20 секунд каждого дня, естественно, часы при этом должны быть включены в сеть и работать!
     Но на этом злоключения с настройками ещё не закончены... Итак, позвольте Вам представить - быстрое меню!
     В него вы попадёте при длительном нажатии 2 кнопки
     Первым режимом в этом меню является выбор времени срабатывания будильника:
     В примере показано время настройки будильника 10 часов 30 минут. Часы и минуты настраиваются так же, как описано выше в режиме стандартного меню. Цифра 4 - это показан текущий день недели (четверг, в данном случае). Это значение вы поменять не можете, оно просто так, для красоты, чтобы пользователь не забыл, какой сегодня день

     При следующем длительном нажатии 2 кнопки вы попадёте уже в режим настройки срабатывания будильника по дням недели:
     Выбор нужного индикатора (дня недели) осуществляется кратковременным нажатием на 1 кнопку. А вот уже активацию дня срабатывания (или разрешение срабатывания в нужный день) выполняете кратковременным нажатием на 2 кнопку. На фото, мой будильник настроен на вторник (2) и субботу (6). А как же воскресение, спросите вы?! Спать надо в выходной день, нехрен будильник ставить!!! Шутка! При переборе индикаторов 1 кнопкой, после выбора 6-го индикатора, меню выбора дней недели смещается влево на 1 разряд, и самый крайний разряд уже будет воскресеньем:
     И последний режим быстрого меню - это меню регулировки яркости ламп и подсветки.
     Этот режим позволяет установить яркость газоразрядных ламп и подсветки в любой момент, при этом, введённые значения уровней яркости сохранятся (перезапишутся) в режимах настройки времени снижения или увеличения яркости ламп и светодиодов стандартного меню (в зависимости от времени ввода данных - день это или ночь (умный программа это узнает!)). Второй индикатор на фото показывает 3-й уровень яркости индикаторов, а четвёртый индикатор показывает 4-й уровень яркости светодиодной подсветки.
     На этом грузить ваш головной мозг настройками режимов работы часов прекращаю (длительное нажатие на 2 кнопку или 10 секунд безделья и опа! - Опять стандартный режим работы часов!). Погружу напоследок настройками будильника.
     Включение или отключение будильника происходит в режиме показа текущего времени.
     Будильник имеет четыре режима:
- отключено (было бы прикольно без него, правда?);
- режим одноразового срабатывания;
- режим постоянного срабатывания;
- режим срабатывания по дням недели.
     Для выбора режима работы будильника нужно кратковременно нажимать 2 кнопку.
     При первом нажатии:
     При этом в правой нижней части 6-й лампы загорится точка, говоря о включении этого режима. В этом режиме будильник срабатывает всего один раз и сбрасывается, при этом установка по дням недели не нужна!
     Следующий режим будильника:
     Вдобавок к первой точке загорается точка в нижней правой части 1-й лампы. В этом режиме будильник будет срабатывать каждый день в установленное время, но опять-таки, без учёта дней недели.
     И последний режим рабудильника:
     Тут остаётся гореть только точка в нижней правой части 1-й лампы. Этот режим будильника уже требует настройки по дням недели. Если брать в пример рассмотренный выше режим настройки будильника по дням недели в быстром меню, то срабатывание будет происходить в установленное время каждый вторник, субботу и воскресенье.
     Теперь уж точно, с режимами работы часов покончено... Наверное вам стало ясно, почему я не сделал про Nixie clock одну цельную статью сразу :-)
     А! И ещё! Если вам случайно доведётся 10 или 25 числа любого месяца в 12 часов ночи взглянуть на часы и увидеть при этом непонятную картину с хаотичным перебором цифр, не следует впадать в панику по поводу посещения вас потусторонними силами - это просто включился режим очистки электродов ламп, продлевающий срок их службы.
     Желающих покритиковать, попинать или поспрашать по данным часам - прошу на ветку на форуме.    
     The End!!!


Опубликовано 23.10.2014
© Igoryosha, 2014
 
 
Назад к содержимому | Назад к главному меню