- Цена: $0,99
Что-то непонятное — это убегание на 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.
ОНО ЖИВОЕ!



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

(c) 2015 Источник материала.