Концепция часов с большими цифрами
Конструктивно девайс будет состоять из двух плат – одна над другой. Первая плата – матрица светодиодов, образующих разряды часов и минут, Вторая – силовая часть (управление светодиодами), логика и питание. Такая конструкция сделает часики более компактным (без корпуса примерно 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
Если при чтении фьюзов возникла проблемы - проверяйте монтаж - возможно где то есть короткое замыкание или "непропай". Еще один совет - возможно микроконтроллер находится в режиме низкоскоростного программирования, тогда достаточно переключить программатор в этот режим (тык) и заново попробовать прочитать микроконтроллер.
Сборка цифровой и силовой частей
Конструкция часов разработана с таким расчетом, что плата семисегментного индикатора должна крепиться над платой электроники. Так и поступаем. Соединяем многожильным (13 проводов) шлейфом платы. Длина шлейфа - сантиметров 5-6.
Соединение шлейфом печатных плат
Сами платы соединяем на расстоянии 3 см. В качестве распорок между платами я использовал разрезанный в соответствующий размер фломастер. Была проблема найти достаточно длинные винты М3, поэтому в качестве крепления использовал провод.
Крепление плат
Загрузка программы часов в микроконтроллер
Для загрузки программы нам потребуется программатор USBASP и дата-кабель V4, а так же архив, размещенный в конце статьи.
Часы подключаем к программатору (расстояние в 3 см между платами как раз позволяет это сделать).
Архив распаковываем в любую папку. Архив содержит в себе программу для прошивки микроконтроллеров (программа называется avrdude), поэтому достаточно перейти в папку "prog" и по очереди запустить файлы fuseprog.bat а за тем progprog.bat. Первый настроит фьюзы, второй запишет программу.
И еще, если вы используете программатор отличный от USBASP, вам необходимо скорректировать "батники", указав там свой программатор.
Результат
Примечание: Если вы будете повторять конструкцию - не сочтите за труд - вышлите мне свои фотографии готовых часов для того, что бы я мог разметить их в этом блоге.
Скачать схему, печатную плату и программу часов с большими цифрами
Конструктивно девайс будет состоять из двух плат – одна над другой. Первая плата – матрица светодиодов, образующих разряды часов и минут, Вторая – силовая часть (управление светодиодами), логика и питание. Такая конструкция сделает часики более компактным (без корпуса примерно 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 может быть рассчитано по формуле:
Сборка цифровой части. Версия 1, без DS1307
Если при изготовлении печатной платы часов вы придерживались рекомендаций, изложенных в этой статье, то тогда вам излишне напоминать, что перед сборкой печатная плата должна быть просверлена, все видимые короткие замыкания на ней устранены, а плата покрыта жидкой канифолью? Тогда приступаем к сборке часов.
Я рекомендую начать со сборки блока питания и только за тем выполнить монтаж цифровой части. Это общая рекомендация по самостоятельной сборке девайсов. Почему? Просто потому, что если блок питания собран с ошибкой можно пожечь всю низковольтную электронику, которая должна питаться этим блоком питания.
Если все сделано правильно - блок питания должен заработать сразу. Проверяем сборку блока питания - замеряем напряжение в контрольных точках.
На рисунке показаны контрольные точки, в которых следует проверить напряжение питания. Если напряжение соответствует заявленному, можно приступать к сборке цифровой части часов. Иначе проверяем монтаж и работоспособность элементов блока питания.
После того, как проверка блока питания выполнена приступаем к сборке цифровой части часов - устанавливаем все остальные элементы на печатную плату. Проверяем на КЗ, особенно в ногах микроконтроллера Atmega и драйвера UL2003.
Обратите внимание на то, что сборку часов мы выполняем БЕЗ установки часов реального времени DS1307, однако вся обвязка этой микросхемы должна быть выполнена. В будущем, если возникнет необходимость, это сэкономит нам время на доработку часов под вторую версию, там где все таки будут использоваться отдельные, независимые часы реального времени на DS1307.
Предварительная проверка микроконтроллера ATMEGA8
Для того, что бы проверить правильность и работоспособность микроконтроллера нам потребуется:
1. Программатор, например USBASP.
2. Дата-кабель V4 для внутрисхемного программирования микроконтроллера.
3. Программа AVRDUDESHELL.
Подключаем плату часов к дата-кабелю. Дата-кабель подключаем к программатору. Программатор к компьютеру, на котором установлена программа AVRDUDESHELL. Подключать плату часов к питающей сети 220В не следует.
Пытаемся прочитать, например, фьюзы микроконтроллера. Если все ОК - поздравляю. Работу по изготовлению часов с большими цифрами можно считать практически законченной.
Если при чтении фьюзов возникла проблемы - проверяйте монтаж - возможно где то есть короткое замыкание или "непропай". Еще один совет - возможно микроконтроллер находится в режиме низкоскоростного программирования, тогда достаточно переключить программатор в этот режим (тык) и заново попробовать прочитать микроконтроллер.
Сборка цифровой и силовой частей
Конструкция часов разработана с таким расчетом, что плата семисегментного индикатора должна крепиться над платой электроники. Так и поступаем. Соединяем многожильным (13 проводов) шлейфом платы. Длина шлейфа - сантиметров 5-6.
Сами платы соединяем на расстоянии 3 см. В качестве распорок между платами я использовал разрезанный в соответствующий размер фломастер. Была проблема найти достаточно длинные винты М3, поэтому в качестве крепления использовал провод.
Загрузка программы часов в микроконтроллер
Для загрузки программы нам потребуется программатор USBASP и дата-кабель V4, а так же архив, размещенный в конце статьи.
Часы подключаем к программатору (расстояние в 3 см между платами как раз позволяет это сделать).
Архив распаковываем в любую папку. Архив содержит в себе программу для прошивки микроконтроллеров (программа называется avrdude), поэтому достаточно перейти в папку "prog" и по очереди запустить файлы fuseprog.bat а за тем progprog.bat. Первый настроит фьюзы, второй запишет программу.
И еще, если вы используете программатор отличный от USBASP, вам необходимо скорректировать "батники", указав там свой программатор.
Результат
Примечание: Если вы будете повторять конструкцию - не сочтите за труд - вышлите мне свои фотографии готовых часов для того, что бы я мог разметить их в этом блоге.
Скачать схему, печатную плату и программу часов с большими цифрами