LED часы на ATtiny2313 и DS1307. Девайсы. Часы с большими цифрами

LED часы на ATtiny2313 и DS1307. Девайсы. Часы с большими цифрами

23.05.2019

Kidar 1 марта 2013 в 08:35

Идеальные часы

  • DIY или Сделай сам

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

Получилось?


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

Для поддержания точности часов необходимо добиться стабильности колебаний кварцевого резонатора и своевременно производить компенсацию ухода показаний от образцового времени.
Стабильность достигают аппаратными способами, а компенсацию производят программно или вручную от внешних источников сигнала точного времени: радиостанции, Интернет, спутники систем навигации.
В данных часах применяется последний способ. Так как в сигнале навигационных спутников передается UTC - всемирное координированное время, то нет необходимости “подводить стрелки” часов. Необходимо лишь один раз указать смещение относительно всемирного времени.

Идея была проверена в предыдущих разработках с показом времени при помощи разноцветных вспышек: лампа времени и кубик . «Волшебная палочка» от кубика - новую одежду только получила, а то старое блестящее покрытие поизносилось и с магнита окалина начала сыпаться.
“Лампа” держится в жару и холод, дождь, снег и дым больше года и до сих пор не отклонилась ни на секунду.
Настала очередь привычного способа показа времени. Мечтой было применение большого белого светодиодного индикатора, обеспечивающего хорошую видимость в пределах комнаты.

После сравнительно большого модуля GL8088s, используемого в “кубике”, в этот раз выбор пал на небольшой приемник сигналов спутниковой системы позиционирования, модуль Gms-g6a - глаза и уши часов для связи с Космосом. Пара этих модулей была приобретена для эксперимента по созданию часов.
Чипсет: MT3333.
33 канала отслеживания и 99 каналов поиска систем GPS, ГЛОНАСС и Galileo.
Чувствительность при слежении: -165 dBm.
Чувствительность при обнаружении: -148 dBm.
Время горячего/холодного старта: 1/35 сек.
Напряжение питания: 3,0...4,3 В.
Ток потребления при захвате/слежении (для Uпит.=3,3В): 35/29 мА.
Размер: 16x16x2,1 мм.
Вес: 1 грамм.

Помимо отличной родословной и прекрасных технических данных, данный приемник обладает важной особенностью - наличием встроенной на плате чип-антенны. Не все радиолюбители являются специалистами в области проектирования и изготовления антенн, поэтому такая особенность модуля позволяет легко достичь положительного результата.
В такой конструкции есть ограничения в виде наличия запрещенной зоны при разводке платы и максимальной удаленности от крупногабаритных радиодеталей, но это все мелочи.
Опытные разработчики могут использовать в своих часах другой модуль: Gmm-g3, который обладает такими же характеристиками, но его габариты уменьшены до 11,5 x 13 x 2,1 мм в связи с отсутствием антенны. Такие маленькие размеры позволят установить модуль на пару миллиметров выше, а антенну в виде печатного проводника или в отдельном исполнении разместить на самом верху печатной платы, что еще ближе приблизит ее к Космосу.
Дополнение 23.08.13. Стал доступен новый GPS-модуль Gmm-r1. Также без встроенной антенны. Из отличий: ловит только GPS, но корпус стал еще меньше 9,7x10x2,1 мм.

Модуль Gms-g6a, в отличии от приемника, используемого в проекте “кубик” не подвергался никаким настройкам. Все сообщения “из коробки” - без изменения скорости и отключения неиспользуемых строк.
Скорость работы порта RS-232 по умолчанию составляет 9600 бит/сек. Такая скорость удобна для работы, но время передачи длинных сообщений занимает значительное время и приближается к секунде - когда уже необходимо начать работу со следующей порцией информации. Поэтому на этот раз в программе нет ожидания конца сообщений. Из потока информации просто “выдергиваются” необходимые значения и производится их обработка. По сравнению с определением местоположения, получить информацию о времени легче, и модуль начинает выдавать необходимые данные еще до показа количества видимых спутников. Программа делит спутники на ваши и наши, но часы показывают суммарное число видимых аппаратов, что сближает космические группировки для выполнения одной задачи.

Мозги часов - микроконтроллер PIC16F688 в небольшом корпусе для поверхностного монтажа. Программа работы загоняется в память контроллера при помощи фрагмента микросхемы ПЗУ с ультрафиолетовым стиранием КС573РФ2. Микросхему можно подключить пружинящими иголками к контактным площадкам для программирования, а можно просто припаять. При монтаже приемника необходимо подложить под него изолирующую пленку, так как снизу проходят несколько дорожек.

Настроил и забыл.
Как и в предыдущих разработках, на единственную кнопку первоначально предполагалось возложить лишь внесение поправки относительно всемирного координированного времени, поступающего со спутников.
Но в дальнейшем, по мере разработки конструкции, кнопка стала обрастать новыми задачами.
Было решено заменить кнопку униполярным датчиком Холла TLE4905L, реагирующим на магнитное поле “волшебной палочки”.
Это уже третий вариант по замене классической механической кнопки. В “лампе” кнопка отсутствовала как класс, и внесение поправки производилась замыканием выводов контроллера, в “кубике” роль кнопки играл геркон.
Но геркон является хрупкой стеклянной конструкцией, имеющей большие по нынешним меркам размеры, поэтому в “идеальных часах” использован современный вариант - датчик Холла.
Поправка времени вносится просто. До подачи питания необходимо поднести “волшебную” палочку или магнит (магнетизм - это тоже волшебство) к датчику, расположенному в верхней части индикатора единиц минут. После включения питания начинается отсчет часов поправки. При достижении необходимого значения магнит убирают, поправка запоминается и это подтверждается вспышкой индикатора. Если за время круга - 23 часа, решение не принято, происходит выход из режима внесения коррекции времени.

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

Режимы индикации:
- количество видимых спутников C = GPS + GLONASS, отключение повторным пассом “волшебной” палочки;
- индикация четверти минут (точка сверху): включена/отключена;
- режим отображения времени: 24/12 часов;
- разделительные точки: не мигают/мигают;
- регулировка яркости: автоматическая/ручная;
- восемь уровней максимальной яркости для ручного и автоматического режимов работы.

Сократить время на подготовку символьной информации для названия каналов помогла таблица подключения индикатора, в которой учтены особенности разводки печатной платы. Сегмент, который необходимо включить отмечается цифрой 1. Далее, в полуавтоматическом режиме выдается результат: выражение вида A954 AAAA, что на языке индикатора означает “включить восемь вертикальных линий”.

Мечта сделать часы с белым индикатором была большой и долгой. Сначала поиски по магазинам и Интернету, затем попытка самостоятельного изготовления индикатора. Был разобран красный 7-сегментный индикатор, световод оставлялся на месте, а светодиоды заменялись белыми. Но размер 0,56 дюйма все же мал для комнаты.

В больших индикаторах устанавливается по несколько последовательно соединенных белых светодиодов, чтобы равномерно засветить световод сегмента. В результате, даже у цепочки из пары светодиодов необходимо использовать напряжение более 7 Вольт, что превышает привычные 5 Вольт. Применять преобразователь напряжения желания не было.
И вот, чудо произошло. Рассказал о проблеме одному товарищу по работе, который приобретает комплектующие элементы на eBay. Не прошло и часа, как он нашел необходимые светодиоды: белые, дюйм с четвертью, с общим анодом, работающие от 4 Вольт - то, что надо! Через несколько дней он принес их домой. Огромное ему спасибо!
Индикатор был безродным, из опознавательных знаков на нем был только символ “В”. Подробное описание так и не удалось найти, пришлось пользоваться данными со страницы покупки. Насколько я понимаю английский, там они закончились, но желающие собрать часы смогут найти что-то подобное по указанным в схеме параметрам.
Четыре индикатора, расположенные рядом друг с другом и определяют габариты часов: ширина 96 мм, высота 34 мм, глубина 16 мм, без учета разъема питания. Испытания показали, что цифры отлично видны в дневное время при токе 5 мА через сегмент. Ночью это значение можно уменьшать в 10 раз. Небольшой недостаток индикатора в том, что на малых токах белый цвет начинает приобретать различные оттенки, видимо, это связано с особенностями люминофора.

Существует выражение “минута кажется вечностью”. Эта фраза, скорее всего, возникла после появления часов, у которых отсутствует индикация секунд: человек видит, какая идет минута, но не знает, когда она закончится. Чтобы лучше понять место во времени, в идеальных часах введена индикация четверти минуты - это точка, которая горит над одним из четырех индикаторов. Эта функция новая и пока еще непривычная. Люди, которые не желают теряться во времени, могут ее включить. Было несколько вариантов показа секунд, но победила идея одного коллеги - просто перевернуть индикатор и тогда никому не нужные точки начинают приносить пользу. За хорошую идею плюс в его карму!
В режиме отображения четверти минут человеку достаточно одного взгляда, чтобы определить время с точностью 15 секунд. Если подсчитать количество вспышек при мигании разделительных точек, то становится доступной секундная точность. Разделительные точки сделаны из двух белых светодиодов и установлены методом допиливания корпуса. Подключены они вместо одного неиспользуемого сегмента индикатора десятков часов.

В электронных часах важно иметь автоматическую регулировку яркости. Столкнулся с этим в древних часах на К145ИК1901, тогда пришлось их дорабатывать, чтобы утихомирить зеленый прожектор.
Из современного имеется датчики освещенности MAX44007, MAX9635, APDS-9300, которые позволяют отказаться от канала АЦП в контроллере.
Но в пределах досягаемости оказался лишь аналоговый датчик APDS-9002 (серия 9002...9007), со всеми вытекающими из этого последствиями. Вот он виднеется - небольшой золотистый прямоугольник в верхней правой части индикатора десятков минут, чуть правее от него чернеет корпус датчика Холла - к нему и надо подносить магнит.

Датчик прекрасно реагирует на любое изменение яркости, даже от лампы накаливания. Видимо в связи с этим, существуют сторонники запитывать лампы накаливания от выпрямленного и сглаженного напряжения.
Лампы дневного света, имеющие низкочастотные дроссели в цепи питания также сильно пульсируют, чем и объясняется запрет их использования при работе на станках - стробоскопический эффект.
Поэтому, в цепи датчика освещенности установлен конденсатор большой емкости, который несколько сглаживает эти пульсации.
На осциллограммах: напряжение на нагрузочном резисторе сопротивлением 1 кОм.
Слева лампа дневного света, справа лампа накаливания. Снизу с фильтрующим конденсатором емкостью 4,7 мкФ, сверху - без конденсатора.

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

Особенностью часов является статический режим работы индикаторов. К динамическому режиму не лежит душа, поэтому плата за нелюбовь - увеличение числа корпусов.
Драйвер MBI5026 удобен для управления двумя семисегментными индикаторами. При использовании печатной платы, микросхема с мелким вариантом корпуса прекрасно располагается между выводами любого индикатора. При помощи трех сигнальных проводников, драйвер управляет 16-ю сегментами. Если необходимо 32 светодиода, то добавится одна микросхема и один управляющий сигнал.
Ток через сегменты задается при помощи одного резистора. В часах этот переменный цифровой потенциометр AD8400 “крутит” микроконтроллер в зависимости от внешней освещенности. Наиболее подходящий номинал 50 кОм, но в наличии был только 100 кОм.

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

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

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

Идеальные часы помимо показа точного времени должны сочетаться с окружающей обстановкой. В этом также помогает метод “Потемкинские деревни”. На боковые поверхности корпуса можно просто и быстро наклеить пленку, имеющую цвет, наиболее подходящий к обстановке. Белый цвет лицевой поверхности сочетается со всем, но можно также использовать полупрозрачную пленку-светофильтр и тогда цифры окрасятся в любимый цвет. Операция по смене имиджа занимает пару минут: отклеить старое, приклеить новой, обрезать лишнее. В скором времени наверняка появятся семисегментные RGB-индикаторы, тогда цвет излучения можно будет выбрать на одном из каналов управления за несколько секунд.
При изготовлении часов, перед проклейкой корпуса необходимо на ровной поверхности выровнять верхнюю и нижнюю стороны припаянных индикаторов при помощи наждачной бумаги, все же на доли миллиметра они отличаются по высоте. Юстировка передней стороны индикаторов производится при пайке на ровной поверхности стола. После приклеивания передней пленки убеждаемся, что и лицевая поверхность выглядит не очень из-за того, что при заливке световодов индикатора образовались ложбинки разной глубины, и пленка не может скрыть этого дефекта. В корпусе это было бы незаметно, но в нашем случае не годится. Снимаем пленку, кладем конструкцию на стол и при помощи наждачной бумаги двух разных калибров приводим состояние лицевой поверхности к виду, соответствующему названию часов. Страшно было приниматься за эту операцию на дефицитном индикаторе, но все закончилось успешно: глубина световодов достаточная, чтобы снять небольшую часть.
Еще одна тонкость при сборке - формирование аккуратного выходного отверстия разделительных точек. В этом помогает пластилин и трубочка небольшого диаметра. Пластилином заполняется все свободное пространство вокруг светодиода, а мягкой трубочкой от изоляции провода формируется отверстие желаемого диаметра. Данную операцию удобно проводить при включенном индикаторе.

Помимо корпуса конструкции, головной болью разработчика является блок питания (БП).
В последнее время наметилась тенденция к использованию порта USB компьютера для зарядки многочисленных носимых устройств. Таким образом, выход USB компьютера можно считать в наше время самым универсальным источником питания. Задача разработчика: умерить аппетит устройства и не превышать возможности USB-порта.
Чтобы не зависеть от компьютера, производители наладили выпуск сетевых БП, имеющих USB-разъем с выходным напряжением 5 Вольт.
При использовании современных компонентов удается значительно снизить потребляемый устройством ток, а значит и габариты БП. Импульсный режим работы позволяет уменьшить его габариты до размеров, недостижимых в “ламповый” век.

“Идеальные часы” могут питаться как от разъема USB компьютера - напрямую или через удлинитель, так и от сетевого БП, например, A1265: размер 26х26х28 мм без учета сетевой вилки, входное напряжение 100...240 В, выход: 5 В х 1 А.
К счастью, до соединения с часами решил разобрать этот БП. В результате, на внутренней стороне пластины с сетевой вилкой обнаружилась “жирная” капля припоя. На низковольтной стороне печатной платы был прилипший металлический кусочек отрезанного вывода от USB-разъема. Дальнейшую жизнь этого блока легко представить. Большой привет изготовителю!
Перед подключением часов проверил напряжение БП: 5,35 В на холостом ходу и 5,33 В под нагрузкой 40 мА. Не годится - превышение максимального напряжения. Придется вскрывать и что-то подкручивать. С трудом удалось отыскать один экземпляр, выдающий 5,05/4,95 В при тех же условиях. На этот момент необходимо обратить внимание.
Миниатюрный размер современных БП позволяет реализовать настенную установку часов.
Вариант 1. Розетка - блок питания с разъемом USB - часы.
Вариант 2. На стене, спрятав блок питания в монтажную коробку. В стене будет небольшое прямоугольное отверстие, куда втыкается USB-разъем часов. Необходимо предусмотреть защиту и отключение “на всякий пожарный” случай линии питания спрятанного БП.

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

Для радиолюбителей, желающих упростить схему, можно применить динамическую индикацию.
Драйверы для индикаторов с общим катодом MAX7219/MAX7221 или MAX6950/MAX6951.
Для общего анода можно использовать STLED316S.
Датчики освещенности можно применить с цифровым выходом, что позволит сократить еще пару элементов из схемы.

Небольшая проблема проявилась при наладке устройства. В этом варианте часов решил не подключать приемник к компьютеру, а сделать все, воспользовавшись только текстовым описанием. Но гладко было на бумаге. Контроллер не желал ловить сигналы GPS-приемника. Причем не только сигналы, передаваемые по RS-232, а вообще не реагировал на изменения сигнала от приемника.
Пришлось таки подключить часы к осциллографу и через небольшой преобразователь к порту RS-232 компьютера.
Приемник был жив и ежесекундно выдавал положенные ему сообщения. Удивительно, как в такой маленький приемник помещается столько больших букв и цифр!

Пример сообщений, поступающих каждую секунду:
$GPGGA,124541.000,5551.3636,N,04834.2565,E,1,5,2.72,161.8,M,1.4,M,*69


$GNRMC,124541.000,A,5551.3636,N,04834.2565,E,0.43,334.91,130213,A*75
$GPVTG,334.91,T,M,0.43,N,0.79,K,A*38

$GPGGA,124542.000,5551.3636,N,04834.2564,E,1,5,2.72,161.8,M,1.4,M,*6B
$GNGSA,A,3,02,04,29,,2.90,2.72,0.99*1D
$GNGSA,A,3,81,88,,2.90,2.72,0.99*19
$GPGSV,3,1,11,23,84,113,13,66,275,17,30,41,076,16,37,114,*71
$GPGSV,3,2,11,20,33,168,04,26,275,24,07,20,223,02,18,320,27*7A
$GPGSV,3,3,11,32,16,150,31,15,054,29,08,021,19*44
$GLGSV,2,1,08,73,79,100,71,64,149,74,39,206,80,29,041,*66
$GLGSV,2,2,08,81,15,011,19,88,12,318,18,70,12,140,65,05,317,*6A
$GNRMC,124542.000,A,5551.3636,N,04834.2564,E,0.35,334.91,130213,A*76
$GPVTG,334.91,T,M,0.35,N,0.65,K,A*34

Возможна одна строка GSA
$GPGGA,033345.000,5551.3525,N,04834.2534,E,1,5,3.11,102.9,M,1.4,M,*69
$GPGSA,A,3,06,16,03,07,08,3.26,3.11,0.98*0A
$GPRMC,033345.000,A,5551.3525,N,04834.2534,E,0.35,286.26,200213,A*6E
$GPVTG,286.26,T,M,0.35,N,0.65,K,A*30

Исследование вопроса показало следующее.
При разработке, питание приемника: 4,15 В было подведено к верхней границе рабочего диапазона: 4,3 В, чтобы уровень выходной “единицы” улавливал пятивольтовый контроллер.
На практике оказалось, что внутри приемника находится стабилизатор напряжения и уровень “1” приемника составляет 2,7 В - для контроллера не выполняется параметр VIH.
Пришлось внести доработку: миниатюрный преобразователь уровня на двух транзисторах в корпусе SOT23 и паре резисторов размером 0603. В приложенной к проекту печатной плате исправление внесено.
Делать на весу сборку из таких маленьких деталей - удовольствие огромное! Малейшее неловкое движение или случайный чих приводят к телепортации элементов в неизвестность. Поэтому деталей потребовалось несколько больше, чем указано на принципиальной электрической схеме.
В связи с этими событиями, в следующих версиях часов, напряжение питания приемника можно смело снижать до 3...3,3 В, например, установив два последовательных диода в цепи питания, вместо одного, используемого сейчас. Только необходимо учесть, что если приемник будет переводиться в режим пониженного потребления, то ограничитель напряжения на диоде использовать нельзя, так как напряжение в этом случае поднимется выше максимально допустимого. В этом случае нужен классический линейный стабилизатор на 3...3.3 В в корпусе SOT-23.
Как вариант, можно использовать подходящий по выводам модуль PA6B с верхним пределом питающего напряжения 5 В. Из отличий: другой чипсет, высота корпуса 4 мм, необходимо подать сигнал на вход “Enable” (замкнуть выводы 2 и 1), меньшее количество каналов, но для часов вполне сгодится, так как чувствительность аналогичная.
Преобразователь уровня можно будет сделать на одном транзисторе и паре резисторов или применить специализированный преобразователь типа MC74VHC1GT125. Можно обойтись без преобразователя, сделав для всех элементов, кроме белых светодиодов, напряжение питания 3,3 В.

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

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

Теперь о том, ради чего затевалась идея точных часов .
Существующие радиоканальные системы сбора информации содержат центральный пункт и удаленные объекты с приемником и передатчиком.
Идеальные часы позволяют отказаться от передатчика на центральном объекте и приемников на удаленных точках, используя синхронизацию по точному времени.
Вместо канала яркости делается канал задержки начала передачи: 0...59 сек - ежеминутный будильник передатчика. На каждом объекте настраивается время включения передачи относительно начала минуты с точностью до 1 секунды. В результате, каждый объект имеет индивидуальное время начала передачи данных, распределенное по каждой минуте.
Система сбора информации упрощается, удешевляется и улучшается качество и надежность ее работы.
Часы в этом варианте применения можно также значительно упростить.
1. Индикатор сделать красного цвета, что позволит использовать напряжение 3,3 В.
2. Часы и минуты становятся ненужными, достаточно знать только секунды.
3. Секунды можно показывать точкой на матричном светодиодном индикаторе 8х8.
4. Можно использовать всего три светодиода - “начало минуты”, секундные импульсы”, “включение передачи”. Как вариант: один RGB светодиод.

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

Всем привет! Накануне праздник 8 марта, вы уже придумали что подарить? Да/Нет? Можно конечно купить готовый подарок, но лучший подарок, это подарок сделанный своими руками. И так, вот задумался я: а что подарить Маме на 8 марта? Подумал...Подумал...О, а подарю я часы. Но покупать китайские часы я не хочу и не буду по двум причинам: сразу сломается, я же радиолюбитель. И я решил сделать свои часы своими руками! И вот что из этого получилось:

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

И так чего мне хотелось? А хотелось мне сделать достаточно большие часы на светодиодных семисегментных индикаторах, чтобы просто показывали время и шли даже тогда, когда выключены. За основу конструкции взял AVR микроконтроллер Attiny2313 с двумя килобайтами флеша, этого более чем достаточно. Сами часы реализовал с помощью RTC микросхемы реального времени DS1307, к которой подключается батарейка на 3 вольта, для поддержания хода часов. Семисегментные индикаторы поставил REC-S12101AG, зелёного цвета, с общим анодом. Их габариты: 28,8 на 40,8 мм. Поскольку часам для питания нужны 5 вольт, то я применил готовый импульсный блок питания RS-25-5. Почему именно такой ИБП? Лежал он у меня в коробочке с детальками (Давно, год назад я купил его за пять тыщ бел. руб. у одного парня, думаю хороший ИБП, пригодится!), пылился, а трансформатора у меня не было, вот и поставил что было. С блоком питания часы питаются от сетевого напряжения 220 вольт. Вот фото ИБП:

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

Собрал я всё на печатных платах, семисегментные индикаторы разместил на одной плате, всё остальное на другой. Платы лудил сплавом розе и в конце покрывал . Печатные платы делал с помощью . Чертил в программе . Вот фото платы с семисегментными индикаторами:

Платы вместе соединял шлейфом, вот так:

В ход можно пустить компьютерный IDE шлейф. Вот фото основной платы:

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

Как вы уже заметили внутри корпуса я закреплял всё с помощью термо клея. После сборки часов необходимо прошить микроконтроллер прошивкой ClockFirmware.HEX. Как прошить микроконтроллер и сделать программатор я писал и . После прошивки не забудьте установить следующие фьюз-биты:

Я прошивал микроконтроллер с помощью программатора и программы SinaProg. Программу (прошивку) для часов писал в среде , исходник прилагается. У меня часы работают уже почти неделю и не на секунду не отстают. Точность хода часов зависит от кварца, его лучше купить новый. Яркость часов зависит от резисторов R1-R8, чтобы уменьшить яркость увеличьте сопротивление этих резисторов, но следует учесть, что резисторы необходимо ставить с сопротивлением не меньше 10 Ом а резистор R3 не менее 100 Ом. При первом включении часов либо после смены батареи резервного питания, зажмите обе кнопки S1, S2 и включите часы. Часы сбросятся на 00:00 и начнут идти.

Кстати, ночью часы смотрятся просто отлично:

Ну всё, часы готовы и работоспособны!

Мною на сборку часов было потрачено примерно 250 тысяч бел. руб. Отлично! Убил двух зайцев сразу: сделал своими руками и обошелся в меньшую сумму чем стоят китайские часы. Надеюсь часы понравятся Маме.

Для любителей программы прилагается проект часов.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит

ATtiny2313

1 В блокнот
IC2 Часы реального времени (RTC)

DS1307

1 В блокнот
VT1-VT4 Биполярный транзистор

КТ315А

4 В блокнот
C1 Электролитический конденсатор 100 мкФ 1 В блокнот
C2 Конденсатор 100 нФ 1 Керамический В блокнот
R1, R2, R4-R8 Резистор

10 Ом

7 В блокнот
R3 Резистор

150 Ом

1 В блокнот
R9-R12 Резистор

1 кОм

4 В блокнот
R13-R15 Резистор

10 кОм

3 В блокнот
R16, R17 Резистор

4.7 кОм

2 В блокнот
CH1 Кварц 32768 Гц 1 В блокнот
7Seg Семисегментный индикатор REC-S12101AG 4 С общим анодом

Протые часики с секундами на 7ми сегментных индикаторах с календарём и термометром, + 6 эффектов индикации.

