Часы на atmega16 своими руками

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

необычные часы

14.02.2012 6 комментариев

Часы с термометром

Часы с термометром

12.02.2012 3 комментария

Часы с термометром для автомобиля Устройство собрано в корпусе штатных часов автомобилей ВАЗ 2104-2107. Вверху отображается текущее время, внизу температура. Внешний вид часов показан на фото: Под этот корпус и заточены две платы: плата индикации — односторонняя (используются два четырехразрядных индикатора с общим анодом). Плата контроллера и питания — двухсторонняя. Обе платы соединены межплатными перемыками. […]

Часы — будильник

08.02.2012 1 комментарий

При использовании маломощного сверхяркого индикатора (такого как CA04-41SRWA) и обычных пальчиковых или мизинчиковых батареек (ещё лучше, но дороже поставить аккумуляторы) необходимости отключать индикатор во время отсутствия сетевого напряжения нет. Схема такого варианта питания удобна, если применён блок питания, выполненный в виде зарядного для мобильного телефона со стабилизированным выходным напряжением 5 вольт. В этом случае можно […]

Многофункциональные наручные LED часы

Многофункциональные наручные LED часы

26.01.2012 12 комментариев

Как видно из названия, главное предназначение данного устройства — узнавать текущее время и дату. Но оно имеет ещё множество других полезных функций. Идея его создания появилась после того, как мне на глаза попались полусломанные часы с относительно большим (для наручных) металлическим корпусом. Я подумал, что туда можно вставить самодельные часы, возможности которых ограничиваются только собственной […]

Часы-термометр LED с радиодатчиком

Часы-термометр LED с радиодатчиком

11.01.2012 1 комментарий

1. Часы-термометр LED с радиодатчиком Если для питания часов и приемника применяется один общий стабилизатор напряжения, то скорее всего (да не скорее всего, а точно) приемник начнет сильно шуметь из-за динамической индикации, что приведет к полной потере приема данных! Необходимо применить ДВА ОТДЕЛЬНЫХ стабилизатора 7805/78L05 как показано на схеме! […]

Часы-термометр с большими LED с радиодатчиком

Часы-термометр с большими LED с радиодатчиком

11.01.2012 0 комментариев

Матричные часы-будильник-термометр

06.11.2011 4 комментария

Пропеллер часы

Пропеллер часы

01.10.2011 1 комментарий

И так, для изготовления Пропеллер часов нам понадобятся следующие детали:Для часов: * Драйвер LED MBI5170CD( SOP16, 8 bit) — 4 штуки.* Часы реального времени DS1307Z/ZN( SMD, SO8) — 1 штука.* Микроконторллер ATmega32-16AU (32K Flash, TQFP44, 16MH) — 1 штука.* Кварцевые резонаторы 16MHz — 1 штука.* Кварцевые резонаторы 32kHz — 1 штука.* Линейный стабилизатор 78M05CDT — […]

Простейшие электронные часы на микроконтроллере

01.10.2011 27 комментариев

Простейшие электронные часы на микроконтроллере(С исходником снабженным подробнейшими кометариями) Эти электронные часы простейшие. Собраны были за несколько часов. Основа микроконтроллер PIC16F628A, кроме него часы содержат несколько простых и дешевых элементов, информация выводится на 4-х разрядный (часовой) светодиодный индикатор. Схема питается от сети, а также имеет резервное питание. Данную конструкцию можно рекомендовать начинающим, я специально снабдил […]

Простые часы на светодиодных матрицах.

Простые часы на светодиодных матрицах.

29.09.2011 1 комментарий

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

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

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

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

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

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

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

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

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

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

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

плата бинарных часов

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

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

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

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

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

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

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

Часы на микроконтроллере с DS1307

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

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

Схема часов на микроконтроллере AVR ATtiny26 и микросхеме DS1307

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

♦ микроконтроллер 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-биты трогать не надо.

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

При нажатии кнопки S2 (S4 - в программе) происходит глобальный запрет прерываний, программа переходит в подпрограмму коррекции времени. При этом, кнопками S1 и S2 устанавливаются десятки и единицы минут, затем, с 0 секунд, нажатием кнопки S2 происходит запись уточненного времени в DS1307, разрешение глобального прерывания и возвращение в основную программу.

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

Схема подключения кварца

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

Работа часов на макетной плате

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

Внешний вид собранных часов

Печатная плата часов

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

Аналогичные часы можно собрать и на основе платы Arduino.

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

Схема часов в SPL7 (42,9 KiB, 3 810 hits)

Программа часов в HEX коде (3,1 KiB, 3 110 hits)

Даташит DS1307 на русском языке (312,1 KiB, 6 512 hits)


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


1.JPG" />

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

Что-то непонятное — это убегание на 2 минуты, которое я не смог связать ни с наводками, ни с неисправностью микроконтроллера, ни с неисправностью таймера ds1307. Видимо виной всему плата, так как на плате второго экземпляра контроллер с таймером работали исправно.

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

