Войти
Идеи для бизнеса. Займы. Дополнительный заработок
  • Исполнительный директор. Обязанности и права. Обязанности исполнительного директора. Образец должностной инструкции Должностная инструкция исполнительного директора образец
  • Порядок применения дисциплинарных взысканий
  • Роль руководителя в инновационном управлении А должен ли директор преподавать
  • Управление стоимостью проекта на основе затрат
  • Использование тематических выставок в группе детского сада для социального развития дошкольников
  • Презентация к уроку "как помочь птицам зимой" Распилить я попросил
  • Наручные часы с двоичной системой счисления. Бинарные часы – подарок нового времени. Небольшое полминутное видео работы часов

    Наручные часы с двоичной системой счисления. Бинарные часы – подарок нового времени. Небольшое полминутное видео работы часов

    Доброго времени суток. В сегодняшней статье мы изготовим необычные бинарные часы на базе 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. После чего были внесены изменения для отображения времени на светодиодной матрице.

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

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

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

    Конструкция собрана на микроконтроллере и часов реального времени DS1307 . В качестве индикатора текущего времени использован четырехразрядный семисегментный светодиодный индикатор (ультраяркий, голубого цвета свечения, что неплохо смотрится в темное время, и, заодно, часы играют роль ночника). Управление часами происходит двумя кнопками. Благодаря использованию микросхемы часов реального времени DS1307, алгоритм программы получился довольно простым. Общение микроконтроллера с часами реального времени происходит по шине I2C, и организованно программным путем.

    Схема часов:

    К сожалению, в схеме есть ошибка:
    — выводы МК к базам транзисторов нужно подключать:
    РВ0 к Т4, РВ1 к Т3, РВ2 к Т2, РВ3 к Т1
    или поменять подключение коллекторов транзисторов к разрядам индикатора:
    Т1 к DP1 ….. Т4 к DP4

    Детали, используемые в схеме часов:

    ♦ микроконтроллер ATTiny26:

    ♦ часы реального времени DS1307:

    ♦ 4-разрядный семисегментный светодиодный индикатор – FYQ-5641UB -21 с общим катодом (ультраяркий, голубого цвета свечения):

    ♦ кварц 32,768 кГц, с входной емкостью 12,5 пф (можно взять с материнской платы компьютера), от этого кварца зависит точность хода часов:

    ♦ все транзисторы — NPN-структуры, можно применить любые (КТ3102, КТ315 и их зарубежные аналоги), я применил ВС547С
    ♦ микросхемный стабилизатор напряжения типа 7805
    ♦ все резисторы мощностью 0,125 ватт
    ♦ полярные конденсаторы на рабочее напряжение не ниже напряжения питания
    ♦ резервное питание DS1307 – 3 вольтовый литиевый элемент CR2032

    Для питания часов можно использовать любое ненужное зарядное устройство сотового телефона (в этом случае, если напряжение на выходе зарядного устройства в пределах 5 вольт ± 0,5 вольта, часть схемы — стабилизатор напряжения на микросхеме типа 7805, можно исключить)
    Ток потребления устройством составляет — 30 мА.
    Батарейку резервного питания часов DS1307 можно и не ставить, но тогда, при пропадании напряжения в сети, текущее время придется устанавливать заново.
    Печатная плата устройства не приводится, конструкция была собрана в корпусе от неисправных механических часов. Светодиод (с частотой мигания 1 Гц, от вывода SQW DS1307) служит для разделения часов и минут на индикаторе.

    Установки микроконтроллера заводские: тактовая частота — 1МГц, FUSE-биты трогать не надо.

    Алгоритм работы часов (в Algorithm Builder):

    1. Установка указателя стека
    2. Настройка таймера Т0:
    — частота СК/8
    — прерывания по переполнению (при такой предустановленной частоте вызов прерывания происходит каждые 2 миллисекунды)
    3. Инициализация портов (выводы РА0-6 и РВ0-3 настраиваются на выход, РА7 и РВ6 на вход)
    4. Инициализация шины I2C (выводы РВ4 и РВ5)
    5. Проверка 7-го бита (СН) нулевого регистра DS1307
    6. Глобальное разрешение прерывания
    7. Вход в цикл с проверкой нажатия кнопки

    При первом включении, или повторном включении при отсутствии резервного питания DS307, происходит переход в первоначальную установку текущего времени. При этом: кнопка S1 – для установки времени, кнопка S2 – переход к следующему разряду. Установленное время – часы и минуты записываются в DS1307 (секунды устанавливаются в ноль), а также вывод SQW/OUT (7-й вывод) настраивается на генерацию прямоугольных импульсов с частотой 1 Гц.
    При нажатии кнопки S2 (S4 — в программе) происходит глобальный запрет прерываний, программа переходит в подпрограмму коррекции времени. При этом, кнопками S1 и S2 устанавливаются десятки и единицы минут, затем, с 0 секунд, нажатием кнопки S2 происходит запись уточненного времени в DS1307, разрешение глобального прерывания и возвращение в основную программу.

    Часы показали хорошую точность хода, уход времени за месяц — 3 секунды.
    Для улучшения точности хода, кварц рекомендуется подключать к DS1307, как указано в даташите:

    Программа написана в среде «Algorithm Builder».
    Вы можете, на примере программы часов, ознакомиться с алгоритмом общения микроконтроллера с другими устройствами по шине I2C (в алгоритме подробно прокомментирована каждая строчка).

    Фотография собранного устройства и печатная плата в формате.lay от читателя сайта Анатолия Пильгук, за что ему огромное спасибо!

    В устройстве применены: Транзисторы — СМД ВС847 и ЧИП резисторы

    Приложения к статье:

    (42,9 KiB, 3 038 hits)

    (6,3 KiB, 4 058 hits)

    (3,1 KiB, 2 500 hits)

    (312,1 KiB, 5 833 hits)


    Второй вариант программы часов в АБ (для тех у кого нескачивается верхний)

    (11,4 KiB, 1 842 hits)

    Многие задаются вопросом по поводу того, . Здесь дам некоторые инструкции и расскажу, как пользоваться некоторыми бинарными часами и как определять на них время. Обо всех моделях часов рассказывать не буду, а только о тех, которые сам держал когда-либо в руках. Бинарные часы отличаются от обычных тем, что не имеют как такового циферблата. Время закодировано. Но на самом деле определить время на них не составляет особого труда, а особенно владельцам, которые пользуются ими постоянно. Представленные ниже часы в интернете могут называться по-разному. Так что ориентируетесь по фотографиям.


    Производство: Китай.
    Определение времени : самый левый столбец, состоящий из 12 светодиодов, отображает часы; остальные 5 столбцов, состоящие из 60 светодиодов, отображают минуты. Цифры по бокам позволяют лучше ориентироваться в определение времени. На часах с фотографии: 4 часа 41 минута.
    Аналогично определяется и дата. Левый столбец показывает месяц. Светодиоды в остальных столбцах показывают число. Если включен режим даты, то максимум могут загореться только 31 диод (31 число месяца).
    (Virus)
    Производство: Китай.
    Как пользоваться бинарными часами Вирус : один красный светодиод равен одному часу, один желтый светодиод равен пяти минутам, один зеленый светодиод равен одной минуте. Время определяется посредством подсчета светодиодов. На часах Вирус с фотографии: 10 часов 54 минуты, так как горит 10 красных светодиодов (10 часов), 10 желтых светодиодов и 4 зеленых (10×5+4=54)
    (Mickey mouse )
    Производство: Китай.
    Определение времени на часах : "мордочка", состоящая из 12 светодиодов отображает часы; "правое ухо" отображает десятки минут; каждый светодиод на "левом ухе" равен одной минуте. Цифры позволяют лучше ориентироваться в определение времени. Дата определяется следующим образом: "мордочка" показывает месяц, "правое и левое ухо" число.

    (Flash Lights)
    Производство: Китай.
    Как пользоваться бинарными часами Спидометр : 12 верхних светодиодов отображают часы, средние 5 светодиодов отображают десятки минут, каждый светодиод из нижней части отображает 1 минуту. Цифры позволяют лучше ориентироваться в определение времени. Индикаторы AM и PM указывают на время суток (день, ночь). Дата отображается следующим образом: верхние 12 светодиодов указывают месяц, остальные - число. Настроить часы, думаю, каждый сможет самостоятельно.

    Двоичные часы (Singularity)
    Производство: Китай.
    Определение времени на двоичных часах: вертикальная шкала с цифрами 1, 2, 4, 8 отображает часы. Чтобы узнать сколько часов, необходимо суммировать цифры, светодиоды которых подсвечены. Нижние горизонтальные светодиоды отображают минуты. Для определения количества минут необходимо сложить подсвеченные цифры. Индикаторы AM и PM указывают время суток (день, ночь). Дата определяется также с помощью арифметических подсчетов.


    Определение времени на часах Winston аналогично определению времени на часах Singularity. Winston отличается от вышеупонянутых часов только присутствием на циферблате логотипа Winston.

    Бинарные часы Matrix
    Производство: Китай
    Определение времени на бинарных часах : два левых столбца показывают часы, а два правых - минуты. Время читается слева направо.
    Часы имеют несколько индикаторов: доллар говорит о том, что отображается год; солнце - отображается день недели, число и месяц.
    Наглядно всё показано на схеме ниже.

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

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



    Схема



    RTC

    Проблему сохранения текущих настроек прекрасно решают часы реального времени (RTC). Мой выбор пал на микросхему DS1307 .

    По заверениям производителя, при отключении питания, она может сохранять время и дату в течении 10 лет, потребляя энергию одной лишь литиевой батарейки типа CR2032. Т.е часы продолжают тикать, сохраняя приемлемую точность хода. Время не сбивается, снова включив часы, мы получаем реальное время на циферблате, а не время на момент выключения. Микросхема общается с микроконтроллером через «квадратную шину» I 2 C, сообщая точное время и принимая новые его значения.

    Сердце устройства

    Выбор микроконтроллера Mega32a был продиктован следующими факторами:
    Достаточное количество портов, чтобы не использовать динамическую индикацию, которую я не люблю, в первую очередь из-за того, что она раздражает зрение (мигание с высокой частотой в любом случае неестественно). С ней я познакомился, играясь с микроконтроллерами PIC на языке Proton PICBasic, и если есть возможность не использовать динамическую индикацию, я предпочту так и сделать.
    Относительно низкая стоимость в 130 рублей (Mega16a, например, стоит столько же), а со скидкой так вообще 104 рубля.
    Четкий QPF-44 корпус, с удобным расположением выводов


    Порт «А» отображает секунды, порт «В» - минуты и порт «С» - часы. Очень удобно то, что можно присвоить портам значения времени, принятые из DS1307, без каких – либо изменений. К порту «D» подключены кнопки (пины 3 – 7), пины 0 и 1 работают как линия тактирования (SCL) и линия последовательной передачи данных (SDA) соответственно. Микросхема RTC настроена так, что выдает на своей седьмой ноге импульсы с частотой 1 герц. Эта нога подключена к 3-му пину порта «D». Сам этот порт сконфигурирован на вход, и на всякий случай включены внутренние подтяжки к плюсу питания, продублированные SMD резисторами снаружи. Такие действия в полной мере защищают от всяких неожиданностей.

    Светодиоды


    Светодиоды я выбрал в матовом корпусе с низкой светимостью. Сначала были опробованы яркие диоды в прозрачном корпусе, но даже при токе в 3 мА они слишком ярко и неравномерно светили, что опять таки вызывало дискомфорт. При падении напряжения на диоде в 2 вольта, напряжении питания 5 вольт и резисторе 1 кОм, значение тока, текущего через диод будет равно (5 – 2)/1000 = 3 мA. Это значение было подобрано эмпирически, а яркость свечения отлично подходит для полутемной комнаты. Если планируется устанавливать часы под прямой солнечный свет, то номинал резисторов следует уменьшить, вплоть до 200 ом, для более яркого свечения (спасибо кэп).

    Кнопки

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

    Софт

    Код написан в среде CodeVisionAvr.
    Программа начинается с того, что мы настраиваем периферию микроконтроллера.
    Конфигурируем порты (A,B,C – выход, D – вход)
    На всякий случай предусмотрена пауза 300 мс, чтобы DS1307 успела «очухаться»
    Инициализируем «квадратную шину»
    Настраиваем микросхему RTC так, чтобы она выдавала прямоугольные импульсы каждую секунду на выводе SQW/OUT
    Проверяем, нажата ли кнопка CLR. Если да, то сбрасываем все значения в 0
    Разрешаем глобальные прерывания
    Да, пару слов про них. Мы используем внешние прерывания INT0 на PD2 по спаду, т.е. каждую секунду программа будет уходить в обработчик прерываний, в котором мы считываем значения времени из DS1307 и выводим их на светодиодные индикаторы.
    Уходим в бесконечный цикл, где опрашиваем кнопки
    Если кнопка нажата, прибавляем (отнимаем) час (минуту) и посылаем новое значение по I2C
    Попутно проверяем, вписываются ли новые значения времени в 24-х часовой и 60-ти минутный диапазоны.

    Печатная плата

    Плата выполнена по Великой Космической Лазерно – Утюжной Технологии на одностороннем текстолите. При изготовлении верхней платы, использовалась обычная бумага (неудачный эксперимент).


    Существует много вариаций этой технологии. На мой взгляд, вот этот самый лучший:
    1. Выпиливаем нужного размера кусок текстолита.
    2. Шкурим торцы, избавляясь от вредных заусенцев.
    3. Смазываем будущую плату чистящим порошком или зубной пастой и жесткой стороной губки драим ее до блеска.
    4. Окунаем наш кусок на пару десятков секунд в слабый раствор теплого хлорного железа, до появления равномерной, матовой, бардово-коричневой поверхности. При вытаскивании из раствора, жидкость должна полностью смачивать поверхность.
    5. Смываем каку, аккуратно сушим, не прикасаясь к поверхности пальцами, или чем другим жирным. Сразу кладем на чистую бумагу медью вниз, чтобы избежать попадания пыли или волос.
    6. Распечатываем отзеркаленный рисунок на тонкой(!) глянцевой бумаге, можно вырезать из журнала, например. Не прикасаемся к рисунку руками. Аккуратно вырезаем, кладем рисунком вниз.
    7. Прикладываем к подготовленному куску текстолита, проглаживаем через 1-2 слоя чистой бумаги, выставив утюг на максимальную температуру. Секунд 10 должно быть достаточно, ибо если передержать, дорожки расплющатся и затекут друг на друга. Тонер должен полностью прилипнуть к меди.
    8. Отмачиваем под струей теплой воды, можно оставить в воде на 10 минут. Аккуратно отдираем, соскребаем бумагу. Мне в этом помогает старая зубная щетка. Удаляем оставшиеся кусочки бумаги иголкой. Тонер остается на текстолите.
    9. Нагреваем на водяной бане крепкий раствор хлорного железа, бросаем туда нашу плату и бултыхаем в течении нескольких минут (по правилу Вант-Гоффа, при увеличении температуры на 10 градусов, скорость реакции увеличивается в 2 раза. Медь исчезает прямо на глазах. Можно и не греть, но ждать придется дольше.
    10. Как только вся ненужная медь исчезла, выключаем газ, вытаскиваем (например пинцетом) плату, пытаемся отмыть плиту и пальцы от хлорного железа. Смываем его с платы проточной водой.
    11. Берем ацетон (жидкость для снятия лака) и оттираем тонер. Можно попробовать соскрести его шкуркой или губкой.
    12. Сверлим отверстия.
    13. Лудим. В качестве флюса использую ЛТИ, и вам советую, однако после лужения и пайки этот флюс нужно обязательно смыть (тем же ацетоном, а лучше смесью спирто-бензин 1:1), т.к. ЛТИшка обладает некоторой проводимостью.
    Все работы обязательно проводить в проветриваемом помещении, в процессе
    выделяется много вредных паров.


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


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

    Печатные платы в формате SprintLayout5.0 прилагаются. На фотографиях есть пару косяков, но они уже исправлены в приложенных файлах.

    Прошивка микроконтроллера

    Для этого дела был собран программатор USBasp , который можно увидеть на фото сверху. Довольно приятная штука, прост в использовании и можно всегода носить его с собой в кармане(надеюсь, никто так делать не станет). Для прошивки mega32 придется установить джампер «Slow SCK».
    Фьюзы:
    Low fuse = 0xC4
    High fuse = 0xD9
    Наш микроконтроллер тактируется от внутреннего RC генератора с частотой 8 МГц. Пришлось отключить JTAG интерфейс на PortC, иначе некоторые светодиоды не будут светиться.
    На плате предусмотрен ISP10 разъем, для быстрой прошивки/отладки.

    Лицевая панель

    Выполнена из алюминиевой пластины, шириной 40 мм и толщиной 1,5 мм. В ней просверлены 18 отверстий диаметром 5 мм, и 4 отверстия диаметром 3 мм для крепления стоек.


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


    В завершении, пластина была загнута, ошкурена мелкой шкуркой и отполирована пастой ГОИ.
    Шаблон прилагается к приложенным файлам в виде файла layout5.0

    Красный светодиод в левом верхнем углу

    Повторяет импульсы, генерируемые DS1307 на 7-ой ноге, т.е. мигает каждую сегунду. Маленький p-канальный MOSFET транзистор работает в ключевом режиме, открываясь и закрываясь в такт импульсам. Сначала я хотел сделать фоновую подсветку (как Ambilight), для чего был слеплен КМОП инвертор на комплиментарной паре транзисторов(чтоб уж наверняка). Но мне не понравилось. Для одного светодиодика вполне достаточно одного транзистора, можно использовать даже pnp типа bc857. Я использовал бескорпусные mosfet irlml6402 или irlml6302.

    Файлы

    Исходники, hex-файл, печатные платы, схемы, схема в proteus и фьюзы заключены вот в эту картинку в виде архива. Я не доверяю файлохранилищам, своего сервера у меня пока нет, поэтому, на мой дилетантский взгляд, самым надежным местом для хранения будет Хабр. Пользователи windows могут добраться до файлов открыв сохраненную картинку с помощью WinRar.
    Да, вот эта картинка.

    Видео

    Заключение

    Источник питания можно использовать любой, способный выдать 5 вольт при токе в 70 мА. USB-порт вполне для этого подойдет. Главное, чтобы питание было «чистым», и не превышало 5 вольт. Питая часы от DC-DC преобразователя из на микросхеме mc34063 с уровнем помех ~50 мВ, я заметил глюки при установке времени. Сейчас устройство питается от свича, висящего рядом. Он выдает строго 5 вольт. По хорошему, нужно еще сделать защиту от дурака в виде диода, и какой-нибудь линейный стабилизатор на 3.3 - 5 вольт.
    Отсутствие в часах функций будильника и отображения даты вполне обосновано: и то и другое присутствует в телефоне, а значит, пользоваться ими в бинарных часах с большой долей вероятности никто не будет (спасибо дядюшке Оккаму за этот вывод).