Мой НОВОГОДНИЙ ПОДАРОК.
ВСЕХ С НОВЫМ 2014м ГОДОМ.

Это простеникие часики - термометр на семисегментных светодиодных матрицах с общим анодом.

Что они могут:

Дата: (Дата - Месяц - День недели)

Температура дома:

А это датчик на улицу выкинул:

6 режимов индикации:

Автопоказ даты и температуры каждые 35 секунд.

Описание кнопок:
Кнопка "-" в режиме установки часов и кнопка перебора режимов индикации в рабочем режиме часов.
Кнопка "ОК" - для входа в режим установки часов.
Кнопка "+" в режиме установки часов и кнопка показания даты и температуры в рабочем режиме часов.

Перебор режимов индикации:
Жмём кнопку "-" - перебор режимов индикации.

Появится:

Первый режим индикации - цифры плавно гаснут и плавно появляются новые.

Жмём ещё раз
Появится:

Второй режим индикации - часики работают как обычно.

И ещё раз
Появится:

Третий режим индикации - цифры при смене меняются перебором.

Ещё раз нажимаем
Появится:

Четвёртый режим индикации - цифры при смене накладываются друг на друга.

Ещё одно нажатие
Появится:

Пятый автоматический режим индикации - режимы индикации сами меняются каждый час.

И ещё одно нажатие
Появится:

Шестой автоматический режим индикации - режимы индикации сами меняются каждые сутки в 00:00.

Включение / выключение автоматического показа даты и температуры каждые 35 секунд.
Жмём и держим в течении 3 секунд кнопку "+" - показ даты/температуры.
Если появится:

Автопоказ выключен.

Автопоказ включен.

Установка времени:
Для установки времени жмём и держим кнопку "ОК" в течении 3х секунд во время показа времени.
Часы переходят в режим установки времени и начинают мигать часы.
Кнопками "-" и "+" устанавливаем час и нажимаем кнопку "ОК" и переходим к установке минут.
И так далее в последовательности час > минуты > число > месяц > день недели.
При долгом удержании кнопок "-" или "+" цифры автоматически сами убывают или прибавляются.

Часы собраны на минимуме микросхем:
PIC16F628 - контроллер часов.
DS1307 - сами часики.
BU2090 - Дешифратор катодов.
DS18B20 - термодатчик.
DS32KHz - микросхема генератора для точности хода.
Если точность не нужна и вы просто подберёте точный кварц на 32.768
то DS32KHz можно и не ставить.

Схема стандартная.

Схема стандартная №2.

Она нужна если вы будете использовать многосветодиодные индикаторы.
Типа таких:
(фотка)
Для которых 5ти вольт анодного напряжения маловато будет.
Для переключения контроллера на эту схему нажимаем и держим кнопку "-" и включаем часы.
Для обратного перевода делаем тоже самое.
Это команда инвертирует выходные импульсы с контроллера для управления анодными ключами.

Регулируя питание в такой схеме можно менять яркость часиков.
Схемка регулятора яркости:

Настройка катодов, то есть назначение сегментов.
В часах можно использовать любые индикаторы.
Для платы что входит в проект я использовал три светодиодные сборки от модулей стиральных машин DE07-00011A.

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

Исключение только для точки, если она есть в индикаторе.
Точки надо подключать только к 15му выводу BU2090.

Назначение сегментов:

Сам процесс:
Жмём и держим кнопку "+" и включаем часы - появится 8ка - показывая что все сегменты подключены.

После отпускания кнопки в 1м разряде загорается один из сегментов.
Начинается перебор сегментов.

Надо назначить сегменты от A до G - согласно рисунку ниже:

При зажигании нужных сегментов нажимаем кнопку "+"
и так последовательно от появления сегмента A до G - согласно рисунку.

Затем загорается 2й разряд - это разрешение мигания секундных индикаторов.
На тот случай если вы секундные семисегментники расположите по центру между часами и минутами вместо секундных точек.
Тут так же
Если нажать кнопку "+" на 0 то мигание отключается.

Если на 1 то включается.

После чего часы переходят в рабочий режим.

Платы нарисованы с помощью программы Sprint Layout 5.0
На плате "LED clk" кнопки расположены сверху.
На плате "LED clk_v2" - сбоку.
Плата "LED clk_v3" для 2го варианта схемы - для больших индикаторов.

Сдесь фотка верхней части платы "LED clk_v2" с подписанными элементами для большей наглядности:

А тут со стороны монтажа:

Сдесь фотка верхней части платы "LED clk_v3" с подписанными элементами для большей наглядности:

Тут со стороны монтажа:

Прошивка контроллера Clck_6x14_v7.hex показывает день недели буквами - пН, оР, сР, ЧР, пА, сb, ос.

Почему день недели, а не год? - (Вы меня можете спросить)
Да потому что все и так знают какой сейчас год, а вот с днём недели иногда проблемы возникают.

Прошивка Clck_6x14_v7с.hex имеет коррекцию времени.
В период установки времени после установки дня недели
загораются часы и секунды.

В часах кнопками "-" и "+" устанавливаем время в секундах
на сколько нужно подводить время - диапазон от -4 до +4 секунд.
Затем нажав кнопку "OK" переходим к установке дней.
Если поставить 00, то коррекция будет происходить каждый день в 03:00.
Если 01, то через день.
Если 02, то через два дня.
И т.д. до 31го дня - то есть через 31 день.
Коррекция потребовала места в контроллере поэтому пришлось пожертвовать назначением сегментов.
Но их можно назначить сначала зашив в контроллер прошивку Clck_6x14_v7.hex,
назначить на ней сегменты и мигание секунд,
а потом не трогая EEPROM контроллера зашить прошивку с коррекцией.
Все настройки сохранятся.

Прошивка Clck_6x14_v7сb.hex имеет ещё и будильник помимо коррекции времени.
Чтобы поставить будильник жмём и держим кнопку "OK" в течении 3х секунд.
Когда на дисплее появится время ранее установленного будильника, а секундах появится b1 отпускаем кнопку.

Если кнопку продолжать держать, то мы войдём в установку времени.
Выставляем час и миеуты.
Если поставить 00:00 то будильник отключается.

Сработавший будильник отключается только кнопкой "OK".
Это сделано для того чтобы вы его не смогли пропустить, даже если увидите часики через пару - тройку часов.
Во время срабатывания на дисплее показывается его время, а вмсто секунд - b1.

Так же в момент срабатывания будильника включаются на постоянное свечение светодиоды LD1 - LD3 и мигают LD4 - LD6.

Как вам эта статья?

Концепция часов с большими цифрами

Конструктивно девайс будет состоять из двух плат – одна над другой. Первая плата – матрица светодиодов, образующих разряды часов и минут, Вторая – силовая часть (управление светодиодами), логика и питание. Такая конструкция сделает часики более компактным (без корпуса примерно 22см х 9 см, толщиной сантиметра 4-5) + даст возможность прикрутить матрицу к другому проекту, если что то пойдет не так.

Силовая часть будет построена на базе драйвера UL2003 и транзисторных ключах. Логическая - на Atmega8 и DS1307. Питание: 220В - трансформатор; логика 5В (через 7805), силовая часть - 12В (через LM2576ADJ). Отделено будет предусмотрена кроватка для батарейки 3В для автономного питания часов реального времени - DS1307.

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

Таким образом, в зависимости от комплектации алгоритм работы программы часов будет следующим:

Atmega8 – счетчик времени по таймеру. Работа в цикле без пауз: опрос клавиатуры, корректировка времени (если необходимо), отображение 4 разрядов и разделителя.

Atmega8 + DS1307 . Работа в цикле без пауз: опрос клавиатуры, корректировка времени DS1307 (если необходимо), зачитка времени с DS1307, отображение 4 разрядов и разделителя. Или другой вариант – зачитка с DS1307 по таймеру, остальное в цикле (пока не знаю как лучше).

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

Силовая часть часов

Силовая часть часов построена на драйвере UL2003 и транзисторных ключах VT1 и VT2.

UL2003 отвечает за управление сегментами индикатора, ключи – за управление разрядами.

Отдельно управляется разделитель часов и минут (сигнал K8).

Управление сегментами, разрядами и разделителем осуществляется от микроконтроллера подачей положительного потенциала (т.е. подачей +5В) на К1-К8, Z1-Z4.

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

В качестве транзистора VT1 (BCP53) можно использовать транзистор BCP52.

Схема силовой части часов с большими цифрами

Печатная плата семисегментного индикатора для часов с большими цифрами

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

Начнем с разработки и изготовления печатной платы индикатора.

Разработка печатной платы семисегментного индикатора для часов с большими цифрами

Печатная плата семисегментного индикатора для часов с большими цифрами в формате "lay" находится конце статьи, в присоединенных файлах. О технологии изготовления печатных плат методом ЛУТ можно почитать .

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

Готовая печатная плата семисегментного индикатора для часов с большими цифрами

Сборка семисегментного индикатора

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

Межслоевые переходы на плате индикатора

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

Подготовка к сборке индикатора

При установке диодов не забываем, что мы делаем индикатор с общим анодом - т.е. "+" диодов должны быть соединены вместе. Общие аноды на печатной плате - это большие фрагменты меди. Обязательно обратите внимание на анод разделительной точки.

Расположение анодов на печатной плате индикатора

В итоге, после 2 часов кропотливой работы должно получиться вот что:

Семисегментный индикатор

Цифровая часть часов

Цифровую часть часов с большими цифрами будем собирать по схеме:

Схема часов с большими цифрами

Схема часов довольно прозрачна, поэтому объяснять как она работает не вижу смысла. Печатную плату в формате *.lay можно скачать в конце статьи. Замечу, что печатная плата в основном разработана под детали для поверхностного монтажа.

Итак, элементная база, которую использовал я:

1. Диодный мост DFA028 (подойдет любой компактный для поверхностного монтажа);
2. Регуляторы напряжения LM2576ADJ в корпусе D2PAK, 78M05 в корпусе HSOP3-P-2.30A;
3. Транзисторные ключи BCP53 (корпус SOT223) и BC847 (корпус SOT23);
4. Микроконтроллер Atmega8 (TQFP);
5. Часы реального времени DS1307 (SO8);
6. Блок питания 14В 1,2А от какого-то старого устройства;
7. Остальные детали - любого типа, подходящие по размерам для установки на печатную плату.

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

