Схема электронных часов своими руками - Часы электронные своими руками

Только полноправные пользователи могут оставлять комментарии. TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим. Geektimes Публикации Пользователи Хабы Компании Песочница.

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

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

Итак, нам понадобятся инструменты: Размер индикатора любой, главное что бы ток сегмента не превышал 40 мА смотреть в даташите на конкретный индикатор4 транзистора КТБ, кварц на 16 мгц, 2 конденсатора на 22 пф, конденсатор на нф, ну и пара резисторов.

Итак, начнем с деталей, на снимке: Микроконтроллер обошелся в 41 руб, индикаторы по 52,8 руб за штуку. Всего получается ,2 руб.

Остальное было извлечено из запасов, но в любом случае бюджет бы не превысил бы рублей. Плата была нарисована вручную в программе Sprint Layout 4.

Фото часов в сборе. На заднем плане мой блок питания, который я описывал тут: Универсальный блок питания Вид часов в полумраке: А теперь давайте разберемся с тем как это работает. Вот схема широкая, потому ссылкой: Микроконтроллер тактируется от кварца с частотой 16 МГц. В микроконтроллер залита управляющая программа.

У микроконтроллера есть внутри так называемый таймер, обычно их несколько 8ми и 16 битные. Таймер можно использовать по разному, для подсчета внешних импульсов, для генерирования заданной частоты, для генерирования ШИМ сигнала и т. В данном случае мы будем использовать его для отсчета времени.

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

И так далее вплоть до десятков часов, которые сбрасываются по достижении 24 без увеличения следующего разряда.

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

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

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

Дело в том что ток, который может пропустить через себя одна нога порта ограничено 40 мА, а у моего индикатора в случае включения всех 7 сегментов и точки отдельный светодиод на схеме это как раз точка составит мА. Simple AVR Clock Version: Tiny External SRAM size: Какой элемент массива будет отправлен в порт, такая цифра и загорится. Схема создана в программе PROTEUS.

ЭЛЕКТРОННЫЕ ЧАСЫ СВОИМИ РУКАМИ

Кстати там же в протеусе можно нарисовать виртуальную схему устройства и тут же запустить ее на симуляцию, узнав работает или. Само собой в статье невозможно ответить на все вопросы и рассказать про все тонкости. В частности тем, кто решит повторить конструкцию, необходимо будет сделать программатор в самом простом случае 4 проводка на порт LPT, распаять колодку программирования на плате подключить 10 контактную колодку к ногам MOSI, MISO, SCK, RESET и GND и выставить FUSE биты микроконтроллера что бы тактовый генератор переключится от внутренней RC цепочки на внешний кварц.

Я создал блог DIY http: Во избежание недоразумений поясняю. Часы эти делал лично я, и первоначально публиковал на своем портале licrym. DIYсвоими рукамичасыгаджеты.

ЭЛЕКТРОННЫЕ ЧАСЫ БУДИЛЬНИК

Раньше они служили по 50 лет 9,3k Добавить в закладки НЛО прилетело и опубликовало эту надпись. Вот чего не ожидал на Хабре, так это радиолюбительства. Присоединился к Вашему блогу. Развивайте это направление на Хабре.

И, может быть, [эхх, мячты-мячты] население таки одумается и вспомнит про низкоуровневую оптимизацию, да и вообще мозг задействуют по назначению! ЗЫ Я не против текущих топовых статей, просто мне они не интересны, меня привлекает другая тематика в IT.

Хотя я и сам к этому приложился…. Я не особо разбираюсь, просто картинка на главной понравилась. Ну может хватит уже копипастить!

Автор хотя бы сам собрал бы часы, фотки вои приложил. Где вы раньше были когда я начинал делать startcd. Вышло гораздо дороже и Atmega-8 в DIP корпусе не было в нашем городе, заказывал из Москвы. Вот куда бы интереснее было почитать статейки по поводу параллаксовского 8-ми ядерного контроллера. Вот там можно такие вещи делать!

Просто нет смысла изучать слабые пики имхо. Если Вы не заметили, в статье речь об AVR. Кроме того, и на 8-ми битных контроллерах можно делать такое, что ого-го. Параллакс рулит конечн, только куда его воткнуть то? Под него все с нуля придется писать.

Если уж что рассматривать, так ARM или ATmega Есть же готовые контроллеры для часов, которые программировать не надо, имеющие дату, время, несколько будильников, несколько часовых поясов и т. Ну тогда бы уж добавил для примера каких-нибудь фич, типа встроенного термометра и МР3-плеера — зачем тратить ПМК на обычные часы? Рабочее устройство при минимуме усилий — как раз то, что нужно для развития интереса к теме. Фичи это хорошо, но не всё. А удивлю тебя — есть даже готовые часы, поговаривают, некоторые из них настолько малы что их можно носить на руке: Я видел в инете статью как к часам добавляли GPS модуль для синхронизации времени, но к сожалению сейчас ее не нашел.

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

Являюсь владельцем часов с DCF Board Лицензия зарегистрирована на: Микросхема обменивается с микроконтроллером по I2C, требует минимума обвязки кварц и пара резисторов. Собственно, тогда получится практически тот самый ГИАЦИНТ…. При включенном будильнике светится точка в младшем разряде индикатора. Присоединился к Вашему блогу. Кнопки и разъёмы я использовал такие: Вот схема широкая, потому ссылкой:

Продолжите тему о микроконтроллерах — я Ваш слуга навеки. А зачем такая здоровая плата? Почему бы не сделать детали на том же месте что индикаторы, но разведенные на обратную сторону. Было бы не так монструозно.

Где вы микроконтроллер за 41 рубль брали? А часы будут идти неточно. Прикольно, но только этого я понять не смог: Если количество миллисекунд достигаетто мы увеличиваем на 1 значение секунд. Сначала подумал, что часы, это та замечательная блестящая коробочка, которая потом оказалась блоком питания: Подумал, что вольтметр используется в качестве циферблата со стрелкой: Впрочем наверное такое тоже.

Здорово бы будильник еще пристроить. Я вот эти бы собрал www. Со всем можно разобраться. Только непонятно с программатором и как всё-таки залить программу в микроконтроллер?

Какой вот из этих микроконтроллеров больше подходит? Pb-free хотя там есть используемый автором статьи: ATtinyPI PUDIP20, МCU, 5V, 1K-Flash, 12MHz.

  • Советуем скачать
Похоже я могу свободно адаптировать этот код под свой МК. Кнопки и разъёмы я использовал такие:
В частности тем, кто решит повторить конструкцию, необходимо будет сделать программатор в самом простом случае 4 проводка на порт LPT, распаять колодку программирования на плате подключить 10 контактную колодку к ногам MOSI, MISO, SCK, RESET и GND и выставить FUSE биты микроконтроллера что бы тактовый генератор переключится от внутренней RC цепочки на внешний кварц. В качестве выхода для сигнала будильника используется вывод 10, а в качестве усилителя - каскад на транзисторах VT1,2.