Я уже писал подобный
обзор здесь. Было сделано 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.
ОНО ЖИВОЕ!
Ну вот и всё. Осталось только причесать код.
Некоторые наверное скажут, что легче купить и вид эстетичнее, и будут правы, но это же хобби. Рыбу тоже легче купить в магазине, чем ловить самому. Считать точную себестоимость сего изделия не берусь, но обошлось оно мне примерно в тысячу рублей и пару дней приятного времяпрепровождения.
Все ссылки в обзоре ведут на проверенных мной продавцов.
Если у кого есть вопросы по схеме, прошивке, деталям, пишите, отвечу.
— К чему тебе столько спирта? — Для протирки струн! — Каких струн? — Струн души!
Теги поправьте.
Никак не решусь, потом как со схемотехникой туго)))
Собираюсь сделать два здоровенных таймера
Я все свои самодельные, собранные ещё в глубоко советское время, начиная со схемотехники на микросхемах 133-ей серии и лампах ИН-18, развивая на 176-й и заканчивая на КР145ИК1901, уже лет 20 назад лет определил на покой в гараже, сейчас вместо них индицирует время спутниковый ресивер с автосинхронизацией из космоса или по сети.
Даже лежат где то, вместе с часами.
Действительно, получается небюджетно.
@odinokiianonim: драйвер для 7-сегментников выбрал себе такой же. Полностью поддерживаю Ваш энтузиазм. От души плюсанул обзор и в карму (в карму уже давно).
Вот мои, 4 года радуют уже (сорри, с телефона, горизонтально н удалось зафиксировать).
Телефон ловит только у окна
Окно на юг. Могу сделать фотку ноля спутников на коптере на столе
Но вот на часы уже смотреть не могу, видимо, основательно пересобирал их в 80-х :-)
Разводка DS1307 оказалась неудачной, да и кварц часовой — полное г. Два будильника, автоматическая регулировка яркости. С точностью возникли проблемы. Был прикручен PIC18F258 (из тех же халявных) c китайской платочкой на enc28j60. Теперь с точностью проблем нет :) Синхронизируются каждые 10 минут с моим контроллером домена. Правда, из-за ущербности 258-го контроллера в области оперативки, удалось втиснуть шибко погрызенный кусок стека TCP/IP и писать программку, пересылающую данные по UDP.
Еще бы корпус сделать… Это моя вечная проблема… :(
Респект!!!
Для своих поделок-экспериментов вместо «голой» MAX7219 взял вот такой наборчик
https://aliexpress.com/item/item/MAX7219-Dot-Matrix-Module-Display-DIY-kit-SCM-Control-for-Arduino-Free-Shipping-Wholesale/1216023150.html
За переплату в 40 центов получаем дополнительный набор для рукожопства на пару-тройку вечеров.
PS индекс CNG кажется означает, что там какая-то китайская кодировка реализована. Мне кажется лучше брать с индексом ENG
Хотя могу ошибаться
Да уж хобби вредное для… печени )
А если серьезно — ну несерьезно так делать… Уж принтер то дома точно не помешает, а качество вырастет на порядок…
Еще один момент — вы вначале сверлите, потом травите… это не гуд — внутри отверстия не защищены от хлорного железа и это потенциальная проблема… И сверлить при односторонней плате лучше со стороны дорожек — отверстия будут более аккуратные… Хотя в данном случае абсолютно не критично )
При таком качестве сборки, ежемесячная профилактика в виде пропайки — не будет лишней )
Ну и сама задумка: хоть бы синхронизацию сделать — ntp, датчик освещенности… да уровень паров спирта вокруг хотя бы — и то было бы интереснее! Должна быть какая-то изюминка, которой нет у часов из ларька.
Кстати, разъемчики эти, которые типа мама, у вас используются — очень хренового качества… если есть возможность использовать разъемы для круглых контактов — они на порядок лучше.
На уровне младшей группы кружка юных техников — норм!
Впрочем если оно радует хозяина — то и нормально…
а мне норм. не на продажу же
знаю. специфика моего наркоманского метода, так удобнее. кстати ни одного отверстия не сожрало. я тыкаю нос маркера в отверстия.
так и делал
я не претендовал на конкурс ЛУЧШАЯ ПЛАТА 2015. самый ужас под спойлеры убрал
это лишнее
ардуиномышление. это часы, они показывают время, точность достаточная. минимализм типа.
они ужасны, да. не сообразил купить те что нужно, решил использовать имевшиеся
лол
раз уж стоит ардуина — так хоть пригрузить ее чуток
на дальнем фоне arduino nano — но тут подойдет любая
слева датчик влажности и температуры dht22
чуть правее DS3231 — модуль времени с батарейкой
кнопки подключены на контроллер
ну и панелька со встроенным драйвером
минут за 20-30 соберет любой школьник, примеров в сети кода полно
ардуина в последствии заменена на Pro Mini atmega328 (на фото была Uno кстати)
датчик температуры и влажности DHT22/AM2302
модуль RTC DS3231, кстати в нем есть термодатчик и температуру можно с него брать
за основу взята информация отсюда, но в последствии сильно переработана под свои желания. (убраны ненужные режимы, используется 3 сместо 4 матриц, шрифт переделан и теперь высота символов 8 точек, добавлены метео возможности)
подкорректировать можно что угодно, тут ваша фантазия.
разобраться можно во всем, не особо сложно, для меня это тоже хобби
небольшое видео slide clock
после все было спаяно на макетке
примеры отображения
на LED матрицы наклеена тонировка
надо делать корпус
P.S. я как обзорщик на этом сайте, думаю имею право разместить небольшую просьбу) Друзья, буду рад видеть Вас в своей группе вконтакте <гoвносссылка> Группа посвящена китайской электронике: новости о новинках китайских смартфонов, их обзоры и много другой интересной информации! Вступайте, а я сделаю все, чтобы вы не пожалели об этом. Спасибо!)
к тому же есть такое понятие — хобби:)
Добавлю совсем не много от себя.
1. Печатную плату конечно лучше делать с помощью лазерного принтера. Быстро, просто, эстетично.
2. Лудить лучше всего (мне понравилось ) в глицерине с помощью сплава Розе.
3. Вместо MAX7219 я использовал 74HC595 которые стоят у нас в магазинах порядка 10 ре за штуку. Без всяких переделок могут работать как с общим анодом так и с общим катодом.
Собирал все на smd компонентах. Несколько фоток.
Время со спутника(дешевый gps-модуль), доп. OLED экранчик для форсу бандитского, регулировка яркости от освещенности, температура с внешнего беспроводного датчика температуры (ds18b20) с питанием от солнечной батареи (аккумулятор от сотового телефона с контроллером заряда для резерва)… Передатчик спит все время, просыпается что бы померять температуру, напряжение на аккумуляторе и передать данные.
И наклеить тонировочную пленку на индикаторы, чтобы скрыть негорящие сегменты ;).
У меня на кухне цифровой термометр и двое часов — на микроволновке и на электроплите. Термометр с черным тонированным стеклом, часы — с прозрачным. Солнечным днем нормально видно только термометр.
А еще выше в комментах есть фото матрицы с наклеенной тонировкой, тоже хорошо убеждает :).
у меня резисторы по 20 ом вообще, до сих пор все работает и не греется
Дайте пожалуйста ссылку на форум. Есть еще вопросы по схеме подключения больших индикаторов через max7219. Например как подключать десятичную точку?
форум в личку. он специфичен, но нет старых зануд
А пока — мысли по развитию:
Прикрутить бы ПДУ на RC-5 и пару разрядов для отображения секунд.
Продублировать кнопки управления на пульт. Добавить регулировку яркости с пульта.
Тогда можно убрать мелкий дисплей, а дату в формате ЧЧ: ММ: ГГ вызывать с пульта.
просто у меня что-то не получается в протеусе завести эту схему, на индикаторе с общим анодом горят все символы :(
пробовал свою прошивку на общем катоде и все работало
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.