Обратите внимание на номиналы сопротивлений R3 и R4 - они должны быть именно такими, какие указаны на схеме - не больше не меньше. Это сделано для того, что бы обеспечить на выходе регулятора напряжения LM2576ADJ ровно 12В. Если все таки не удастся найти такие номиналы резисторов, то значение сопротивления R4 может быть рассчитано по формуле:

R4=R3(12/1.23-1) или R4=8.76R3

Сборка цифровой части. Версия 1, без DS1307

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

Я рекомендую начать со сборки блока питания и только за тем выполнить монтаж цифровой части. Это общая рекомендация по самостоятельной сборке девайсов. Почему? Просто потому, что если блок питания собран с ошибкой можно пожечь всю низковольтную электронику, которая должна питаться этим блоком питания.

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

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

Контрольные точки и значения напряжений для блока питания часов

После того, как проверка блока питания выполнена приступаем к сборке цифровой части часов - устанавливаем все остальные элементы на печатную плату. Проверяем на КЗ, особенно в ногах микроконтроллера Atmega и драйвера UL2003.

Монтаж цифровой части часов

Обратите внимание на то, что сборку часов мы выполняем БЕЗ установки часов реального времени DS1307, однако вся обвязка этой микросхемы должна быть выполнена. В будущем, если возникнет необходимость, это сэкономит нам время на доработку часов под вторую версию, там где все таки будут использоваться отдельные, независимые часы реального времени на DS1307.

Предварительная проверка микроконтроллера ATMEGA8

Для того, что бы проверить правильность и работоспособность микроконтроллера нам потребуется:

1. Программатор, например USBASP .
2. Дата-кабель V4 для внутрисхемного программирования микроконтроллера.
3. Программа AVRDUDESHELL.

Подключаем плату часов к дата-кабелю. Дата-кабель подключаем к программатору. Программатор к компьютеру, на котором установлена программа AVRDUDESHELL. Подключать плату часов к питающей сети 220В не следует.

Удачное чтение данных с микроконтроллера программой AVRDUDESHELL

Если при чтении фьюзов возникла проблемы - проверяйте монтаж - возможно где то есть короткое замыкание или "непропай". Еще один совет - возможно микроконтроллер находится в режиме низкоскоростного программирования, тогда достаточно переключить программатор в этот режим (

Эта статья о простых часах на 7-ми сегментном индикаторе. По большому счету это статья воспоминание, так сказать, чтоб не забыть. Забегая далеко на перед, дабы зря не тратить время ардуинолюбов, сообщу, что сердцем часов является микроконтроллер PIC16F873A, а лицом 7-ми сегментный 4-х разрядный индикатор с высотой символа 30мм.

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

И вот. Сердцем часов служит микроконтроллер PIC16F873A фирмы «Микрочип». Я начинал программировать на этих контроллерах. Но особо великих успехов не добился, научился писать только на picbasic pro, да и с прерываниями не срослось. Однако, что то все-таки получалось. PIC здесь задействован в роли контроллера для вывода информации, отсчет времени ведет микросхема DS1307 — часы реального времени. Некоторые засмеют, что мол, и одного пика хватит, но это не для моего случая. Информация выводится на довольно большой 7-ми сегментный 4-х разрядный индикатор с общим катодом. (все даташиты будут по ссылке в конце статьи). Реализовано изменение яркости свечения индикатора в зависимости от освещенности. Ну и как же без бесполезной функции будильника, он тут есть. Неверно сразу покажу фотку изделия, а потом продолжу:

Сверху натянута пленка, вырезанная из антистатического пакета, так как белые пустые сегменты ну прям в глаза въедаются. А сверху видно глазок фоторезистора. Провода слева это датакабель программатора. Ну а теперь глянем схему (она кликабельная):

И прям сразу печатную плату:

В конструкции все соответствует схеме, кроме токоограничивающих резисторов индикатора, у меня установлены номиналом 240 Ом и smd транзисторы выпаянные из материнки. Кварц для DS1307 тоже выпаян из материнки вместе с держателем батарейки. Сейчас я бы наверно не стал использовать именно DS1307 как счетчик времени, так как очень она капризна к разводке земли и сильно подвержена температурному дрейфу. Но уже что сделано, то сделано. Плата односторонняя с двухсторонним монтажом. Габарит платы вписывается в габарит индикатора. И последняя «подгнившая изюминка» этого проекта это стабилизатор питания — MCP1701AT-5002I фирмы микрочип. У него есть как сладкая сторона, так и горькая. Классная сторона это падение напряжения на нем порядка 0,3 — 0,6 В (за точной цифрой надо лезть в даташит), а это значит, что можно использовать источник питания начиная от usb выхода ПК и до старых зарядок для мобил. Сторона по хуже это то, что входное напряжение должно біть не более 10 В, блоки питания от роутеров уже не канают. Управляются часы всего двумя клавишами. Ну и фото платы:




© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows