Войти
Идеи для бизнеса. Займы. Дополнительный заработок
  • Конвенции Международной организации труда (МОТ) в регулировании трудовых отношений Конвенция мот трудовые отношения
  • Как керосин стал лекарством и стоит ли его применять
  • Что такое оперативное время при нормировании
  • Закупка продуктов питания: пошаговая инструкция
  • Личностные компетенции сотрудников: условия формирования и развития Примерами влияния через компетентность являются
  • Исполнительный директор. Обязанности и права. Обязанности исполнительного директора. Образец должностной инструкции Должностная инструкция исполнительного директора образец
  • Бинарные часы схема. Бинарные часы на базе Arduino своими руками. Зачем такие сложности

    Бинарные часы схема. Бинарные часы на базе Arduino своими руками. Зачем такие сложности

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

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

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

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

    Добрый день, уважаемые радиолюбители. Представляю Вашему вниманию бинарные , схему их нашёл на радокоте, только изменил прошивку под кварцевый резонатор на 7,2 МГц (т.к уже давно он ловил пыль на полке и не знал куда его применить, переделал плату, т.к. автор разработки её развёл на мой взгляд не совсем грамотно (надеюсь он не обидится на мои слова), добавил на линию питания ионистор - это такой конденсатор большой ёмкости, на 0,47 Фарада

    (на фото он чёрный, прямоугольной формы, отпаяный из какой-то автомагнитолы), чтобы не сбрасывалось время в моменты переключения реле UPS (именно в него я собираюсь встроить эти часы), и стабилизатор 78L05, так как в моём бесперебойнике нет напряжения 5в (вся логика в нём питается от 12в). А что? Как-то слишком просто смотрелся UPS, а тепер будет время показывать и ещё и помогать мыслить двоичным кодом, что не даст мозгу атрофироваться.


    Надеюсь все знают как переводить числа из десятеричных в двоичные? На всякий случай повторю. Четырьмя битами можно передать число от 1 до 15, цена битов считается справа налево, т.е так 8_4_2_1, как видно, цена более старщего бита равна удвоеной цене более младшего. Пример: переведём 5 из десятичной системы исчисления в двоичную, получится 0_1_0_1, т.е складываем цену битов равных логической еденице. А теперь наоборот 1_0_0_1 будет 8+1=9. Усвоили? Отлично.


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

    Небольшое полминутное видео работы часов

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

    Двоично-десятичный режим

    Расшифровка

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

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

    Первый ряд огоньков в столбце, отражающем часы, показывает первую цифру, десятки, а второй, вторую цифру - единицы. Каждый ряд содержит в себе от двух до четырех огоньков, каждый из которых подразумевает степень двойки. Так самый нижний огонек представляет 2 в степени «0». Такое значение принимается за единицу.

    Второй огонек представляет 2 в степени «1», что принимается за двойку.

    Третий огонек символизирует 2 в степени «2», т.е. обозначает четыре. Ну и четвертый огонек отображает 2 в третьей степени, что расшифровывается как восемь (см. изображение).

    Теперь, когда вы имеете представление о работе бинарных часов, попробуйте определить, сколько часов показывают бинарные часы на изображении. Вы видите, что в первом ряду столбца, отражающего часы, горит один огонек. Помним, что первый огонек отображает 2 в степени «0» и читается как единица. Далее во втором столбце не горит ни один огонек, соответственно, это читается как нуль. Исходя из полученных данных, можно сделать вывод, что часы на изображении показывают десять часов. Только помните, что часы отображают время в режиме суток, поэтому если вам неудобно, отнимайте двенадцать, когда часы показывают тринадцать и более часов. К примеру, если часы показывают пятнадцать, то вы можете смело считать, что это три часа.

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

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

    Результат

    Теперь сопоставим значение первого и второго ряда столба и получим значение 49. Таким образом, часы на изображении показывают время 10:37:49.

    Подлинный бинарный (двоичный) режим.

    Расшифровка показателей

    Способ расшифровки бинарных часов, которые имеют всего два ряда совершенно такой же, как и при двоично-десятичном режиме. Однако есть один нюанс, теперь в каждом ряду имеется лишь одна строка. Огоньки в верхней колонке соответствуют принципу степеней двойки: 1, 2, 4, 8. А вот в нижней колонке вы можете заметить не четыре огонька, а шесть. Не стоит пугаться, ведь принцип и во второй колонке соблюден, просто добавлено несколько значений: 1, 2, 4, 8, 16, 32. Нет необходимости добавлять больше шести огоньков, ведь следующее значение будет 59, которое можно записать так, что будет гореть первый, второй, четвертый, пятый и шестой огоньки.

    Определить часы

    Теперь попробуйте определить, сколько часов показывают часы на изображении. Вы видите, что горят первый и второй огоньки. Зная о степенях двойки в бинарных часах, можно определить, что первый огонек означает цифру один, а второй, соответственно, двойку. Сложим оба показателя и получим цифру «3».

    На представленном изображении часы имеют два ряда огоньков, однако вы должны помнить, что могут быть часы и со столбцами. Принцип определения времени по таким часам будет таким же, как и в этом случае. Главное помните о двоичной системе исчисления, которая подразумевает только две цифры для шифрования «0» и «1». Так показатели, которые вы только что определили, в двоичной системе будут выглядеть, как 0011, что также будет равно значению «3».

    Определить минуты

    Используя описанную технику, по часам на изображении можно видеть, что горят первый, четвертый и пятый огоньки. В двоичной системе это будет выглядеть, как 011001. Вспоминая о степенях двойки, можно сделать вывод, что первый огонек показывает «1», четвертый «8», а пятый, соответственно «16». Сложим все показатели и получим значение «25».

    Определить секунды

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

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

    Эти наручные электронные часы показывают время в двоичной системе, поскольку для этого требуется меньше светодиодов для отображения времени, чем у обычных цифроиндикаторных часов, да и оригинальность будет на уровне. Распространённый кварц 32С417 на 32.786 кГц был использован, чтобы PIC16F527 запустить в режиме низкой мощности и помочь повысить точность хронометража. Для ношения на запястье руки использовался подходящий матерчатый ремень.

    Микроконтроллер PIC16F527 тут использовался потому, что он имеет самый маленький из доступных пакетов. Для питания часов подходят батареи типа CR2032 в специальном держателе. Эта батарея имеет приличную емкость, хотя она размером всего с монету. Чтобы уменьшить площадь печатной платы и стоимость конструкции, было выбрано одну-единственное гасящее сопротивление для всего блока SMD светодиодов.

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

    А стандартный 20 мм ремешок как раз помещается внутри вырезов.

    Алгоритм работы часов

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

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

    Что это такое? По сути, бинарные часы – это такие часы, где кардинально изменён способ представления информации – не привычными нам цифрами, а в двоичном коде. Хотя, конечно, немало бинарных часов и с цифрами, но отображается время совсем не так, как в обычных часах. В бинарных для индикации времени применяют светодиоды, потому их ещё называют диодными часами . Время на таких часах поначалу определять непросто – либо колонки цифр, либо вовсе просто светящиеся точки, расположенные в странном порядке на циферблате. Однако, освоившись, можно легко читать время по этим часам. А вот непосвящённые этого сделать не смогут! В этом есть определённое удовольствие – обладать стильными часами и в чём-то уникальными знаниями.

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

    Black Rock

    Где купить: inter-time.ru
    Цена: 1850 рублей

    На первый взгляд, их циферблат наводит на ассоциации с фильмом “Матрица”, однако, это лишь первое впечатление. Четыре вертикальных колонки цифр от 0 до 9 отображают: две левые – часы, а пара правых – минуты. Таким образом, время читается справа налево. На фото, как нетрудно определить, часы показывают 5:27. Дополнительные значки вверху отражают всю остальную информацию: солнце соответствует отображению дня недели и даты, а доллар означает, что на дисплее показывается год. Бокал служит индикатором наступления второй половины дня. Для того, чтобы увидеть время, просто нажимается кнопка. Это позволяет экономить энергию батарейки.

    А в этих бинарных часах цифр нет – необходимо считать светящиеся точки в столбцах самостоятельно.

    Fashion Star

    Где купить: inter-time.ru
    Цена: 1600 рублей

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

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

    Futurama

    Где купить: inter-time.ru
    Цена: 1700 рублей

    Индикаторы могут располагаться на циферблате как угодно. Например – дугами. Эффектно и удобно.

    Flash Metal

    Где купить: inter-time.ru
    Цена: 1600 рублей

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

    Mickey Stile

    Где купить: inter-time.ru
    Цена: 1200 рублей

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

    Delta V2

    Где купить: leddirect.ru
    Цена: 1700 рублей

    Кстати, в этом магазине есть немало очень интересных бинарных часов, которые способны понравиться самым взыскательным ценителям бинарного времени.

    Ну а тем, кто достиг истинного мастерства в определении времени по бинарным часам, будут особо интересны часы

    Где купить: inter-time.ru
    Цена: 1550 рублей

    Для “непосвящённых” будет очень непросто понять, сколько всё-таки времени показывают такие часы. Для этого есть отличная и наглядная расшифровка

    Определять время по ним, зная этот простой принцип, совсем не сложно.

    И особо эффектно смотрятся часы c зеркальной поверхностью дисплея, под которой находится сетка с 27 диодами.

    Где купить: inter-time.ru
    Цена: 1400 рублей

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

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