Оценка 1 Оценка 2 Оценка 3 Оценка 4 Оценка 5

Идея

Началось все с того что захотелось сделать какое-нибудь полностью законченное устройство на микроконтроллере AVR. Выбор пал на бинарные часы, т.к. они просты в изготовлении и достаточно эффектно смотрятся. А еще потому что мне всегда нравился плазмоид бинарных часов из KDE который выглядит вот так:

Что такое бинарные часы?

Для тех кто не знает что такое бинарные часы и как по ним определить время, сделаю небольшое отступление. Бинарные часы это просто часы которые показывают время в двоичной (или бинарной) системе счисления, вместо привычной нам десятичной.

Бинарные часы бывают разные (как в общем-то и обычные часы) - с разным количеством и расположением индикаторов, с секундами или без, с 24-х или 12-и часовым форматом времени и т.д. Я решил остановиться на варианте максимально похожем на вышеупомянутый плазмоид из KDE:

Часы состоят из шести вертикальных колонок - две колонки на часы, две на минуты, и две на секунды (слева на право). Каждая колонка по сути представляет собой одну цифру (т.е. по две цифры на часы, минуты и секунды).

В часах четыре горизонтальных строки, так как нам нужно уметь показывать цифры от нуля до девяти (по крайней мере для младшего разряда), а двоичное представление девятки - 1001, содержит четыре разряда (бита). Младший разряд находится снизу.

Проще всего понять какое время показывают часы анализируя "циферблат" слева на право, снизу вверх. Запишем значение двоичного числа представленного самым левым столбцом часов изображенных на картинке выше (условившись что горящий индикатор обозначает единицу, а потухший - ноль): 0010 в двоичной системе счисления это 2 - в десятичной. Аналогичным образом запишем значение второго столбца: 0001 в двоичной системе счисления (как и в десятичной), или просто единица. То есть на часах 21 час. Точно так же можно прочитать что часы показывают 35 минут и 28 секунд. Немного практики и читать время с бинарных часов будет получаться почти так же быстро как и с обычных.

Реализация

Итак, с идеей понятно, приступим к реализации.

Начнем с индикатора ("циферблата") - который представляет собой решетку из светодиодов.
Поскольку в часах 4 горизонтальных и 6 вертикальных рядов, общее количество необходимых светодиодов - 6 * 4 = 24. На самом деле, можно обойтись меньшим количеством светодиодов, т.к. не все разряды будут задействованы - например старшая цифра часов (самый левый столбец), может показывать число не больше двух (при двадцати часовом формате времени), а значит можно сэкономить целых два светодиода. Но я этого делать не стал и поставил все 24 светодиода, т.к. хотел (в будущем) использовать эти часы для показа простых текстовых сообщений.

Для настройки времени потребуются кнопки. Их три: первая кнопка переводит часы в режим установки времени и обратно. Вторая кнопка, выбор разряда, переключает столбец в котором в текущий момент настраивается время. И наконец третья увеличивает время в выбранном столбце на единицу.

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

Схема и печатная плата

Схема достаточно стандартная: микроконтроллер, питание, сброс, разъем для подключения программатора. К TOSC1 и TOSC2 подключен часовой кварц от которого будут тикать часы. Кнопки настройки времени подтянуты к напряжению питания. Десять выходов на светодиоды (6 столбцов+ 4 строки). На каждую горизонтальную строку подключен резистор для ограничения тока через светодиод.

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

Корпус

Наверное, это самая неинтересная часть. Но, в то же время, именно она заняла большую часть времени.

Сам корпус сделан из деревянных досок скрепленных гвоздями и клеем. После сборки доски были тщательно отшлифованы, вскрыты морилкой и несколькими слоями мебельного лака.

Светодиоды установлены в решетку с перегородками, сделанную из деревянных линеек при помощи лобзика. В каждую ячейку со светодиодом для рассеивания света вставлен кусочек обычной кальки (которая используется для чертежей или выкроек).

К передней части часов приклеено двустороннее матовое стекло. Заднюю часть закрывает крышка на шурупах, из которой торчат кнопки настройки времени.

Программная часть

Программу я решил писать на ассемблере. Не потому что это самый удобный язык разработки, а исключительно в образовательных целях. Исходные коды можно найти ниже в архиве.

Весь код описывать не буду, т.к. он достаточно подробно откомментирован. Опишу только ключевые моменты.

Развертка производится по столбцам, то есть сначала некоторое время горят светодиоды только первого столбца, затем второго и т.д. Происходит это очень быстро и глаз не успевает этого заметить, поэтому создается впечатление что все зажженные светодиоды горят одновременно. Для отображения значения времени в столбце используется макрос DISPLAY_COLUMN . Переключение столбцов осуществляется по таймеру Timer0.

Смена времени происходит раз в секунду по прерыванию переполнения таймера Timer/Counter2. Поскольку частота кварца равна 32768Гц, а предделитель таймера установлен на 128, то переполнение однобайтового таймера будет происходить раз в секунду (32768 / (128 * 256) = 1) , что очень удобно.

Обработка нажатий на кнопки происходит в процедурах button_stop_pressed для кнопки перевода часов в режим настройки и обратно, button_set_pressed для кнопки установки времени и button_switch_pressed для кнопки переключения столбца. Обратите внимание, что в процедуре button_stop_pressed текущее время сохраняется в EEPROM. Это сделано для того что бы время не сбрасывалось если нужно, например, переключить часы в другую розетку (при включении часов время считывается из EEPROM).

Class="eliadunit">

Вся основная "работа", такая как - опрос состояние кнопок, переключения активного столбца развертки и вывод времени происходит в main. Начальная инициализация выполняется в reset.

Результат

То что получилось в результате можно посмотреть на видео ниже. Там же запечатлены и некоторые стадии процесса изготовления.

Возможно, кто-то еще помнит, как выглядели панели управления первых электронно-вычислительных машин (ЭВМ). Сегодня их можно увидеть только на архивных фотографиях. Длинные ряды лампочек, которые мелькали на первый взгляд хаотично – завораживали энтузиастов электроники тех лет.

Представленная в данной статье конструкция бинарных часов поможет воссоздать атмосферу прежних лет.

Принципиальная схема простых бинарных часов показана на рисунке 1. Схема построена на базе микроконтроллера ATmega48. В схеме часов нет внешнего модуля реального времени (RTC), что в свою очередь несколько снижает стоимость устройства.

При возможном сбое питания от внешнего источника, отсчет времени поддерживается встроенной батарей типа CR2032, при этом светодиоды отключаются. Для обнаружения питающего напряжения от внешнего блока питания используется схема с транзистором VT1 (BC847).

Если на клеммах разъема питания есть напряжение, то оно проходит через диод D1 в результате чего транзистор входит в состояние насыщения, а на вход PC0 микроконтроллера подается логический ноль, который запускает работу светодиодов.

Индикация текущего времени (часы, минуты и секунды) реализована с помощью трех линеек светодиодов. Управление светодиодами происходит методом мультиплексирования, что снижает потребление электроэнергии и уменьшает количество используемых выводов микроконтроллера.

Просмотр осуществляется только в формате 24 часа. Для отображения количества минут и секунд необходимо 6 светодиодов, а для часов 5 светодиодов.

Микроконтроллер ATmega48V-10AU способен работать при пониженном питании вплоть до 1,8В, что является большим преимуществом. Кроме того, ATmega48V-10AU потребляет меньший ток. Частота тактового сигнала стабилизируется кварцевым резонатором на 4 МГц, который одновременно является эталоном для отсчета времени.

Установка текущего времени (часы и минуты) осуществляется с помощью кнопок SW2 и SW1 соответственно. Счетчик секунд обнуляется при нажатии на любую из кнопок.

Стоит отметить, что эти кнопки неактивны при работе от резервной батареи, чтобы предотвратить возможность непреднамеренного изменения времени. Часы собраны на односторонней печатной плате размером 103мм×67мм.

При программировании микроконтроллера, необходимо установить работу микроконтроллера от внешнего кварцевого резонатора 4 МГц и отключить деление тактовой частоты на 8 (этот бит называется CKDIV8).

После правильной сборки часы начинают работать сразу и должны показать 00:00:00.

Питание схемы осуществляется от источника питания с напряжением +5 В. Резервное питание – батарея типа CR2032 не является обязательной, она только поддерживает отсчет времени после пропадания питания от сети.

Потребление тока от батареи составляет около 1,5 мА. При емкости аккумулятора порядка 200 мАч, ее должно хватить на 5 и более дней работы микроконтроллера, что является достаточным в типичных ситуациях.

Как уже упоминалось, отображение времени осуществляется в двоичной системе исчисления. Старшие биты расположены слева, а младшие справа. На часах намерено нет подписи часов, минут и секунд, чтобы людям непосвященным было сложно угадать принцип работы часов.

Когда-то очень давно я просила моего друга объяснить мне, что такое двоичная система счисления. Поскольку я девушка, совершенно далекая от всяких технических изысков и тонкостей, друг мой задумался над ответом. «Ну ты знаешь... это как любовь — либо есть, либо ее нет и ничего с этим не поделаешь. В общем, так цифры кодируются. Единицей или нулем. Один — есть сигнал, ноль — нет сигнала».
Вот так и с бинарными часами. Возможно, покрутив их в руках, Вы скажете самому себе: «Ну и напридумывают же всякой ерунды. И что с этим делать?». Либо, (и этот вариант наиболее вероятен) увидев и подержав их в руках, Вы непременно захотите разобраться, что это такое, «с чем его едят», и конечно же захотите их приобрести.
Ну а я со своей стороны и в силу своих технических способностей и возможностей попробую все-таки Вам рассказать (и показать) что же это за зверь такой - бинарные часы.
Итак, как Вы уже поняли, «бинарный» означает двоичный, то есть отображаемый с помощью всего двух элементов. Если Вам все еще непонятно, что это, то вспомните великого «шифровальщика» Самуэля Морзе, использовавшего для передачи букв алфавита посредством телеграфной связи всего два символа — точку и тире.


Современные бинарные часы тоже определенным образом кодируют информацию о дате и времени. Человеку несведущему с первого взгляда будет довольно сложно понять, что же означают все эти безумно мигающие светодиоды. Вы спросите «Какие светодиоды? И где вообще циферблат, стрелки, ну или хотя бы электронные цифры?». Предупреждение: в поисках цифр и стрелок не пытайтесь взломать или вскрыть крышку часов.

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

Изначально бинарные часы были созданы с целью проведения научных экспериментов. Позже, в 1920-1940 годах, японский профессор Хивари работал над решением вопроса забывчивости и рассеянности у лиц пожилого возраста. Несмотря на общеизвестный факт о большой продолжительности жизни японцев, при достижении ими определенного возраста эта проблема становится весьма актуальной. В качестве тренажера для улучшения памяти профессор предложил своим пациентам использовать усовершенствованные им бинарные часы, в которых для отображения времени использовались палочки и точки. Результаты были весьма впечатляющими. Уже спустя три месяца у пенсионеров, использующих в быту такие часы, были отмечены значительные улучшения показателей памяти и внимания.



Таким образом, в настоящее время бинарными часами называют любые часы с нетрадиционным способом отображения времени: с помощью точек, перевернутых цифр или символов. Изобретение и дальнейшее развитие диодных технологий (LED) дало возможность производить наручные бинарные часы с неограниченным количеством диодов для отображения времени.

Безусловно, в настоящий момент бинарные часы, напоминающие предмет экипировки современного космонавта, являются одним из самых незаурядных и возможно даже эксцентричных аксессуаров.

Несомненно, мировым лидером в производстве наручных бинарных часов является Япония, другое было бы просто удивительным. Кроме того, такие часы выпускают некоторые немецкие компании. Ну и «бюджетный» рынок бинарных часов представляет Китай, но как правило, это копии и имитации брендов известных марок.

Мир часовых головоломок от Tokyo Flash. Часы для тех, кто любит задумываться о времени.

«Как Вы думаете, что это?» - спросила на днях я своих друзей и знакомых в социальных сетях, разместив фото одной из последних оригинальных (впрочем, как и всегда) разработок компании Tokyo Flash. Бинарные часы Shinshoku, сделанные в виде браслета из металла, покрытого дырочками, в которых для определения времени необходимо сосчитать количество точек различных цветов. Надо сказать, что выдвигаемые версии были весьма разнообразны, некоторые из них даже заставили меня улыбнуться.


Наручники для заключенных с индикаторами?!
Кольца? Браслет?! Какое-то ювелирное украшение?
Похоже на челнок швейной машины....
Напоминает браслеты-утяжелители для фитнеса....
«Холодно, очень холодно», - отвечала я.
К вечеру подтянулась «продвинутая молодежь»
Может это будильник?
По внешнему виду очень напоминает часы.
Может, это часы? Какие-нибудь специальные? Например для слепых?...
Разрушил интригу мой давний знакомый, программист, несколько лет живущий в Таиланде. «Двоичные часы», - ответил он и поставил улыбающийся смайлик. «Бинарные», - поправила я, и рассказала всем остальным, что это за часы и по какому принципу они работают.
Каждый выпуск бинарных наручных часов, производимых японской компанией Tokyo Flash, строго лимитирован. Некоторые часы выпускаются в качестве корпоративных подарков или сувениров для клиентов и сотрудников по заказу той или иной компании. Каждая модель выпускаемых часов по-своему уникальна и эксклюзива, поэтому снятые с производства и не поступающие больше в продажу образцы часов хранятся в музее, их описание, фото и даже видео можно найти на официальном сайте компании www.tokyoflash.com.


Каждый раз, когда компания Tokyo Flash презентует очередную новинку, часовой мир удивленно ахает, а любители головоломок довольно потирают руки. «Айтишники» и программисты находят очередную тему для обсуждения с коллегами по цеху за чашкой утреннего кофе, а «продвинутые» мужчины точно знают, что они попросят или закажут в подарок на Новый год или очередное торжество своей второй половине.
Никогда заранее не известно, чем вдохновятся дизайнеры компании при выпуске очередной модели часов: последним фильмом про Джеймса Бонда или новым фантастическим триллером. В любом случае, можно только позавидовать их неисчерпаемой фантазии. Часы с названием «1000100101» - чем не аксессуар спецагента ФБР?


А минималистические часы Tokyo Flash, изготовленные с применением стилистических элементов, используемых в кинолентах «Трон» и «Космическая одиссея 2001 года», наверняка теперь будут вдохновлять режиссеров, сценаристов и продюсеров на создание новых фильмов. Я не исключаю вероятность того, что некоторые модели наручных бинарных часов Tokyo Flash могут использоваться в качестве реквизита при съемках какого-нибудь очередной научно-фантастической саги. Интересно, не носит ли такие часы Джордж Лукас, режиссер «Звездных войн»? Лично у меня возникла ассоциация именно с этим фильмом, когда я увидела бинарные часы Tokyo Flash Kisai Satellite Watch.


Какую бы модель наручных бинарных часов компании Tokyo Flash Вы ни выбрали, такой аксессуар в любом случае всегда выделит Вас из толпы. Это отличный способ не только заявить окружающим: «Я не такой, как все», но и создать некий ореол загадочности вокруг своей персоны. В любом случае, такие часы никогда не придадут Вам легкомысленный вид, ведь основной слоган компании Tokyo Flash - «Часы для тех, кто любит задумываться о времени».

Бинарные часы компании The one (Германия) — немецкое качество на службе у инноваций.

Среди моделей наручных бинарных часов немецкой компании The one всегда найдутся экземпляры на самый изысканный и взыскательный вкус. Если Вы отдаете предпочтение вещам, проверенным временем и соответствующим самым высоким стандартам качества, но Вам наскучили привычные часы, отвечающие общепринятым нормам этикета, то возможно Вам стоит обратить взор в сторону бинарных часов компании The one.
К примеру, коллекция Art Edition, разработанная под руководством ведущих дизайнеров Европы, таких как Walter Heidenrich и Romero Britto, известными своими ювелирными украшениями в стиле поп-арт - это яркий образец невероятного сочетания цветов и геометрических форм. Такие часы как нельзя лучше подчеркнут изысканный вкус и помогут в создании персонального имиджа истинным ценителям современного искусства.




Коллекция бинарных часов Gamma Ray, напротив, является классическим образцом сдержанности и элегантности. Модели, выполненные из нержавеющей стали, наилучшим образом подчеркнут стиль их владельца и гарантируют молчаливый восторг со стороны окружающих. Хотя стопроцентной гарантии молчания Вашего окружения я Вам не дам. Думаю, что дамы не удержатся от вопросов. Так что это неплохой повод для знакомства, если Вы еще не успели обзавестись второй половиной. Поверьте мне, женщин всегда восхищают мужчины, умеющие хорошо разбираться в технических новинках.



Несомненно, самые брутальные бинарные часы The one — это часы коллекции Ibiza Ride. Перефразируя известный афоризм, о них можно сказать «Проснулся, оделся, умылся, надел часы The one - и пошел спасать мир». С часами коллекции Ibiza Ride, придающими «терминаторскую» уверенность в себе, Вам по плечу справиться с любыми, даже самыми невыполнимыми задачами предстоящего дня. Это часы для тех, кто ценит свое недешевое время, стиль и индивидуальность.




Компания The one не обделила своим вниманием и любителей классики. Сдержанные, элегантные часы коллекций Kerala Trance и Lightmare являются одними из самых востребованных и популярных.



Кроме того, у The one есть несколько коллекций для слабой половины человечества. Это и вызывающая волнение мужских сердец и зависть подруг коллекция Odins Rage, все часы которой инкрустированы кристаллами Swarovski, и поднимающая настроение коллекция SLIM SQUARE, выполненная в неоновых цветах и украшенная воздушными бабочками.



Бинарные часы немецкой компании Led Watch.

Немецкая компания по производству наручных бинарных часов Led Watch была основана конструктором Адольфом Индермануром. При разработке и дальнейшем производстве часов используются последние научные разработки в области светодиодных технологий.
Часы компании Led Watch представлены в крупнейших городах всего мира и продаются в Англии, Австралии, Франции, Китае, Корее, Тайване, Гонконге, Таиланде, Японии, Малайзии, Сингапуре, Канаде, Турции и США.
Бинарные часы компании компании Led Watch разительно отличаются от своих швейцарских коллег и привлекают в первую очередь немецким качеством стальных циферблатов, нестандартным дизайном и особенным способом подсчета времени. В линейке часов Led Watch представлены как женские, так и мужские коллекции.


Подводя некий итог, могу отметить, что бинарные наручные часы - это то, что никак не назовешь стандартным, банальным и обыденным. Это новый, свежий взгляд на время и способ его отображения. Если учесть тот факт, что постоянное использование бинарных часов способствует развитию и улучшению памяти, то это не просто модный аксессуар, но и способ заботы о своем здоровье. Если Вы хотите жить не только красиво, модно, стильно, ярко, но еще долго и качественно, то бинарные часы — Ваш выбор. И не бойтесь, что Вы не сможете разобраться с этим сложным механизмом отображения времени, спустя пару дней использования таких часов Вы с легкостью будете отвечать на вопрос: «Который час?».

Наташа

Длится уже много веков. За это время каких только способов определения ни было придумано изобретательными людьми - начиная с зависящих от положения Солнца в небе до электронных. Последний писк моды на данный момент - это часы бинарные, совсем непривычные на первый взгляд. Так что же это и как по загорающимся точкам определить, который час? Давайте разберемся в этой интересной новинке получше.

Что такое бинарные часы?

Популярность этих хронометров растет с необыкновенной скоростью. Впрочем, чему тут удивляться, стоит только взглянуть на эту новинку. Оригинальный внешний вид, стильный дизайн, необычный принцип работы - все это позволяет людям с нестандартным видением мира выделиться из толпы.

На своем экране, в отличие от механических или электронных, бинарные наручные часы имеют не стрелки и цифры, а разноцветные светящиеся точки (которые в некоторых моделях мигают).

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

Как они появились?

Первый раз часы бинарные вышли в свет в 2008 году. Именно тогда фирма Anelace представила свою инновационную разработку всему миру. Однако появлению стильных наручных часов с LED-экраном предшествовали годы усовершенствований, проб и ошибок.

Модели-прототипы бинарных часов, созданные еще в начале 20-го века, были огромными махинами с электронными лампами (как, впрочем, и первые компьютеры). Тогда для человека они почти не представляли практического интереса.

С развитием технологий все более широкое распространение получили светодиоды, и в конструкции бинарных часов они заняли место обычных ламп.

Прошли годы, и необычной системой заинтересовался один японский профессор медицины. Его пациентами были пожилые люди, имеющие проблемы с памятью и мозговой деятельностью. Профессор включил в занятия по их реабилитации и часы бинарные в качестве развивающей головоломки. Результат оказался просто ошеломительным!

Зачем такие сложности?

Первый вопрос, который возникает при взгляде на бинарные часы: как пользоваться ими? Поначалу таким вот странным способом может показаться глупой причудой, которая понравится только или совсем уж сдвинутым на почве технологий фрикам, или гениям. Обычно ведь часы нужны для того, чтобы лишь мельком взглянуть на них и узнать время, а с бинарными хронометрами такой фокус не пройдет. Можно даже опоздать на встречу, пока пытаешься считать с них показания.

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

Преимущества

Какую пользу приносят своему владельцу часы бинарные по сравнению с обычными? Ну, для начала, это отличная возможность перед всеми знакомыми (да и просто прохожими) прослыть очень умным и оригинальным человеком. Особенно если на их расспросы ничего не уточнять, а делать загадочный вид в стиле «вам, простым смертным, не понять».

А если говорить серьезно, то бинарные часы - это сразу несколько полезных гаджетов в одном.

  1. Часы. Естественно, по ним можно определять время, иначе какие же это часы?
  2. Игра-головоломка. Позволяет устроить себе развлечение в любой момент, когда заблагорассудится. К тому же разные модели таких часов основаны на немного отличающихся друг от друга системах счисления, что делает их еще интереснее.
  3. Особенно полезен этот гаджет для профилактики старческих умственных отклонений, но и молодым людям он станет отличным мозговым тренажером.
  4. Ультрамодное и современное украшение с инновационным дизайном. И да, эти часы светятся в темноте.

Настройка

Бинарные наручные часы не имеют в своем механизме ни циферблата, ни стрелок. Вместо этого вся информация о и времени выводится на LED-экран с помощью светодиодов. Из-за этого перед пользователем встает насущный вопрос: а как настроить бинарные часы?

Система кодировки может различаться в разных моделях бинарных часов, однако есть некоторые основные моменты, о которых стоит помнить. Обычно у таких хронометров есть 1 или 2 режима: время и, реже, дата, переключающиеся кнопкой. Для настройки нужной величины чаще всего сначала нужно нажать кнопку Set ("Установка"). Мигающие индикаторы покажут, что вы делаете все правильно. Кнопка Select ("Выбор") позволяет переключиться от установки часов к минутам и секундам, а также от месяца к числу.

Чтобы правильно выставить на часах нужные значения, стоит освоить основной принцип двоичной системы счисления. «Вес» каждого разряда можно определить, умножив предыдущий на 2. Получим следующий ряд: 1, 2, 4, 8, 16, 32. Например, чтобы число 110101 перевести в привычный нам вид, нужно сложить «вес» каждого из значимых разрядов. Получим 32 + 16 + 0 + 4 + 0 + 1 = 53.

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

