Радиокот простые часы на светодиодных матрицах. Часы на светодиодных матрицах

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

Делалось это для того чтоб попробовать изготовить сегментные часы, из расчёта по три светодиода на сегмент 7*4*3=84+2=86 штук

Вот приблизительно по такому принципу:

Хотелось попробовать разный цвет и обязательно яркие (а как по другому-то?)

По этому партии по 100 штук меня вполне устраивали, тем более цена вполне приемлемая, а так-же, заказал ещё в этом же магазине - сделать разноцветными цифры, чтоб можно было сравнить цвета на одном дисплее - какой будет красивее, ну и так - поприкалываться… :)

Товар заказан и оплачен был 20 августа 2016 , а прибыл 15 сентября 2016 , по нашим меркам достаточно оперативно. НО! Светодиоды красного цвета - не пришли! По окончанию срока защиты покупателя был открыт спор и продавец вернул деньги. Было просто жаль потраченного времени…

Товар пришёл в стандартном жёлтопупырчатом почтовом конверте, сами светодиоды были упакованы в отдельный целлофановый пакет, количество штук в синие, зелёные - было чуть больше 100 (точно сейчас уже не помню, но помню что было на 4-5 штук больше)

Все рабочие (т.е. светятся)

В тех, что разноцветные - было упаковано в отдельные пакетики, на которых было маркером помечен цвет R G B W Y - цвет везде соответствовал, и так-же по 2-3 лишних - создавалось впечатление, что так наверное у всех, но позже убедился, что не всегда так - бывает и наоборот…

Если бы не косяк с красным цветом, продавцу можно было-бы поставить жирную пятёрку с плюсом за нежадность.

С другой стороны, деньги возвращены - проблема в потерянном времени, а ещё он прислал письмо, где он писал, что мол возвращает мне СВОИ деньги, и если товар придёт - просил вернуть ему эту сумму

Дословно:

Hi, my friend, I am now a refund, when you receive a package, please return my money,Please give me a five-star high praise.

На что ему пришлось накатать письмо, что это не ЕГО деньги, а просто он возвращает мне в результате спора МОИ деньги, т.к. я его товара так и не получил и при этом потерял много времени ожидая его товар

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

На что он без всяких «хелоу френд» - сухо ответил «60 дней ещё не прошло»

А тут вдруг и «другом» стал, и вроде как ЕГО денеги поимел…

Но в общем-то - продавец свои обязанности выполняет, на письма реагирует, от отправленного товара - эмоции только положительные, деньги за не отправленное вернул - всё согласно ПРАВИЛ

Ну а теперь про то ради чего это преобреталось

Самодельные часы на самодельных светодиодных матрицах


Часы на светодиодных матрицах (описание и сборка)
Оригинал статьи находится по адресу: http://radiokot.ru/circuit/digital/home/103/
Автор разработки O-LED, комплектация
Схема устройства была немного изменена и стала иметь следующий вид:

Сердцем устройства является микроконтроллер IC1 , в него «зашита» управляющая программа, которая ведет отсчет времени, опрашивает датчики температуры D1, D2, датчик освещенности R35, подает звуковые сигналы на SP1 и выводит информацию на светодиодные матрицы H1-H3.
Для согласования микроконтроллера с матрицами служит микросхема D3. Это регистр с мощным выходом, который выдерживает большие токи, чем МК и позволяет «сэкономить» его выводы.
Микросхема D4 – это ШИМ контроллер. Его задача понизить входное напряжение от +7…+24Вольт до стабильных 5 вольт. Резисторами R32,R33 и задается значение выходного напряжения. Очень толковое описание данной микросхемы можно почитать по этой ссылке (http://mysku.ru/blog/aliexpress/39481.html). В качестве измерителей температуры служат цифровые датчики D1 и D2, один из которых устанавливается на улице, другой остается дома, на плате. Конденсаторы С1-С4, С6, С7, С10 служат для сглаживания помех по питанию. Конденсатор большой емкости С5 (ионистор) необходим для поддержания питания микроконтроллера при пропадании общего напряжения на схеме. Это позволяет не сбрасываться часам при пропадании электричества. Его заряда хватает на 3 - 4 дня непрерывной работы IC1. При этом диод VD1 не позволяет ему разряжаться через другие элементы схемы.
Датчиком освещенности служит фоторезитор R35. Он реагирует на внешнее освещение и «говорит» МК какую необходимо установить яркость свечения светодиодных матриц. При отсутствии R35 яркость свечения в ночное и дневное время можно задать программно.
Кварцевый резонатор XT1 задает тактовую частоту отсчета времени. От его работы зависит точность хода часов. Автором устройства была предусмотрительно сделана программная коррекция точности.
Настройка, установка и управление устройством осуществляется всего двумя кнопками «ОК» и «STEP» (в переводе ШАГ). Сброс устройства осуществляется кнопкой «RESET»(SW3). Кнопкой «STEP» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «STEP». Нажатие любой кнопки во время сигнала будильника отключает его.
Схема управления получилась такой:



В обычном режиме на экране отображается время в формате часы-минуты. С интервалом в одну минуту (настраивается пользователем) происходит запуск бегущей строки. В ней отображается день недели, дата, год, темп. дома, и темп. на улице(если установлены соответствующие датчики). Бегущая строка настраиваемая, т.е. можно включить/выключить отображение любого из элементов. (многие пользователи,например, всегда отключают отображение года). При выключении отображения всех элементов бегущей строки, она не запускается вовсе, и часы постоянно отображают только время.
9 будильников разделены на 3 одноразовых и 6 многоразовых. При включении будильников 1-3, они срабатывают только один раз. Для того чтоб они сработали еще раз, их нужно повторно включать вручную. А будильники 4-9 многоразовые, т.е. они будут срабатывать ежедневно, в установленное время. Кроме того эти будильники можно настроить на сработку только в определенные дни недели. Это удобно, например если не хотите чтоб будильник разбудил Вас в выходные. Или, например, Вам нужно просыпаться в будние дни в 7-00, а в четверг в 8-00, а на выходных будильник не нужен. Тогда настраиваем один многоразовый на 7-00 в понедельник-среду и пятницу, а второй на 8-00 в четверг….. Кроме того все будильники имеют настройку длительности сигнала, и если Вам, для того чтоб проснуться, мало сигнала в течении 1 минуты, то можно увеличить его на время от 1 до 15мин.
Коррекция хода производится один раз в сутки, в 00-00. Если часы спешат к примеру на 5 сек в сутки, то в 00-00-00 время установится в 23-59-55, если же часы отстают на 5 сек, то в 00-00-00 время установится в 00-00-05. Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от ионистора (конденсатор С5).

Сборка часов.


Итак, набор пришел, начинаем сборку!
Первым делом устанавливаем ШИМ – контроллер на микросхеме D4, а так же элементы его обвязки C1, С8, С9, R32 – R34, L1 и VD2. Следует обратить внимание, что в наборе, в основном, используются резисторы и конденсаторы типоразмера 1206, и только элементы ШИМ-контроллера (перечисленные выше) имеют меньший размер – 0805.

После успешной установки подаем питание на схему больше 7вольт и проверяем, что бы на плюсовом выводе С1 было напряжение примерно 5вольт. Если все в порядке, продолжаем сборку устройства в любом порядке, запаивая сперва самые мелкие детали, потом крупнее и т.д.
Если планируется питать плату от пятивольтового источника тока, схему ШИМ- контроллера можно не собирать, а подавать напряжение непосредственно на С1, соблюдая полярность.
На плате предусмотрено три варианта установки датчика освещения R35. Куда именно его запаять – выбор за вами, это никак не отразится на работе схемы. Тоже самое и с кнопками управления “OK” и “STEP”. Их можно спрятать с обратной стороны платы, а излишки печатки отрезать по белой линии – что бы получить миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.




После сборки часы заработают сразу. Управляющая программа уже ЗАШИТА в микроконтроллер. Нажав кнопку «RESET» часы высветят версию прошивки (в нашем случае это v.1_09) и через пару секунд начнут показывать время, маяча секундной точкой слева направо. Нужно убрать защитную пленку с матриц и можно пользоваться часами.
Ну и финальный результат должен выглядеть примерно так:


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

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

Эти светодиоды были заказаны ещё ДО того как я решил делать часы на матрицах
Я заказал три разных цвета светодиодов у одного продавца: , и
Делалось это для того чтоб попробовать изготовить сегментные часы, из расчёта по три светодиода на сегмент 7*4*3=84+2=86 штук
Вот приблизительно по такому принципу:

Хотелось попробовать разный цвет и обязательно яркие (а как по другому то?)
По этому партии по 100 штук меня вполне устраивали, тем более цена вполне приемлемая, а так-же, заказал ещё в этом же магазине - сделать разноцветными цифры, чтоб можно было сравнить цвета на одном дисплее - какой будет красивее, ну и так - поприкалываться… :)

Товар заказан и оплачен был 20 августа 2016 , а прибыл 15 сентября 2016 , по нашим меркам достаточно оперативно. НО! Светодиоды красного цвета - не пришли! По окончанию срока защиты покупателя был открыт спор и продавец вернул деньги. Было просто жаль потраченного времени…

Товар пришёл в стандартном жёлтопупырчатом почтовом конверте, сами светодиоды были упакованы в отдельный целлофановый пакет, количество штук в синие, зелёные - было чуть больше 100 (точно сейчас уже не помню, но помню что было на 4-5 штук больше)
Все рабочие (т.е. светятся)
В тех, что разноцветные - было упаковано в отдельные пакетики, на которых было маркером помечен цвет R G B W Y - цвет везде соответствовал, и так-же по 2-3 лишних - создавалось впечатление, что так наверное у всех, но позже убедился, что не всегда так - бывает и наоборот…

Если бы не косяк с красным цветом, продавцу можно было-бы поставить жирную пятёрку с плюсом за щедрость.

С другой стороны, деньги возвращены - проблема просто в потерянном времени и обманутых ожиданиях
А ещё он прислал письмо, где он писал, что мол возвращает мне СВОИ деньги, и если товар придёт - просил вернуть ему эту сумму
Дословно:

Hi, my friend, I am now a refund, when you receive a package, please return my money,Please give me a five-star high praise.
На что ему пришлось накатать письмо, что это не ЕГО деньги, а просто он возвращает мне в результате спора МОИ деньги, т.к. я его товара так и не получил и при этом потерял много времени ожидая его товар

Кстати, когда пришли все остальные заказы от него, спустя 10 дней, я написал ему, что мол - переживаю, т.к. это странно - все пришли, а один из заказов не пришёл
На что он без всяких «хелоу френд» - сухо ответил «60 дней ещё не прошло»
А тут вдруг и «другом» стал, и вроде как ЕГО деньги поимел…

Но в общем-то - продавец свои обязанности выполняет, на письма реагирует, от отправленного товара - эмоции только положительные, деньги за не отправленное вернул - всё согласно ПРАВИЛ

Ну а теперь про то ради чего это приобреталось

Часы + радио+метео+ПДУ

Давно хотелось сделать часы на RGB матрицах. Были найдены и заказаны матрицы GMT2088. Но как говорится аппетит приходит во время еды. Т.к даже просто цветные часы это скучно, то решено было воткнуть в них FM тюнер, эквалайзер, датчики влажности, температуры и давления. Также сделана возможность работы от аккумуляторов на случай пропадания основного сетевого напряжения.

В итоге получились такие часы:




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

Возможности настройки часов:

1. Цвет отображения принимаемой радиостанции. Для целой и дробного значения станции можно установить свой цвет.

2. Настройка цвета бегущей строки.

3. Изменение скорости бегущей строки.

4. Настройка цвета отображения часов. Можно каждому символу установить свой цвет.

5. Радио диапазон 65мГц до 108мГц. Сохраняет в памяти до 20 станций радио.

6. Звук для каждой станции сохраняется отдельно также как и установки эквалайзера.

7. Будильников 7 . Настраивается время включения, время выключения, громкость звука, дни включения, звук нарастающий или нет и включаемая радиостанция или зуммер.

8. Регулировка НЧ и ВЧ частот.

9. Выбор шрифта отображения часов до 8 шрифтов, можно загружать свои шрифты.

10. Автоматическая или ручная регулировка яркости матрицы.

А) Полностью автоматическая в зависимости от освещенности

Б) Ручная клавишами на ПДУ или самих часах

В) По установленному времени. Устанавливается время включения минимальной и максимальной яркости.

11. Контроль заряда резервной батарейки часов.

12. Управление часами при помощи ПДУ. Сделана возможность обучения ПДУ (форматы NEC, RC5, SAMSUNG)

13. Сделано 6 варианта замены символа при изменении времени. (позже будут добавлены еще варианты)

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

15. Таймер выключения с максимальным интервалом 99 минут. Выключает звук радио.

16. Установка предела яркости минимального и максимального.

17. Принудительный вывод бегущей строки с информацией о температуре в помещении и на улице

Программное обеспечение полностью написано на ассемблере а AVR Studio. Может где -то и не очень грамотно программа написана, т.к занялся ассемблером чуть больше года и то только в свободное время, но главное стабильно работает и быстро.

Сердцем устройства выступает AVR Atmega32 на частоте 16 мГц. Часы сделаны на двух платах. На одной матрицы с обвязкой. На второй все остальное.

Управление матрицами столбцами отдано регистрам STP16CP05 в корпусе TSSOP-24. У этих регистров 16 выходов и нагрузка на каждый выход до 80мА. Управление строками дешифратор 74HC138. На выход дешифратора установлены полевые транзисторы IRF7314. Модули RGB не впаивал в плату, а были установлены в разъемы.

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

FM радио реализовано а микросхеме RDA5807. У этой микросхемы достаточно хорошая чувствительность.

В качестве датчика влажности применен готовый модуль AM2321. В качестве датчика давления готовый модуль BMP180. В этих датчиках также есть датчик температуры.

Датчик BMP180:

Модуль AM2321:


В качестве эквалайзера применена микросхема TEA6330T. Она отвечает за регулировку громкости и настройки НЧ и ВЧ частот.

Усилитель мощности сделан на PAM8403. Маленькая микросхема но выдает достаточную мощность. На выход подключены динамики 8 Ом 2Вт. Можно подключать и динамики на 4 Ом. При 8 Ом выходная мощность примерно 1.6 Вт. При 4 Ом динамике 3 Вт.

В часах предусмотрена автономная работа от аккумулятора(АКБ) . Был установлен АКБ марки L12T1P31 3.7В 3700 мАч.

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

Время работы от АКБ в режиме часов с пониженной яркостью примерно 15 часов. Время работы с максимальной яркостью, шрифт широкий, громкость радио средняя примерно 5 часов.

Реализован контроль напряжения АКБ. Т.К внутренний контролер АКБ отключает ее при напряжении ниже 2.5 В, а при снижении напряжения ниже 3.2 В преобразователь начинает работать не правильно и на его выходе его всего 5В. Часы уходят в бесконечный Reset. Поэтому и был выбран порог напряжения 3.2В что бы не опускать до минимального напряжения для преобразователя. Если напряжение опуститься ниже 3.2В часы будут обесточены.

На плате предусмотрена возможность установки специализированной микросхемы контроля напряжения типа BU48xx. В данной схеме BU4832 контроль 3.2 В.

Контроль заряда аккумулятора собран на мс TP4056. Преобразователь напряжения с 3.7в до 12в собран на LM3488.

Предусмотрена возможность установки как 3-х так и 2-х контактных АКБ. Если не нужен контроль температуры АКБ то часть элементов не устанавливаем (подробно см. схему).Все схемы платы и прошивка в конце статьи.

На элементах R13 R14 собран делитель для контроля напряжения резервной батарейки.

На элементах R1 R10 R11 R12 собран делитель для контроля освещенности в автоматическом режиме.

На элементах Q1 Q2 R19-R22 собран согласователь уровней т.к некоторые мс питаются напряжением 3В, а некоторые 5В.

Для начала схемы основного модуля, модуля RGB матриц и модуля даткика наружной температуры

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

Нижняя сторона платы:


На нижней стороне резисторы на 2.4 кОм просто напаяны на выводы.

Верхняя сторона без установленных матриц:


Вид сбоку:


Вид сверху:


Эффекты смены цифр (на видео не все эффекты)

Управление часами


При первом включении часов управлять ими можно только кнопками. Что бы была возможность управлять ПДУ нужно обучить часы сигналам с ПДУ. Для этого зажимаем любую из кнопок управления и нажимаем кнопку "Сброс". Пробежит бегущая строка "Настройка ПДУ" и увидим отображение первого формата ПДУ - NEC . По умолчанию на матрицах высвечивается первый протокол NEC. Перебор протоколов нажатием любой из кнопок на задней панели часов. Протоколы меняются по кругу NEC - Samsung - RC5.




Как я уже написал выше по умолчанию выставлен протокол NEC. Берем ПДУ и нажимаем на нем любую кнопку. Если выбранный протокол и протокол ПДУ совпали то надпись станет зеленой и далее устройство перейдет в режим обучения ПДУ. Если протоколы не совпали то на матрицах не будет никаких изменений и надпись так и останется голубой. Переставляем на следующий протокол и жмем опять любую кнопку ПДУ.
Определение протокола должно сработать с первого нажатия кнопки ПДУ. Если срабатывает со второго нажатия кнопки ПДУ или более то протоколы не совпадают и надо выбрать другой протокол.
Т.к протоколы NEC и Samsung немного похожи то пульт формата NEC можно обучить в режиме протокола Samsung но потребуется по два раза нажимать одну и туже кнопку. В дальнейшем попробую подкорректировать интервалы замеров импульсов и возможно это уберется.

Протокол RC5 самый простой. В этом режиме можно обучить любой ПДУ но работать он нормально не будет. В этом режиме будет нормально работать только ПДУ протокола RC5 .
Про отличие протоколов ПДУ очень много написано статей и описывать тут все это не буду.

После определения протокола программа перейдет в режим обучения кнопок ПДУ. На матрицах будет высвечиваться какую кнопку нужно нажать. В режиме ожидания цвет символа будет голубой.


Нажимаем кнопку на ПДУ. Если данные приняты удачно то цвет символа станет зеленым:


Если данные приняты с ошибкой то цвет на пару секунд станет красным, а затем устройство перейдет в повторное ожидание нажатия кнопки.


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

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

После настройки пульта мы увидим отображаемое время. Из этого режима можно перейти в разные меню. В программе предусмотрен контроль установленных микросхем TEA6330 и RDA5807. Если какая-то микросхема ни будет установлена то не возможно будет перейти в меню ее настройки и будет введена соответствующая бегущая строка либо "Эквалайзер не найден" либо " Радио не найдено ".

Описание действия кнопок ПДУ:

Кнопка Вкл/Выкл - включение - выключение матрицы

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

Кнопка стрелка влево или стрелка вправо - смена шрифта в режиме отображения времени, а в режиме настройки будильника перемещение по подменю будильника

Кнопка "1" - меню "Часы"

Кнопка "2" - меню "Радио"

Кнопка "3" - меню "Будильники"

Кнопка "4" - меню "Эквалайзер"

Кнопка "5" - вывод бегущей строки

А) одно нажатие вывод информации со всех датчиков

Б) два нажатия в течении 3 сек вывод только уличной температуры.

Кнопка "6" - меню "Таймер выключеня"

Кнопка "8" - установка/сброс минимальной и максимальной яркости

Кнопка "9" - сброс секунд и коррекция времени через интернет

Кнопка "0" - автоматическая или ручная регулировка яркости

Кнопка CH+ и CH - перелистывание радио станций в режиме FM

Кнопка звук + и звук - регулировка громкости

Кнопка Вкл/Выкл звука - включение выключение звука

Кнопка "МЕНЮ" - переход в основные настройки в режиме времени, переход в настройки радио в режиме радио и настройки будильников в режиме будильников

Кнопка "ESC" - выход из подменю

Переход в зависимости оттого в каком режиме находится устройство. Если находится в режиме "Время" ,то переход будет в основные настройки. Если в режиме "Радио" , то переход в настройки радио. Если в режиме "Будильники", то в настройки будильника

Кнопка "ОК" - подтверждение изменений в режимах настройки

В часах 8 шрифтов для отображения времени. Переключение между шрифтами кнопками "Влево" или "Вправо" ПДУ или S6 на плате часов.

Пример широкого шрифта:


Пример узкого шрифта:


Добавление своих шрифтов

Шрифты хранятся в EEprom. Максимально можно загрузить 8 шрифтов.

Шрифт создавал при помощи PixelFontEdit-2.7
Сам шрифт и исходник Eprom для Atmel studuo6.2 в архиве в конце страницы.
Шрифты добавляем с метки eeFront1 :
Кол-во шрифтов не более 8, больше не поместятся. Программа сама определит кол-во загруженных шрифтов.
В конце шрифтов обязательно должна быть строка .db "E","N","D" означающая конец шрифтов.
Буквы END могут быть большие или маленькие но латинские.
Компилируем файл EEprom и прошиваем его. Можно сразу в EEprom забить все свои значения в нем подробные коментарии к каждой строке.
Также в шрифте задается какие будут точки разделяющие часы и минуты.Устанавливается только в первом символе каждого шрифта.
В первом символе если установлен бит0 первого байта то будет двойная, если сброшен то одинарная.

Настройки в режиме отображения времени

В этом меню изменения параметров кнопками "Вверх" и "Вниз" подтверждения изменений кнопка "ОК". Выйти из настройки можно в любой момент нажав кнопку "ESC".

Нажимаем кнопку "Меню" пробежит бегущая строка "Основные настройки" далее строка "Цвет радио". Будет мигать целая часть диапазона FM , кнопками "Вверх" или "Вниз" устанавливаем нужный цвет и нажимаем кнопку "ОК". Начнет мигать дробная часть диапазона FM . Также устанавливаем нужный цвет и нажимаем "ОК".



Если будет установлен вариант цвета для бегущей строки как на фото:


То при выводе бегущей строки цвет ее будет каждый раз новый.

Далее пробежит строка " Установка часов". Начнут мигать значение часов. Кнопками "Вверх" или "Вниз" устанавливаем текущий час и нажимаем "ОК". Начнут мигать минуты. Кнопками "Вверх" или "Вниз" устанавливаем текущие минуты и нажимаем "ОК".


Далее пробежит строка "Цвет часов". В этом меню для каждого символа часов можно настроить свой цвет. Выбор цвета кнопками "Вверх" или "Вниз" . Всего 7 вариантов цветов. Восьмой вариант это разноцветный символ с чередующимися цветами. Как только выбрали нужный цвет нажимаем кнопку "ОК". Далее настраиваем цвет для следующих символов и жмем "ОК".


Кнопками "Вверх" или "Вниз" устанавливаем текущую дату и нажимаем "ОК".




Далее пробежит строка "Установка дня недели". Дни недели отображаются в сокращении ВС- воскресение, СБ - суббота, ПТ - пятница и т.д. Кнопками "Вверх" или "Вниз" устанавливаем текущий день недели и нажимаем "ОК". На этом основная настройка завершена.


Далее пробежит бегущая строка с текущем днем недели, датой, годом, давление, температурой и влажностью. Устройство перейдет в режим отображения времени. В этом режиме бегущая строка с выводом информации о температуре, давлении и влажности в помещении будет выводится примерно через 4 минуты. Вывод информации со всех датчиков кнопка "5" ПДУ. Строка о температуре и влажности на улице выводится 1 раз в 15 минут (можно самостоятельно установить нужный интервал, об этом чуть ниже.) Если по каким либо причинам какой-то датчик не будет установлен то информация с этого датчика не будет отображена в бегущей строке. Т.к датчик температуры есть во всех трех датчиках, то данные будут читаться из того датчика который установлен. По умолчанию температура читается с DS3221.

Режим Радио.

Переход в этот режим осуществляется нажатием кнопки "2" ПДУ. Диапазон радио 65мГц - 108мГц.

В этом режиме бегущая строка также пробегает примерно через 4 минуты.

Отображается следующее меню:


Первые четыре цифры это частота принимаемой станции. Буква "М" или "С" принимаемый сигнал моно или стерео. Под буквой красным цветом уровень принимаемого сигнала. В самом низу отображается громкость.Перелистывание настроенных станций кнопками "СН+" и "СН-" , а регулировка громкости кнопками "Гр+" и "Гр-". Значение громкости сохраняется для каждой станции в отдельности. Так же для каждой станции отдельно сохраняются настройки эквалайзера ВЧ и НЧ. Для перехода в режим эквалайзера нажимаем кнопку "4" ПДУ (описание настройки чуть ниже).

Для перехода в режим настройки радио нажимаем кнопку "Меню" ПДУ. Будет выведена бегущая строка " Настройка радио".

Буква обозначающая Стерео или моно станет красного цвета. В режиме воспроизведения она синего цвета. Если в течении 15 секунд не будет нажата ни одна кнопка то устройство перейдет в режим воспроизведения радио.


Изменение частоты станции осуществляется кнопками "СН+" и "СН-" и кнопками "Влево" "Вправо" ПДУ.

В диапазоне 76-108 мГц клавишами "Влево" и "Вправо" изменения диапазона на 1мГц, а клавиши "CH-" и "CH+" ПДУ изменения на 0.1мГц.
В диапазоне 65-76 мГц клавишами "Влево" и "Вправо" изменения диапазона на 0.1мГц, а клавиши "CH-" и "CH+" ПДУ изменения на 0.01мГц.

Регулировка громкости кнопками "Гр+" и "Гр-". После выбора нужной частоты и уровня громкости нажимаем кнопку "ОК". Будет отображена ячейка для записи текущей станции. Если в ячейке уже есть записанная станция то номер ее будет красным цветом.



Если ячейка свободна то она будет зеленым цветом


Выбор нужной ячейки кнопками "СН+" и "СН-". Всего доступно 20 ячеек для записи. После выбора нужной ячейки нажимаем кнопку "ОК". В ячейку будет записана частота станции, и уровень громкости. Устройство вернется в режим настройки. Что бы выйти из режима настройки нажимаем кнопку "ESC" или ничего не нажимаем в течении 15 секунд. Устройство перейдет в режим воспроизведения радио.

Настройка будильников

Переход в режим настройки будильников кнопкой "3" ПДУ. Будет выведена бегущая строка "Будильники". Если ни одна кнопка не будет нажата в течении 15 секунд устройство перейдет в режим отображения времени.

После перехода в меню будильников увидим следующее:


Б1 означает номер будильника. Всего их семь. Прочерки после номера означают что будильник не включен. Кнопками "Влево и "Вправо" изменяем номер будильника. Если будильник выключен будет не возможно просмотреть его настройки. Для включения будильника нажимаем кнопку "ОК". Включится светодиод обозначающий что есть включенные будильники и появится колокольчик.


Теперь если можно будет просмотреть настройки будильника. Меню каждого будильника поделено на четыре части. В первой части настраивается время включения, громкость. Во второй части настраивается время выключения и режим звука линейный или нарастающий. В третьей части настраивается включаемая станция или выбирается зуммер. В четвертой части выбираются дни включения будильника. Нажмем кнопку "Вправо" перед нами будет первая часть.


Здесь отображается время включения будильника. В правом нижнем углу громкость включения. Для изменения настроек нажимаем кнопку "ОК". Начнет мигать часы включения. Кнопками "Влево" и "Вправо" изменяем значение и нажимаем кнопку "ОК". Так настраиваем все четыре параметра.

После настройки уровня громкости жмем "ОК" . Этим заканчиваем настройку в первой части будильника.

В этой части настраивается время выключения и громкость нарастающая при срабатывании будильника или линейная.

Линейная громкость отображается справа в виде прямоугольника:


Нарастающая гро мкость отображается в виде треугольника:


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

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

После настройки второй части нажимаем кнопку "Вправо" и попадаем в третью часть настройки будильника.


В этой части настраивается включаемая станция радио или выбираем зуммер листая до надписи BEEP.


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

После настройки третьей части нажимаем кнопку "Вправо" и попадаем в четветрую часть настройки будильника.

Здесь настраиваем дни включения будильника.


Обозначение дней недели сделано цифрами. 1-понедельник, 2 - вторник, 3 среда и т.д

Нажимаем "ОК" ПДУ начнет мигать первый символ. Кнопками "Влево" или "Вправо" ПДУ включаем день недели или выключаем. Зеленый цвет это задействован день, красный не задействован. Внизу под задействованным днем загорается светодиод. Сделано для того кто собирал часы на обычных светодиодах что бы видеть какой из дне недели задействован.

После настройки нажимаем кнопку "Вправо " на ПДУ и переходим к следующему будильнику или нажимаем "ESC" и выходим в режим отображения времени.

При срабатывании будильника светодиод начнет мигать. Если во время работы будильника нажать кнопку "Выкл" ПДУ светодиод перестанет мигать и будильник не выключится по достижению времени выключения т.е происходит отмена выключения будильника.

Настройка эквалайзера

Переход в меню настройки эквалайзера нажатием кнопки "4" ПДУ. Пробежит бегущая строка "Эквалайзер" .В этом режиме настраиваются НЧ и ВЧ частоты. Для каждого канала радио настройки эквалайзера сохраняются отдельно. Если ни одна из кнопок не будет нажата в течении 15 секунд то будет осуществлен переход в режим отображения времени.

Для настройки нужных частот нажимаем кнопку "Влево" или "Вправо" ПДУ.

Настройка НЧ и ВЧ максимум:



Для изменения фильтра НЧ или ВЧ нажимаем кнопку "ОК" . Начнет мигать полоса слева. Кнопками "Влево" и " Вправо" меняем значение. Для сохранения установленного значения жмем "ОК" ПДУ. В зависимости от величины значения также меняется цвет указатели и цифры обозначающие уровень. Ближе к максимальному значению будут красными. Ближе к минимальному значению синим цветов, а в среднем диапазоне зеленым цветом.

Настройка НЧ минимум:


Настройка НЧ среднее значение:


Установка-снятие порога минимальной яркости

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

Нажимаем кнопку 8 ПДУ попадаем в меню установки пределов яркости.

Первое устанавливает предел минимальной яркости.


Кнопками "Вверх" "Вниз" ПДУ устанавливаем нужную яркость и нажимаем "ОК" ПДУ. Будет длительный сигнал зуммера и записан порог минимальной яркости.


Кнопками "Вверх" "Вниз" ПДУ устанавливаем нужную яркость и нажимаем "ОК" ПДУ.

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

В следующем разделе устанавливается время включения минимальной яркости, а далее время включения максимальной яркости.

Выход их меню настройки "ESC" ПДУ. Теперь при регулировки яркости не получится сделать темнее или светлее установленного порога и в автоматическом режиме яркость не будет ниже или выше установленной.

Что бы задействовать режим автоматической регулировки яркости на ПДУ нажимаем "0" переводя в автоматический режим работы. На передней панели часов загорится светодиод.

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

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

Для установки порога с кнопок читаем ниже 8 пункт.

Управление кнопками

На задней панели часов размещены кнопки S4-S9 . В зависимости в каком меню находимся функция кнопок изменяется.

Кнопка S8 переход в разные меню. Для того что бы перейти в нужное меню нажимаем S8 и удерживаем. После необходимого кол-ва сигналов зуммера отпускаем и попадаем в выбранное меню. Кол-во сигналов зуммера будет соответствовать номеру кнопки ПДУ. Если будет 4 сигнала то значит попадем в меню "Эквалайзер" , если 1 сигнал то меню отображения времени и т.д.

1. Функции кнопок в меню часов:

S6 изменение шрифта

S7 сброс секунд и обновление времени через интернет

S9 переход в основные настройки.

При нажатии S9 переходим в меню настройки. В этом меню кнопками S4 и S5 изменяем параметр, кнопка S6 переход к следующему настраиваемому параметру. Выход из меню не возможен придется пройтись по всем настраиваемым параметрам.

После настройки последнего параметра пробежит бегущая строка и устройство вернется в режим отображения времени.

2. Функции кнопок в меню радио:

S4 и S5 регулировка звука "+" и "-"

S6 и S7 переход по настроенным каналам "+" и "-"

S9 переход в режим настройки радио

В меню настроек действие кнопок:

S4 и S5 регулировка звука "+" и "-"

S6 и S7 изменение частоты радиостанции "+" и "-"

S9 переход в меню записи станции в память. Кнопками S6 и S7 меняем номер ячейки памяти, а кнопка S9 подтверждение записи.

Выход из меню настроек- не нажимаем ни какие кнопки и выход будет автоматический через 15-20 сек.

3. Функции кнопок в меню настройки будильников:

S4 и S5 перелистывание будильников "+" и "-"

S6 и S7 не задействованы

S9 Включение и выключение будильника

Если будильник включен нажимаем S4 попадая в основные настройки включенного будильника. Переход по подменю будильника S4 и S5. Для настройки параметра жмем S9 и S4 и S5 изменяем параметр. Следующее нажатие S9 переход к следующему настраиваемому параметру. Устройство выйдет из настроек будильника автоматически если в течении 15 сек. не будет нажата любая из кнопок.

4. Функции кнопок в меню эквалайзера:

S4 и S5 перелистывание настраиваемых параметров.

S6 вход в режим изменения выбранного параметра. В этом режиме S4 и S5 изменяет параметр, а S6 подтверждения изменения.

S7 не задействована.

Выход из режима автоматический через 15 сек если ни одна из кнопок не нажималась.

6. Функции кнопок в меню таймера выключения:

S4 и S5 установка интервала времени выключения с шагом в 5 минут. Интервал 0 минут означает, что таймер выключен

S6 выход в меню отображения времени.

7. Свободно. Возможно будет использовано в дальнейшем.

8. Функции кнопок в меню установки предела яркости:

S4 и S5 изменение яркости.

S6 подтверждение выбранной яркости.

S7 выход из настройки.

9. Свободно. Возможно будет использовано в дальнейшем.

Немного о примененных деталях и их замена и наладке.

Все SMD элементы типоразмера 0805. Стабилизатор U1 LM317ADJ можно заменить на любой с напряжением стабилизации 3 Вольта например ASM1117-30. В этом случаи R18 заменить перемычкой, а R17 не устанавливать. Стабилизатор на 5В U8 LM2576-5 можно заменить на LM2596-5. Светодиоды D6 D7 D11 D12 D13 типоразмера 2835. Резистором R24 устанавливаем громкость работы зуммера. Не забываем выставить ток заряда для применяемого аккумулятора резисторами R44 R45 (см. таблицу на схеме). При большом токе заряда рекомендую на TP4056 установить радиатор. Резисторами R38 и R49 можно ограничить максимальную громкость или же их заменить перемычками. Конденсаторы С28 С29 С42 С43 в обвязке TEA6330T устанавливать которые указаны на схеме. Уход от емкости в ту или иную сторону изменить диапазон регулировки частот. С28 и С43 отвечают за НЧ, а С29 и С42 за ВЧ. Пробовал ставить 6.8nF C29 и С42 ВЧ частоты практически не изменяются. Резисторами R28 R33 R31 можно изменить напряжение на выходе преобразователя. При номиналах указанных на схеме напряжение 11.86В.

Рассчитывается напряжение по формуле:

Uвых=1.26*(1+((R33+R28)/R31))

Диоды Шотки D4 D5 D1 D8 D10 можно заменить любыми на ток 2А. Стабилитрон D3 можно остановить любой на напряжение стабилизации 4.3В 4.7В или 5В.

Монтаж лучше начинать с установки всех стабилизаторов напряжения и проверить их на работоспособность, что бы не было обидно за спаленные контроллеры и датчики. Затем лучше смонтировать преобразователь и проверить его подав на 8 ногу LM3488 напряжение в пределах 3.2-5В. На выходе должно быть около 12В.

Далее монтируем элементы для заряда АКБ и контроля напряжения АКБ и проверяем на работоспособность. Для 2-х проводного АКБ не устанавливаем R39, а R43 заменяем перемычкой. Также поступаем для 3-х проводного если не нужен контроль температуры АКБ. Средний вывод АКБ остается болтаться. Если же контроль температуры нужен, то устанавливаем все элементы, хотя R43 можно и не ставить т.к оно будет подключено параллельно терморезистору АКБ и сильно влиять на работу не будет.

Контролер напряжения аккумулятора собран на TL431 и LM358. На TL431 собран источник образцового напряжения на 2.5 В. Это напряжение поступает на 2 вывод LM358, а на 3 вавод LM358 поступает напряжение от АКБ через делитель R58 R62 как только напряжение на АКБ будет ниже 3.2 на 3 выводе также напряжение станет меньше 2.5 вольт и на 1 выводе будет 0 Q9 закроется. Положительное напряжение через R56 R51 поступит на базу Q8. Q8 Закроется тем самым и закроет транзистор Q7.1 обесточивая всю плату. После отключения запуск часов будет возможен только при подключении внешнего блока питания т.к LM358 питается от внешнего источника питания.

Если есть микросхема BU4832 то TL431 LM358 их обвязку и R56 не устанавливаем. Если же собираем на TL431 и LM358 то не устанавливаем R53 и возможно придется подстроить порог срабатывания делителем R58 R62. При наличии основного питания должен идти заряд АКБ, а на выходе преобразователя не должно быть напряжения. Если напряжение АКБ выше 3.2 вольт то на базе транзистора Q9 должно быть примерно 0.7- 0.8В.

Теперь проверяем работу резервного источника питания. Сначала схему запитываем от основного источника. Затем его выдергиваем из сети и на выходе преобразователя должно появится 12В. Если преобразователь не запустился то смотрим что на базе Q9 . Если там напряжение меньше 0.7В, а АКБ заряжена, то измеряем напряжение на 2 выводе LM358 должно быль 2.5В и на 3 выводе больше 2.5В. Если все нормально, то неисправна LM358 или не подключено к ней питание. Порог отключения можно отрегулировать R62 . При увеличении его номинала порог отключения увеличивается т.е устройство будет полностью обесточено при более глубоком разряде АКБ. При уменьшении номинала порог уменьшается.

Конденсаторы C6 C11 C21 C20 C37 рекомендуется применять с низким ESR.

Если все работает то монтируем процессор прошиваем его и монтируем все остальные элементы.. На плате для удобства прошивки предусмотрены контакты для ISP разъема. Вывод GND для ISP паяем в любом удобном месте.

Индикация светодиодов

Светодиод D11 светится, то значит установлен режим автоматической регулировки яркости. Ручная регулировка не работает. Переключается режим кнопкой "0" ПДУ.

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

Светодиод D13 светится, то значит нужно заменить резервную батарейку часов. Даже если вытащить батарейку время не сбросится т.к за счет заряда конденсаторов некоторые время будет питаться DS3231. Так что минут 5 есть на замену батарейки.

Светодиод D6 светится, то значит идет заряд АКБ

Светодиод D7 светится, то значит АКБ заряжена.

Если оба светодиода D6 и D7 не светятся, то это значит, что часы работают от внутреннего АКБ.

Изготавливаем печатные платы (ПП)

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

Версия платы с WI-FI.



Печатные платы изготавливаю при помощи негативного фоторезиста. Печатаю шаблон на пленке струйным принтером Epson L800 в негативном виде. Очищаю заготовку при помощи порошка "Пемолюкс". На мокрую заготовку наношу пленочный фоторезист. За неимением ламинатора проглаживаю утюгом выставленным на деление 1. Накладываю шаблон и засвечиваю тремя УФ лампами по 20W каждая в течении 1 мин 10 сек. Далее опять под утюг, затем смываю не задубленные участки и травить. Сверлю несколько отверстий в крайних контактных площадках и делаю проколы в этих же местах в шаблоне. Плата и шаблон совмещается при помощи иголок. Травится вторая сторона. Первая заклеивается скотчем.

Сверлим отверстия. Переходные отверстия обычно сверлю диаметром 0.4 мм и запаиваю в них проволочки. Запаиваем элементы.

Фото готовой платы с WI-FI



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

Корпус был изготовлен из 4мм мягкого пластика. Режется отлично канцелярским ножом. Т.к светодиоды находятся глубоко то нужны световоды. В качестве световодов использована крышка коробки от автомобильных ламп. Корпус был начерчен в CorelDRAW распечатан на простой бумаге и с помощью двухстороннего скотча закреплен на пластике и вырезан. Прячем все в корпус, прикручиваем антенну:


Датчики торчат сверху:


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

Получилось так:


Вот вроде и все. В планах добавить возможность вывод информации с RDS . Так же сделать еще один вариант под энкодеры.

Написана программа для модуля ESP8266. Также изменена прошивка для Atmega32 в архиве все обновлено. Так же были внесены изменения в схему. Были неправильно подключены сигналы TX RX от Atmega к ESP8266. Все изменения описанные здесь учтены в схеме в архиве.

В схеме сделаны небольшие доработки. Объединены сигналы Reset Atmega и ESP8266. Но для этого нужно согласовать сигналы по напряжению. Добавлен резистор на 9.1 кОм между Reset Atmega и GND. Резистор 10кОм между Reset ESP8266 и шиной 3V удален. Напряжение на выводе Reset должно стать в пределах 3V-3.3V.

Добавлено согласование уровней TX RX. Хотя можно обойтись и без него но сделал так как должно быть по правилам.

Для прошивки модуля ESP8266 необходимо:

1.Качаем(если не установлена) Arduino IDE с офф сайта (https://www.arduino.cc/en/Main/Software ), устанавливаем.

2.Запустить Arduino IDE, далее Файл - Настройки - в поле Additional Boards Manager URLs вставить ссылку на стабильную версию http://arduino.esp8266.com/package_esp8266com_index.json

4.В Boards Manager в поле фильтра введите esp8266 или вручную пролистайте список и кликните на ESP8266 by ESP8266 Community Forum
Кликните Install и дождитесь окончания загрузки (около 130 Мегабайт).
Если загрузка произошла слишком быстро, возможно, что вы уже устанавливали Arduino IDE для ESP8266 и потребуется почистить кэш Boards Manager, иначе у вас останется установленной старая версия. Нужно сначала деинсталлировать старую версию, а потом необходимо удалить файлы кэша. Для Win7 x64 удалите файлы из папки C:UsersПользовательAppDataRoamingArduino15 и повторите все, начиная с п.2
Закройте Boards Manager и в меню Инструменты выберите Плата - Generic ESP8266

Выберите последовательный порт, к которому подключена плата. Открываем файл прошивки.

Для прошивки модуля использовал PL2303. Драйвера на нее ниже в архиве на Win 8.1 работает. Драйвер устанавливаем в ручную.

Можно использовать любой USB-COM переходник.

Модуль ESP 8266 запаиваем на плату. Соединяем модуль с USB-COM переходником соединения сигналов TX RX перекрестное т.е TX ESP8266 на RX USB-COM и RX ESP8266 на TX USB-COM. Устанавливаем перемычку на XP10 и убираем перемычки XP11 и XP12. Нажимаем Reset.

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

В прошивке вписываем имя своей сети WI-FI и пароль к ней.

Нажимаем иконку "Стрелка вправо" начнется прошивка модуля.

После завершения прошивки удаляем перемычку XP10 и устанавливаем назад XP11 и XP12.

Рекомендую проверить открыты у Вас порты 123 на ПК и в роутере.
Проще это сделать на ПК, в настройках времени вкладка Время по интернету - Изменить параметры. В поле вбиваем time.nist.gov и жмем "Обновить сейчас". Если напишет, что время было успешно обновлено то у Вас порты открыты. Если ошибка то открываем порты в роутере.
У меня дома на роутере ASUS RT16 с прошивкой Tomato все работало по умолчанию отлично.
На работе на роутере Zuxel Keenetic Giga II с родной прошивкой пришлось открывать порты, хотя в самом роутере время обновлялось с интернета.

Время обновляется нажатием кнопки "9" ПДУ. Единственное, что надо учитывать при обновлении времени, если не будет доступа к интернету то секунды все ровно обнулятся.
После включения часов или нажатием кнопки Reset для обновления времени через интернет необходимо выждать секунд 30. Это время необходимо модулю для подключения к сети или для возврата ошибки если нет подключения. Если раньше нажимать кнопку "9" ПДУ просто ничего не будет происходить. Во время синхронизации времени матрицы на 1-2 секунды будут погашены.
Если не будет доступа к интернету то выведется строка "Упсс Нет сети" .
Если будет доступ к сети но не будет доступа к серверу точного времени то выведется строка "Нет доступа к серверу времени"

Также появиться новая сеть c именем "Datchik" .Ее название также можете изменить на любое в Arduino и изменить пароль к ней. К этой сети будет подключаться второй модуль с уличными датчиками.

PS. От автоматической синхронизации решил отказаться т.к у DS3231 очень маленький уход по времени и синхронизация нужна не чаще 1 раз в месяц и то уход несколько секунд. Так что проще сделать это в ручную.

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

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

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

2.Вторая часть теста зажигает только один светодиод и прогоняет его по всем строкам в каждом из трех цветов R G и B . Должен зажигаться только один светодиод. Если будут гореть два светодиода значит где-то КЗ на выводах регистров матриц.

Блок питания должен обеспечивать ток хотя бы 2A в режиме теста т.к нет регулировки яркости и потребление достаточно большое (особенно когда белый цвет) . Если блок не сможет обеспечить такой ток то тест не запуститься т.е будут попытки старта и тут же происходить сброс.

Модуль датчика наружной температуры.

Модуль датчика наружной температуры так же сделан на ESP8266 и в качестве датчика применен AM2321. Так же в этом модуле установлен датчик комнатной температуры. Сделано это для того если будут собираться несколько одинаковых часов и тогда данные они могут получать с одного модуля. В наружный модуль встроена USB зарядка для аккумулятора, а также контроль напряжения АКБ. При снижении напряжения АКБ ниже 3.2 вольта загорится светодиод.

Также добавлен визуальный контроль ошибок.

1. Нет датчика AM2321 горит зеленый светодиод

2. Нет датчика BME280 горит красный светодиод

3. Неудачное подключение к WI-FI сети горит синий светодиод



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

Устанавливаем время опроса датчика температуры. По умолчанию установлено 900 сек = 15 мин
Меняем значения в строке:

ESP.deepSleep(900*1000000,WAKE_RFCAL); // время 900 секунд = 15 минут
Меняем на свое значение. Сохраняем и прошиваем.

У меня модуль питается от аккумулятора по 1000мА.

Многие радиолюбители, начинающие и не только любят «изобретать велосипед» - строить СВОИ электронные часы. Не обошла эта участь и меня. Конструкций часов в инете сегодня конечно предостаточно, но вот часов на светодиодных матрицах почему-то среди них единицы. В русскоговорящем интернете я нашел только одну полностью законченную и описанную конструкцию. В тоже время, светодиодные матрицы сейчас очень сильно подешевели, и их стоимость не выше, а то и ниже, чем у семисегментных индикаторов такого же размера. Например примененные мной GNM23881AD при размере 60х60мм были куплены за 1,5уе (3 индикатора обошлись в 4,5уе), за эти деньги врядли можно купить четыре семисегментника таких-же размеров. А вот информации, разместить на матричном индикаторе, можно намного больше. Кроме цифр на них можно отображать любые буквы, знаки, а с помощью бегущей строки еще и текст. Исходя из этого, появилось желание построить часы на светодиодных матрицах, но чтоб схема при этом получилась не сложнее чем на семисегментниках. Также хотелось чтоб она была достаточно функциональная и не похожая на другие. Так родилась следующая схема.

Функционал у часов такой:

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

Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).

Коррекция хода + - 59,9сек\сутки, с шагом 0,1сек.

9 будильников. 3 из которых «одноразовые», и 6 «постоянных», индивидуально настраиваемых по дням недели.

Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).

Звуковое подтверждение нажатия кнопок (возможно отключить).

Ежечасный звуковой сигнал (возможно отключить). С 00-00 до 08-00 сигнал не подаётся.

1 или 2 датчика температуры (Улица и дом).

Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)

Значение коррекции хода, и настройки «бегущей строки» - сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости». Схему хотелось максимально упростить, поэтому все что можно, было возложено на контроллер. В результате удалось обойтись всего двумя микросхемами, контроллером и регистром TPIC6B595. Если кому то недоступен TPIC6B595, то можно его заменить на 74НС595 + ULN2803. Оба варианта были опробованы. Так же можно попробовать применить TPIC6С595, она немного слабовата, и слегка грелась, но в целом работала стабильно. Отсчет времени производится с помощью асинхронного тайме - Т2. Ход часов сохраняется и при пропадании питания. В это время бОльшая часть схемы обесточивается, а контроллер питается от батарейки, аккумулятора, или от ионистора. Мне было интересно «по играться» с ионистором, поэтому применил его. Ток потребления часами в дежурном режиме составляет 15мка. При питании от ионистора на 1Ф, часы «продержались» четверо суток. Этого вполне достаточно для поддержания хода во время перебоев питания. Если применить батарейку СR2032, то теоретически, по расчетам заряда должно хватить на 1,5года. Наличие сетевого напряжения контроллер «слушает» через вывод РВ.3 Этот вывод является инвертирующем входом компаратора. Напряжение питания, через делитель R2-R3 подается на вывод РВ.3, и в нормальном состоянии равно примерно 1,5в. Если внешнее напряжение упадет ниже 4,1 вольта, то напряжение на выводе РВ.3 станет меньше 1,23вольта, при этом сгенерируется прерывание от компаратора, и в обработчике этого прерывания выключаются все «лишние» узлы контроллера и сам контроллер усыпляется. В этом режиме продолжает работать только отсчитывающий время таймер Т2. При появлении внешнего питания, напряжение на РВ.3 снова подымится выше 1,23в, контроллер «увидев» это, переведет все узлы в рабочее состояние. Если вместо ионистора, будет использоваться батарейка СR2032, то её нужно подключить через диод(предпочтительно диод шоттки). Анод диода подключается к + батарейки, а катод к катоду VD1.

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

9 будильников разделены на 3 одноразовых и 6 многоразовых. При включении будильников 1-3, они срабатывают только один раз. Для того чтоб они сработали еще раз, их нужно повторно включать вручную. А будильники 4-9 многоразовые, т.е. они будут срабатывать ежедневно, в установленное время. Кроме того эти будильники можно настроить на сработку только в определенные дни недели. Это удобно, например если не хотите чтоб будильник разбудил Вас в выходные. Или например Вам нужно просыпаться в будние дни в 7-00, а в четверг в 8-00, а на выходных будильник не нужен. Тогда настраиваем один многоразовый на 7-00 в понедельник-среду и пятницу, а второй на 8-00 в четверг….. Кроме того все будильники имеют настройку длительности сигнала, и если Вам, для того чтоб проснуться, мало сигнала в течении 1 минуты, то можно увеличить его на время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00. Если часы спешат к примеру на 5 сек в сутки, то в 00-00-00 время установится в 23-59-55, если же часы отстают, то в 00-00-00 время установится в 00-00-05. Шаг коррекции - 0,1 сек. Максимальная коррекция - 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от батареи.

Светодиодные матрицы можно использовать любые 8*8 светодиодов с общим катодом. Как уже было указано, я применил GNM23881AD. В принципе можно «набрать» матрицу и из отдельных светодиодов. Микроконтроллер AtMega16a можно заменить на «старый» AtMega16 с буквой L. При этом, теоретически должен немного увеличится ток потребления от батарейки. Наверное будет работать и просто AtMega16, но могут возникнуть проблемы при работе от батарейки. Диод D1 - желательно любой диод шоттки. С обычным выпрямительным тоже работает, но чтоб обезопасить себя от различных глюков, связанных с тем что часть схемы питается напряжением «до диода», а часть «после диода» лучше поискать шоттки. Транзистор VT1 - любой n-p-n.

Управление часами осуществляется двумя кнопками. Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок, но захотелось попробовать «выкрутится» всего двумя. Кнопки условно названы «ОК» и «ШАГ». Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «ШАГ». Нажатие любой кнопки во время сигнала будильника отключает его. Схема управления получилась такой:

Конструктивно часы выполнены на одной ПП. Размер ПП соответствует размеру индикаторов. Минимальная ширина дорог ПП - 0,4мм, расстояние между - 0,4мм. Так что любители «ЛУТа» смогут без труда изготовить плату самостоятельно.

© 2024 spbpda.ru
Spbpda - Обучение компьютеру