Ваш браузер устарел. Рекомендуем обновить его до последней версии.
 
Часы + радио+метео+ПДУ
 
Давно хотелось сделать часы на 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 :
 
AM2321AM2321
 
В качестве эквалайзера применена микросхема 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 матриц и модуля даткика наружной температуры

Основной модуль c WI_FI (нажмите для увеличения изображения)

RGB модуль (нажмите для увеличения изображения)

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

 
Несколько фотографий готовой платы RGB матриц. Платы из двухстороннего стеклотекстолита. Некоторые доработки делались в процессе отладки. Поэтому на некоторые фото немного отличаются от плат которые в архиве.  В архиве все изменения учтены.
Нижняя сторона платы:
Низ 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. Функции кнопок в меню часов:

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

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.

внешняя сторона V2.1внешняя сторона V2.1

 

 

Внутренняя сторона V2.1Внутренняя сторона V2.1 

 

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

 

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

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

внешняя сторонавнешняя сторона

Внутрянняя сторонаВнутрянняя сторона

 

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

 

 

 

На МС TP4056 рекомендую установить радиатор если ток заряда аккумулятора больше 500 мА т.к микросхема прилично греется. 

Корпус был изготовлен из 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

3.Далее вкладки Инструменты – Плата – Boards Manager

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мА.

=======================================================================

Схемы и платы в DipTrace

Схема и плата модуля матриц . Обновлено 11.09.2015 

Схема , плата , прошивка основного модуля и ESP8266 в DipTrace и Layout60 ( от SergeyK с radiokot.ru) . Обновлено 08.03.2016

Исходник EEPROM. Обновлено 08.03.2016

Схема, плата , прошивка модуля датчика наружной температуры. Обновлено 08.03.2016

Библиотеки для Arduino 

Arduido 1.6.5 -139 мБ

 Программа теста матриц . Обновлено 27.10.2015

Корпус часов Обновлено 2.11.2015

Драйвер PL2303 Win8.1

Все вопросы и предложения в форум

=======================================================================

Коммерческое использование без согласия автора запрещено.