Какие бывают бинарные часы?

Как и большая часть электронных гаджетов, часы бинарные - вотчина японцев и китайцев. Сейчас их производит множество фирм, модели различаются по качеству, однако все их можно разделить на несколько групп по виду отображаемой информации.

  • Хронометры с двумя рядами светодиодов. Один ряд показывает часы, второй - минуты. Кроме того, на экране есть 2 индикатора времени суток (AM и РМ).
  • Часы со светодиодами, расположенными в 6 рядов (по 2 на часы, минуты и секунды). Показывают время в формате HH:MM:SS. Чтобы узнать по ним время, нужно записать показания каждого столбика по порядку, предусмотренному этим форматом.

  • Экран часов может напоминать спидометр с двумя окружностями: внешней, показывающей часы, и внутренней, которая определяет минуты.
  • В некоторых часах имеется по 2 дорожки - справа (часы) и слева (минуты).

Есть и более навороченные варианты бинарных часов. Какой из них выбрать, зависит только от вашего желания и финансовых возможностей.

И разные радиодетали для ознакомления с микроконтроллерами автор решил сделать что-то интересное и одновременно полезное. Имея в запасе большое количество светодиодов, пришла идея создать бинарные часы.

Со стороны электроники бинарные часы не являются особо сложными, но автор усложнил задачу и решил не экономить кнопки и светодиоды. Изначально в проекте должно было использоваться 22 светодиода, 6 кнопок, и одна пищалка. Также была идея собирать часы на Arduino Mega из-за большего количество пинов, но спасением оказались сдвиговые регистры 74HC595.

Материалы:
- Arduino Uno
- 2 полноразмерные макетные платы
- Светодиоды красные 7 шт
- Светодиоды зелёные 7 шт
- Светодиоды синие 6 шт
- Светодиоды жёлтые и белые по 2 шт
- Резисторы 220 ом 25 шт
- Пьезопищалка 1 шт
- Тактовые кнопки 6 шт
- Сдвиговые регистры выходные 74HC595 в корпусе DIP-16 3 шт
- Соединительные провода 90 шт
- Модуль часов реального времени на базе RTC-чипа DS1307

Как всё будет работать.
Существует около 10 видов бинарных часов. Одни показывают время в двоично-десятичном (BCD) формате, другие в виде двоичных чисел. Так как автору не особо нравятся BCD-часы, он решил сделать свои чисто двоичными. Некоторым их сложнее читать, но разница в них невелика, потому что переводить числа из двоичных в десятичные несложно. Также обязательным условием создателя часов являлась индикация секунд на часах.

Вдобавок часы имеют 6 кнопок:
Set - отвечает за режим настройки часов/будильника и сохранение параметра в режиме настройки.
Mode - отвечает за переключение между режимами часов, будильника и таймера.
Up - в настройке часов/будильника/таймера, повышает параметр на один. В будильнике и таймере отвечает за активирование и выключение выбранного режима. При срабатывании сигнала - отключит сигнал будильника/таймера.
Down - в настройке часов/будильника/таймера, уменьшит параметр на один. В таймере приостановит его без сброса отсчёта. При срабатывании сигнала будильника - перенесёт сигнал на 5 минут.
24/12 - изменение формата времени.
Dim - отвечает за включение и отключение светодиодов (когда светодиоды отключены остальные кнопки перестают работать).
Схема положения светодиодов:

Подключение компонентов
Все светодиоды автор будет подключать последовательно и с резистором. Резистор припаивается к одному из выводов светодиоды, не имеет значения к какому. Подключение светодиодов будем происходить через сдвиговые регистры, этот чип имеет 16 контактов. Такое количество контактов позволяет использовать большое количество выводов, занимая на Arduino всего 3 пина.