Поигрался с прототипом ардуиночасов с написанным мной кодом в протеусе, убедился, что код и аналоговая часть худо бедно работают, и заказал нужные детали. Главный герой — микросхема MAX7219. Это драйвер, позволяющий управлять семисегментными индикаторами (с общим катодом), светодиодными линейками или просто отдельными светодиодами. Максимум к нему можно подключить 64 светодиода (ну или, соответственно, восемь семисегментных односимвольных индикаторов). Драйвер управляется по интерфейсу SPI, а так же имеет программное управление яркостью свечения индикаторов или светодиодов. Эти микросхемы можно подключать каскадно, увеличивая количество управляемых светодиодов или семисегментников.
В качестве таймера выступит DS3231. Это очень точные часы-календарь, которые имеют на борту резервный источник питания, позволяющий часам идти даже без внешнего питания. Батарейки хватит года на два как минимум.

Вот посылка пришла. Так же в посылке, помимо MAX7219, были smd транзистоы MMBT3906 и MMBT3904, позже я использую их для изготовления конечного устройства, и еще четырехсимвольные 7-сегментные индикаторы с общим катодом, которые будут служить временным дисплеем для отладки часов.
Большие индикаторы покупал когда-то давно здесь.


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

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

Основная сложность в моем случае — это то, что 2.7 дюймовые индикаторы с общим анодом, и их надо было во первых как то подружить с max7219, которая заточена под индикаторы с общим катодом, а во вторых решить проблему с их питанием, так как им нужно 7,2 вольта для свечения, чего одна max7219 обеспечить не может. Попросив помощи на одном форуме я получил таки ответ.


Решение на скриншоте:

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


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

Начинаем собирать.

Схему решил разделить на 2 части из-за огромного количества перемычек в разведенном моими кривыми лапками варианте, где все было на одной плате. Часы будут состоять из блока дисплея и блока питания и управления. Последний было решено собрать первым. Эстетов и бывалых радиолюбителей прошу не падать в обморок из-за жестокого обращения с деталями. Покупать принтер ради ЛУТа нет никакого желания, поэтому делаю по старинке — тренируюсь на бумажке, сверлю отверстия по шаблону, рисую маркером дорожки, затем травлю.

Принцип крепления индикаторов оставил тот же, как и на прошлом экземпляре.

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








Затем с помощью шаблона сверлим отверстия в нужных местах и примеряем все компоненты. Все встало безупречно.

Рисуем дорожки и травим.



купание в хлорном железе

готово!
плата управления:

плата индикации:

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

Вот готовые платы. На плате управления имеется посадочное место для ардуино нано, часов, а так же выходы для подключения к плате дисплея и датчики (фоторезистор для автояркости и цифровой термометр ds18s20) и блок питания на lm317 с регулировкой выходного напряжения (для больших семисегментников) и l7805 для питания часов и ардуино, на плате индикации находятся посадочные гнезда для дисплеев, панельки для max2719 и uln2003a, решение для питания четырех больших семисегментников и куча перемычек.






плата управления сзади


плата индикации сзади:


Ужасный монтаж смд:

Запуск


После припаивания всех шлейфов, кнопок и датчиков пришло время все это включить. Первый запуск выявил несколько проблем. Не светился последний большой индикатор, а остальные светились тускло. С первой проблемой расправился пропаиванием ножки смд-транзистора, со второй — регулировкой напряжения, выдаваемого lm317.
ОНО ЖИВОЕ!

Изначально решил не мудрить с корпусом, а оставить как есть. Просто прикрепил ножки из алюминиевого профиля к плате. Сзади на куске оргстекла крепится плата управления




Ну вот и всё. Осталось только причесать код.

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


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


Простые часы из отдельных светодиодов на микроконтроллере ATMEGA8

time 0

Часы-будильник на ATMEGA8 с функцией измерения атмосферного давления, температуры и влажности.

time 0

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

time 0

Будильник на ATMEGA88 с функцией измерения атмосферного давления и температуры.

Часы 2313

Автор vitalyadm

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



- часы на PIC16F628A и датчике температуры DS18B20.

- 4-х сегментный светодиодный индикатор.

- анимированная смена индикации.


Любительская измерительная схема на микроконтроллере,

с программной конвертацией информации в виде текста, на экран телевизора или монитора,

имеющих низкочастотный AV вход.

ТВ текст

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

В виде текстовой строки ЧЧ:ММ.СС_ДД/ММ/ГГ термометр с точностью до 0.1ºС.

часы ЛЕД

Устройство 2 в 1 часы и секундомер, на Attiny2313.

Отображение в полном формате; часы, минуты, секунды.

Раздельное, удобное управление.


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

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


– часы с цифровой коррекцией точности.
– будильник.
– термометр.
– индикация на семисегментный индикатор.
– автоматическая регулировка яркости индикатора.

Читайте также: