Двоичные часы схема. Простые бинарные часы на микроконтроллере. Схема. Достоинства бинарных часов

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

Схема часов


Часы выполнены на микроконтроллере atmega8 .

К будущим часам на этапе создания сразу были предъявлены следующие требования:

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

В качестве микросхемы часов реального времени - доступная DS1307. Также параллельно линиям питания вблизи МК и на входе питания установлены неполярный конденсаторы 100 нФ и полярный (танталовый) на 47 мкФ. Все резисторы и конденсаторы - в SMD-корпусах типоразмера 0805. Из выводных компонентов - лишь светодиоды, колодка для батарейки и кнопки настройки. Кнопки - любые без фиксации; для корпусного варианта подойдут кнопки с длинными "пимпочками", например такие:

Резисторы R1..R6, R14..R18 могут варьироваться в достаточно широких пределах. Габариты светодиодов значения не имеют, однако корпус и плата рассчитаны на 5 мм круглые светодиоды. "Reserved port" - вывод на плате, который предусмотрен на плате для потенциального расширения функционала часов, например, добавления динамика.

Ниже представлена печатная плата устройства:


Так как число различных связей между светодиодами и МК достаточно велико, а большое число "висячих" перемычек делать не хотелось, устройство реализовано на двусторонней ПП. Толщина стеклотекстолита - 1,5 мм, габаритные размеры платы - 80 х 50 мм. Плата с органами управления (пятью кнопками) выполнена отдельно и будет представлена ниже. На плате дополнительно находятся (не указаны в схеме): разъем для подключения питания + программатора; дополнительный отверстия для подключения проводом питания; резистор в цепи сброса; пятачки для конденсаторов в цепи часового кварца (про них будет сказано ниже).

Плата изготовлена на фрезерном станке с ЧПУ, что позволило получить практически заводское качество. Фото собранной платы представлено ниже:


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

Плата с органами управления соединяется основной при помощи семипроводного шлейфа (2 - питание, 5 - кнопки); размер - 68 х 22 мм.

После сборки платы и прошивки МК осталось выполнить последний пункт - создать красивый корпус для устройства. Ввиду наличия фрезерного станка с ЧПУ, было принято решение вырезать стенки из стеклотекстолита толщиной 1,5 мм и соединить их между собой при помощи пайки; переднюю панель - из алюминия толщиной примерно 1 мм. Общая длина корпуса - 104 мм, высота (с ножками и кнопками) - 77 мм, толщина - 25 мм. Разметка корпуса со всеми отверстиями находится в одном файле с печатной платой. Боковые, верхняя и нижняя стенки соединены друг с другом при помощи латунных стоек под винт М3:

Естественно, предварительно у стоек была удалена винтовая часть. Разные стадии результата сборки представлены ниже (последнее фото было сделано уже после окончательной сборки, поэтому явно видны следы краски):


Плата с кнопками крепится к верхней панели на две стойки (с одной стороны такой стойки - гладкая поверхность, с другой - винт М3) при помощи гаек, для этого на плате предусмотрены отверстия. Высота стоек компенсирует высоту кнопок, поэтому над корпусом последние возвышаются незначительно:


Лицевая сторона передней панели была обработана мелкозернистой наждачкой, затем пастой ГОИ. Обратная сторона, наоборот, обработана грубой наждачкой для крепления к боковым стенкам через 5 мм деревянные бруски при помощи эпоксидной смолы. В задней стенке предусмотрен micro-USB разъем для подачи питания, а также отверстие для потенциального динамика; крышка крепится на вышеупомянутые латунные шестигранники при помощи четырех винтов М3 х 15 мм.



Торцевые и задняя стенка была окрашены автомобильной краской из баллончика.

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

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


Правильное собранное устройство в наладке не нуждается и начинает работать сразу. Настройка времени осуществляется следующим образом:

  • примерно на 2,5 с необходимо зажать кнопку "0"SEC/SET (находится над секундами). После этого счетчик секунд сбросится в ноль, часы остановят ход;
  • затем при помощи кнопок настройки времени необходимо установить нужное время;
  • затем нажать кнопку "0"SEC на 2,5 с; часы возобновят свой ход с обновленным временем.

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

В заключении хочется описать следующую проблему (для опытных радиолюбителей). Не всегда часовые кварцы бывают надлежащего качества. Может получиться так, что частота вашего кварца отличается от заявленной на несколько герц. Результатом такого отклонения является плохая точность хода: так, отклонение от «эталонной» частоты на 2 герца приводит к отставанию в 5,27 секунд в сутки, или две с половиной минуты в месяц.
Частоту часового кварца можно подстроить, путем установки последовательно или параллельно кварцу конденсатора емкостью в несколько пикофарад. Таким образом, автору удалось снизить разницу частот до 0,1Гц, что приводит к гораздо меньшей погрешности – 7 секунд в месяц.

Проект в Proteus и прошивка с исходниками находится в архиве-скачать

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


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

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

Изначально бинарные часы были созданы с целью проведения научных экспериментов. Позже, в 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 представлены как женские, так и мужские коллекции.


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

Наташа

Началось все с того что захотелось сделать какое-нибудь полностью законченное устройство на микроконтроллере 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).

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

Результат

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

Файлы

Исходные коды прошивки, схематика и разведеная плата находятся в этом репозитории на GitLab .

В качестве заключения

В общем, для первого устройства, думаю, получилось весьма неплохо.

Если вы найдете какие-то неточности в этой статье, или по-вашему что-то следует описать более подробно - пожалуйста, пишите в комментариях.

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

Шаг 1: Что же такое бинарные часы?

Для начала вспомним, что же такое бинарное (двоичное) число – это число представленное в двоичной системе исчисления, числовыми значениями, что используют всего два символа: 0 (ноль) и 1 (единица).

Бинарные часы – это часы, что отображают время в двоичном формате. В проекте используются 6 колонок светодиодов для отображения нулей и единиц. Каждая колонка отображает одну цифру/разряд, такой формат известен, как двоично-десятичное число (ДДЧ). Каждая линия отображает степень двойки, от 2^0 (или 1), до 2^3 (или 8). Поэтому всё, что нужно сделать при чтении информации с часов – просуммировать значения колонок с включенными светодиодами. Например, в первой колонке включены 4-й и 1-й светодиоды. Прибавляем 8 к 1 и получаем 9 (количество секунд равное 9). Следующая колонка десятые секунды, в ней светится только 3-й светодиод, поэтому общее значение будет равно 49 секундам, точно также с минутами и часами. Пожалуйста, отметьте следующее, что часы отображают время в 24-х часовом формате.

Шаг 2: Составные части

  • Arduino Pro Mini 328 5 V использовал такую плату, но фактически можете использовать любую другую. Если вы ни разу не использовали Pro Mini, то наверняка вам будет нужен CP 2102 (программатор) для подключения платы к компьютеру;

  • DS 1302 — модуль часов реального времени ;

  • 20-ть 10 мм диффузных «тёплых» светодиодов (советую брать с запасом);

  • 20-ть резисторов с номиналом сопротивления 10Ω;

  • 2 тактовые кнопки;

  • 2 резистора с номиналом сопротивления 10kΩ (используются, как нагрузочные резисторы).

Шаг 3: Изготавливаем прототип

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

Шаг 4: Корпус

Корпус самоделки (состоит из двух половинок) будет изготовлен из дерева. Оно будет контрастно смотреться на фоне бинарных часов и придаст поделке ретро стиль.

Шаг 5: Схема

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

Шаг 6: Код

За основу кода взят пример с Arduino Playgroud post для модуля часов DS1302. После чего были внесены изменения для отображения времени на светодиодной матрице.

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

Чтобы понять, что такое двоичная система счисления, запустим в компьютере имеющуюся в операционной системе Windows программу "Калькулятор". Поскольку в различных версиях системы эти программы различаются, здесь будем рассматривать ту, которая входит в состав Windows XP Запустив программу, найдите в её окне и нажмите мышью экранную кнопку "Вид", затем в выпавшем списке выберите "Инженерный". После этого к прежним простейшим функциям калькулятора добавится множество других, позволяющих производить сложные вычисления. Слева под индикатором появится переключатель системы счисления: "Hex" (шестнадцатеричная), "Dec" (десятичная), "Oct" (восьмеричная) и "Bin" (двоичная). Сразу после запуска программы он находится в положении "Dec". Это означает, что все исходные данные для вычислений и их результаты будут представляться в привычной для нас десятичной системе счисления.

Наберите для примера число 58, нажав на соответствующие цифровые кнопки. Если теперь перевести переключатель в положение "Bin", щёлкнув мышью по соответствующей надписи, то в окне результата цифры 58 сменятся на 111010. Это то же самое число, представленное в двоичной системе счисления. Чтобы убедиться в этом, можно воспользоваться таблицей, поясняющей принцип формирования двоичных и десятичных чисел. Двоичные разряды, в отличие от десятичных, могут принимать только два значения — 0 и 1. Веса двоичных разрядов увеличиваются справа налево в два раза, а не в 10 раз, как в десятичной системе.

Двоичная система исчисления широко используется в цифровых устройствах, поскольку позволяет обойтись простыми логическими элементами, различающими только два значения — 0 и 1. Сегодня многие фирмы выпускают такие часы. Чтобы убедиться в этом, достаточно поискать в Интернете фразу "Часы двоичные".

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

Схема часов показана на рис. 1. Отсчёт времени ведёт и выводит его на светодиоды микроконтроллер DD1 . Его тактовая частота 32768 Гц стабилизирована низкочастотным "часовым" кварцевым резонатором ZQ1. Питается устройство от литиевого элемента G1 напряжением 3 В. Как известно, такие элементы отличаются минимальной саморазрядкой и способностью работать при пониженной температуре. Конденсатор С1 подавляет высокочастотные импульсы. Благодаря низкой тактовой частоте микроконтроллер потребляет небольшой ток, что делает возможной длительную эксплуатацию часов без замены элемента питания.

К выходам микроконтроллера RA0— RA4, RB5, RB6 через ограничительные резисторы R1—R7 подключены светодиоды HL1—HL7. Шесть из них (HL2— HL7) показывают время, на них можно отобразить числа от 0 (все выключены) до 63 (все включены). Это позволяет вывести по очереди число часов от 0 до 23 и минут от 0 до 59. Около светодиодов указаны веса двоичных разрядов, которым они соответствуют.

Включают индикацию часов или минут соответственно кнопками SB1 и SB2, соединёнными с входами RB0 и RB1 микроконтроллера. Так как индикация включается всего на несколько секунд, в течение которых кнопка удерживается нажатой, энергия элемента питания расходуется экономно, он служит длительное время. Кнопкой SB3, подключённой к входу RB7 микроконтроллера, производят корректировку времени. Это следует делать только в начале очередного часа, так как в процессе корректировки счётчики минут и секунд обнуляются.

Светодиод HL1 при нажатой кнопке SB1 или SB2 вспыхивает каждую секунду. Он служит индикатором активности устройства и позволяет убедиться в его работоспособности при нулевых значениях часов или минут. Если бы его не было, возникала бы неприятная ситуация, когда при нажатой кнопке ни один из светодиодов не подаёт "признаков жизни".

Вывод 4 микроконтроллера, обычно служащий входом его установки в исходное состояние MCLR, в данном случае сконфигурирован как обычный дискретный вход RA5. Начальная установка при включении питания производится внутренними средствами микроконтроллера. Для исключения случайных помех вход RA5 соединён с общим проводом. Остальные линии порта A программа конфигурирует как выходы.

Линии RB0, RB1, RB7 порта B она конфигурирует как входы и подключает к ним внутренние резисторы, поддерживающие на этих входах высокий логический уровень (при отпущенных кнопках). Остальные линии порта B конфигурируются как выходы. В завершение процедуры инициализации программа по очереди включает на секунду каждый светодиод. Это позволяет оценить правильность монтажа и убедиться в работоспособности программы.

Счёт времени в микроконтроллере DD1 ведёт встроенный таймер T1. Программа настраивает его так, что он каждую секунду генерирует запрос прерывания. Подпрограмма-обработчик прерывания формирует в оперативной памяти микроконтроллера значение текущего времени — секунды, минуты и часы.

Обработчик прерывания при каждом вызове проверяет также логические уровни на входах RB0, RB1 и RB7, зависящие от состояния кнопок SB1—SB3. При низких уровнях на входах RB0 или RB1 включается соответственно индикация часов или минут. При низком уровне на входе RB7, свидетельствующем о нажатой кнопке SB3, и одновременно низком уровне на одном из входов RB0 или RB1 производится корректировка времени. Так сделано для уменьшения вероятности сбоя хода часов в результате случайного нажатия на кнопку SB3.

Программа микроконтроллера небольшая по размеру и несложная. Без всяких изменений она может работать как в микроконтроллерах PIC16F628A, так и в PIC16F628. Исходный текст программы, приложенный к статье, снабжён подробными комментариями, позволяющими разобраться в алгоритме работы и даже усовершенствовать программу. Например, ввести индикацию секунд или режим секундомера. Для этого нет необходимости менять схему часов, так как можно организовать включение этих функций одновременным нажатием на кнопки SB1 и SB2.

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

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

Часы собраны на фрагменте макетной платы, как показано на рис. 2. Резисторы (для поверхностного монтажа) смонтированы на обратной стороне платы. Светодиоды FYL-3014SRC можно заменить другими. Чтобы убедиться в пригодности светодиода, подключите его к источнику напряжения 3 В через резистор 390 Ом и оцените яркость свечения.

Конденсаторы, резисторы, кнопки — любые малогабаритные. Желательно, чтобы кнопка SB3 была с укороченным толкателем. Его конец не должен возвышаться над поверхностью корпуса часов и даже быть утоплен, чтобы нажать на него было можно только каким-либо заострённым предметом. Такое конструктивное решение служит дополнительной к программной защитой от случайного нажатия на кнопку.