Распиновка сдвигового регистра 74HC595:
Q0-Q7 - это выводы регистра, к которым будут подключать светодиоды.
Vcc - пин питания на него подадут 5В.
GND - земля соединяемая с GND на Ардуино.
OE - пин отвечает за инвертированную активацию выводов, но использоваться он не будет, его просто замыкают на землю.
MR - инвертированная очистка регистра, управлять им не нужно, поэтому подключатся будет к питанию 5В.
ST_CP - пин отвечает за обновление состояния регистра. При записи состояния на него нужно подать LOW, после записи - HIGH, для обновления состояния выводов. Его нужно подключат к пину на Arduino. Соединить этот пин трёх регистрах можно параллельно.
SH_CP - пин, отвечает за сдвиг на 1 бит регистра. Его нужно подключат к пину на Arduino. Соединяются на микросхемах также параллельно.
DS - на этот пин подаются данные, он подключается к пину на Arduino.
Q7" - этот пин используется для каскадного соединения с остальными регистрами 74HC595.

Схема подключения:

Пьезопищалка будет подключена к третьему пину Arduino последовательно с резистором. Перед включением пищалки в схему автор посмотрел какие пины поддерживают ШИМ, так как для неё это обязательно. На Arduino Uno ШИМ поддерживают 3, 5, 6, 9, 10 и 11 пины.

В подключении кнопок используются резисторы, встроенные в Arduino, при этом одна сторона кнопок подключается к земле, а другая к пинам Arduino.

Так, выглядит итоговая конструкция:

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

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

Работа светодиодов.
Так как обращение к светодиодам происходит через сдвиговый регистр, в первую очередь потребовалось реализовать ещё подпрограммы для светодиодов. Для более просто работы с диодами осуществлён ряд дополнительных функций. Реализованы различные эффекты анимации диодов. Когда часы не настроены - диоды, отвечающие за часы и минуты, начнут мигать (как мигают обычные часы когда не настроены). В светодиодах, отвечающих за секунды, также есть своя анимация, диод может бегать вправо-влево в режиме будильника, или же в режиме настройки часов.

Основной цикл.
Программа настроена на работу следующим образом: часы выводят информацию в зависимости от текущего состояния, и меняют своё состояние в зависимости от использования кнопок, и событий. Выглядит это всё как немалое количество вложенных условий. Состояние диодов обновляется каждый раз после проверки состояния таймеров и кнопок с вызовом их обработчика.

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

Изучив эту проблему, было выяснено что оригинальная Arduino Uno использует керамический резонатор, а ему не хватает точности для измерения времени в длительных сроках. Наиболее рациональным решением была покупка часов реального времени, плюс из-за этого модуля время на часах не будет сбиваться при отключении. Автором был приобретен модуль Grove RTC от Seeed Studio. Он представляет из себя готовую плату с чипом часов. Пины модуля SDA и SCL автор подключил к Arduino на пины A4 и A5, GND к земле. Так как питание 5В занято платой часов подключать модуль было некуда. Автор решил запитать модуль от одного из цифровых пинов, который будет находиться постоянно под напряжением. Также автору потребовалось дорабатывать исходный код и добавить библиотеку часов реального времени.

Сборка часов
Завершив долгую работу над кодом, пришло время придать устройству завершённый внешний вид, и перенести его с макетной платы на печатную. В первую очередь потребовалось сделать разводку для платы. Для этого была использована Fritzing, так как автор уже имел представление о внешнем виде часов, и у него была построена схема устройства. Трассировку платы автор также провёл вручную, на это потребовалось немало времени.
Проект для производства печатной платы:

Производство печатной платы было заказано в Китае. Seeed Studio имеет сервис по производству плат Fusion PCB. Через Fritzing был произведён экспорт файла в формат Extended Gerber, с ним работают многие производители плат. Через две недели автор получил долгожданную плату на почте.

Оставалось только припаять уже немного запылённые детали на плату. Готовый результат после пайки выглядел намного лучше макета на Breadboard.

Автор проекта долго трудился и получил то что хотел - уникальные бинарные часы с таймером и будильником. Используя батарейный отсек часы можно поместить куда угодно. Arduino оправдала ожидания и полностью справилась с поставленной задачей.