ARDUINO Часы на ГРИ v2. Альтернативная прошивка

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
Рекомендуется длинные описания убрать под спойлеры
Прошивка изначально создавалась для часов на ГРИ v2 от AlexGyver, но на данный момент возможно применение и в других проектах часов на 4/6 ламп.
Актуальная версия прошивки находится здесь. Последняя версия 1.8.9 от 18.03.2023.


Видео-обзор прошивки:


Sheet_2.pngSheet_1.png
Если при работе часов возникла какая-то проблема, то при старте часов будет звуковой код, а на индикаторах отобразится код ошибки.
  • 0001 - Нет связи с модулем DS3231(модуль часов неисправен или проблемы с шиной i2c).
  • 0002 - Ошибка осциллятора DS3231(батарейка модуля часов разряжена или проблемы с тактированием модуля часов).
  • 0003 - Ошибка слишком короткий сигнал SQW(во время работы часов были обнаружены помехи или неверный сигнал на SQW).
  • 0004 - Ошибка слишком длинный сигнала SQW(пропал сигнал SQW во время работы часов или сигнал отсутствовал при запуске).
  • 0005 - Выбранный датчик температуры не обнаружен(проверить подключение датчика температуры).
  • 0006 - Слишком низкое или слишком высокое напряжение питания(проверить источник питания).
  • 0007 - Ошибка памяти еепром(повреждение данных, если ошибка будет повторятся слишком часто - износ еепром).
  • 0008 - Ошибка софтовой перезагрузки(говорит о нестабильности программы или об аппаратных проблемах с мк).
  • 0009 - Ошибка сбоя работы преобразователя(регистры таймера были неожиданно изменены).
  • 0010 - Ошибка переполнения заполнения шим преобразователя(превышен верхний предел заполнения шим).
  • 0011 - Ошибка переполнения стека(утечка памяти).
  • 0012 - Ошибка переполнения тиков времени(основная программа не отвечает).
  • 0013 - Ошибка сбоя работы динамической индикации(регистры таймера были неожиданно изменены или превышен предел регистра сравнения).
Для более точной работы часов желательно подключить пин SQW модуля DS3231 к пину ардуино D2, если у вас модуль DS3231mini, то необходимо найти 3-ю ножку микросхемы и также проводком подпаять к пину D2.
Доработка DS3231.jpg
  • NEON_DOT 0 - Обычная светодиодная секундная точка(пин подключения указывается в DOT_PIN)(возможно комбинирование с точками в индикаторах)
  • NEON_DOT 1 - Одна неоновая лампа в качестве секундной точки(пин подключения указывается в DOT_PIN)(возможно комбинирование с точками в индикаторах)
  • NEON_DOT 2 - Две неоновые лампы в качестве секундных точек(пин подключения указывается в DOT1_PIN и DOT2_PIN)(возможно комбинирование с точками в индикаторах)
  • NEON_DOT 3 - Точки в индикаторах в качестве секундных точек(пин подключения указывается в DOTL_PIN и DOTR_PIN)
Пины подключения периферии к сдвиговому регистру указываются в connection.h: ANODE_1_PIN..ANODE_6_PIN, DOTL_PIN, DOTR_PIN, DOT_1_PIN, DOT_2_PIN. Доступные номера пинов 0..7.
  • Аноды ламп.
  • Разделительные точки в индикаторах.
  • Две раздельные неоновые лампы.
  • Одну неоновую лампу.
При использовании сдвигового регистра есть ограничения на пины D13-D10, а именно:
  • D13 может быть использован только как пин сдвигового регистра - SCK.
  • D12 может быть использован для остальной периферии в качестве входа(цифровые кнопки, датчик движения, ИК приёмник, BUSY DF плеера, MISO SD карты).
  • D11 может быть использован только как пин сдвигового регистра - DATA.
  • D10 может быть использован для остальной периферии в качестве выхода(ВВ преобразователь, секундные точки, подсветка, бузер, управление питанием усилителя, RX DF плеера при использовании софтового UART, MOSI/SCK/CS SD карты, защёлка сдвигового регистра).
Так-же не забудьте выбрать свою плату - в "userConfig.h" - BOARD_TYPE.
Для других плат на 4 лампы используйте - BOARD_TYPE 3, на 6 ламп - BOARD_TYPE 4.
Маски дешефратора и порядок катодов указываются в "config.h".

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

Для сброса настроек -
необходимо зажать среднюю кнопку и подать питание на часы.
Для запуска меню отладки - необходимо зажать левую кнопку и подать питание на часы.
Для запуска теста системы(ламп тест) - необходимо зажать правую кнопку и подать питание на часы.

Периферия:
  • Датчики температуры DHT11/DHT12/MW33/DHT21/DHT22(AM2301/AM2302), DS18B20/DS18S20/DS1820 - доступные пины подключения(D0..D13) с подтяжкой 4.7-10кОм к +5в.
  • Датчик температуры BME280(BMP085/180/280) - доступные пины подключения(A4 и A5) параллельно модулю часов.
  • Датчик температуры SHT20(SHT21/SHT25), SHT30(SHT31/SHT35) - доступные пины подключения(A4 и A5) параллельно модулю часов.
  • Датчик температуры DS3231 - встроенный в модуль часов реального времени.
  • Синхронизация времени по SQW - доступные пины подключения(D2).
  • Управление разделительными точками в индикаторах ИН12Б/14/16 - доступные пины подключения(D0..D13), для каждой точки используется свой пин.
  • Радиоприёмник RDA5807M - доступные пины подключения(A4 и A5) параллельно модулю часов.
  • Неоновая секундная точка(одна или две) - доступные пины подключения(D0..D13), для каждой точки используется свой пин.
  • Бузер(Для будильника и оповещений) - доступные пины подключения(D0..D13).
  • Подсветка на адресных светодиодах WS2812B - доступные пины подключения(D0..D13).
  • Подсветка на обычных светодиодах - доступные пины подключения(D11), с софт. шимом(D0..D13).
  • Дополнительная цифровая кнопка для управления таймером - секундомером - доступные пины подключения(D0..D13).
  • Преобразователь ВВ напряжения(Затвор мосфета) - доступные пины подключения(D9..D10).
  • Аналоговые кнопки(в т.ч. и дополнительная) - доступные пины подключения(A6..A7).
  • Обратная связь преобразователя ВВ напряжения на резистивном делителе - доступные пины подключения(A6..A7).
  • Озвучка на DF player - доступные пины подключения указаны в прошивке.
  • Озвучка на SD карте - доступные пины подключения указаны в прошивке.
  • Управление питание усилителя - доступные пины подключения(D0..D13).
  • Приемник ИК пульта(Пульты только с протоколом NEC) - доступные пины подключения(D0..D13).
  • Датчик яркости освещения - доступные пины подключения(A6..A7).
  • Датчик движения - доступные пины подключения(D0..D13).
  • Сдвиговый регистр для управления анодами ламп и разделительными точками(неоновыми лампами) - доступные пины подключения указаны в прошивке.
Программно:
  • Поддержка часов на 4/6 ламп.
  • 12/24 часовой формат времени.
  • Будильник(Один или несколько).
  • Радиобудильник(при наличии модуля радио).
  • Автоматическое определение подключенного датчика температуры.
  • Термометр(Гигрометр/Барометр для датчиков BME/BMP/DHT/SHT).
  • Авто-показ температуры(Влажности/Давления).
  • Отображение текущей даты.
  • Меню настройки яркости и др. функций.
  • Быстрое меню для смены анимации перелистывания/точек/подсветки.
  • Таймер - секундомер(Только при наличии доп. кнопки).
  • Радиоприёмник(Только при наличии доп. кнопки).
  • Антиотравление ламп(3 варианта анимации, выбор из меню).
  • Мелодия смены часа.
  • Смена яркости по времени и по датчику освещённости.
  • Анимация глюков.
  • 10 режимов анимации авто-показа температуры(Есть случайный режим).
  • 10 режимов анимации минут(Есть случайный режим).
  • 3 режима анимации секунд для 6-ти ламп(Выбор из меню).
  • 3 режима подсветки для обычных диодов и 15 для адресных WS2812B.
  • 3 режима работы секундных точек (1 режим для двух неоновых ламп / 4 режима разделительных точек) и доп.режимы для отображения состояния будильника.
  • Возможность создания собственных мелодий будильника.
  • Система контроля основных параметров часов(Ошибки).
  • Меню отладки(Для опытных пользователей).
  • Озвучка пунктов меню, времени и температуры.
  • Программирование кнопок ИК пульта из меню отладки.
  • Режим сна(Отключение ламп через заданное время)
  • Добавить поддержку модуля ESP-01 для настройки через веб интерфейс.
  • Добавить возможность отображать температуру со второго датчика температуры.
  • Добавить анимации перехода подсветки на адресных светодиодах.
ver 1.7.5
  • Добавлена установка громкости для будильника.
  • Добавлена автогромкость для будильника.
  • Добавлена возможность отключить поддержку подсветки (BACKL_TYPE 0).
  • Добавлена возможность подключить правые точки в индикаторах (только если подключены левые).
  • Добавлена возможность выводить влажность вместе с температурой в автопоказе (только для 6-ти ламп).
  • Добавлена возможность изменить порядок адресных светодиодов(прямой или реверсивный).
  • Добавлены вариации подсветки "бегущий огонь" и "волна" с эффектами "радуга" и "конфетти".
  • Добавлена защита от утечки памяти.
  • Упрощение настройки нескольких будильников.
  • Исправление установки максимального/минимального шим в меню отладки.
  • Мелкие исправления.
ver 1.7.6
  • Добавлена возможность использовать радиостанцию в качестве мелодии будильника (для переключения радио/мелодия - уд. доп.кнопки).
  • Добавлена подсветка тревоги будильника.
  • Добавлена подсветка меню таймера/секундомера и тревоги таймера.
  • Добавлена возможность не выключать радио при переходе в сон.
  • Добавлена возможность удвоить частоту преобразователя.
  • Оптимизация установки яркости индикации.
  • Мелкие исправления.
ver 1.7.7
  • Добавлена возможность выбрать тип работы подсветки для меню - радио/таймер/тревога таймера/тревога будильника/дата/температура.
  • Добавлена минимальная яркость для доп.состояний секундной точки.
  • Новая логика управления яркостью(яркость теперь меняется во всех меню).
  • Мелкие исправления.
ver 1.7.8
  • Добавлено восстановление значения регистра старения модуля часов из памяти при сбросе батарейного питания.
  • Добавлена возможность в отладке изменять регистр старения часов вне зависимости от сигнала SQW.
  • Добавлена поддержка двух неоновых точек.
  • Изменено отображение значения регистра старения модуля часов в отладке.
  • Исправление управления питанием усилителя.
  • Исправление синхронизации времени.
  • Исправление секундных точек для таймера и будильника.
  • Исправление установки типа сигнала управления усилителем.
  • Исправление чтения сигнала BUSY плеера.
  • Мелкие исправления.
ver 1.7.9
  • Добавлен сброс по таймеру WatchDog.
  • Добавлен запрос подтверждения сброса настроек отладки.
  • Исправление анимации плавного мигания секундных точек.
  • Исправление точек в индикаторах.
  • Исправление двух неоновых точек.
  • Мелкие исправления.
ver 1.8.0
  • Исправление двух неоновых точек.
  • Изменение периода опроса датчика света на 1сек(для адекватной работы плавных анимаций при смене яркости).
  • Добавлена озвучка "Выбор цвета".
  • Добавлен предел для автопоиска.
  • Добавлено отображение номера радиостанции только когда была выбрана радиостанция(для 6-ти ламп).
  • Теперь радио само определяет номер радиостанции в памяти при ручном и автоматическом поиске(для 6-ти ламп).
  • Теперь переключаются только настроенные ячейки радиостанций.
  • Добавлено подменю настройки ячеек радиостанций(удержание доп.кнопки)(слева отображается состояние текущей ячейки (0 - не настроена, 1 - настроена), справа отображение номер текущей ячейки)
    • Удержание доп.кнопки удаляет текущую ячейку.
    • Клик по доп.кнопке сохраняет текущую частоту в текущую ячейку.
    • Клик лево/право меняет номер ячейки.
    • После сохранения ячейки сразу выходим в режим радио и отображаем по центру номер сохранённой радиостанции.
  • Мелкие исправления.
ver 1.8.1
  • Исправление пересчета яркости точек.
  • Добавлен контроль и ошибки работы преобразователя.
  • Добавлен контроль и ошибка работы динамической индикации.
  • Добавлены ошибки переполнения тиков времени и стека.
  • Добавлены новые звуки ошибок.
  • Оптимизация воспроизведения звуков ошибок.
  • Мелкие исправления.
ver 1.8.2
  • Добавлена общая анимация для автопоказа температуры.
  • Добавлена общая анимация при запуске часов и выходе из меню по тайм-ауту.
  • Добавлена возможность составить список случайных анимаций.
  • Мелкие исправления.
ver 1.8.3
  • Оптимизация анимаций.
  • Исправление анимаций при авто выходе.
  • Исправление автопоказа температуры.
  • Исправление опроса кнопок при запуске.
  • Добавлена возможность выбрать тип анимации при автопоказе температуры в меню настроек.
  • Добавлена возможность выбрать тип анимации запуска часов.
  • Добавлена синхронизация времени отображения автопоказа температуры и антиотравления.
  • Шаг времени автопоказа температуры изменён на 1мин.
  • Мелкие исправления.
ver 1.8.4
  • Исправление подсветки.
  • Исправление разделительных точек.
  • Добавлен режим "Змейка" для разделительных точек.
  • Добавлена демонстрация анимации секунд в основном меню.
  • Мелкие исправления.
ver 1.8.5
  • Исправление чтения датчиков SHT.
  • Исправление меню отладки.
  • Добавлены расширенные кнопки ик пульта для управления радио(Питание(вкл/выкл), громкость (+/-), радиостанции (+/-)).
  • Добавлена поддержка портов E для Atmega328pb.
  • Мелкие исправления.
ver 1.8.6
  • Добавлена поддержка сдвигового регистра для управления анодами ламп/точками в индикаторах(двумя неоновыми лампами).
  • Добавлена возможность выбрать пин для ВВ преобразователя/светодиодных точек/вывода звука SD плеера(D9-D10).
  • Исправление и оптимизация динамической индикации.
  • Мелкие исправления.
ver 1.8.7
  • Добавлена возможность включить точки в индикаторах вместе с двумя неоновыми лампами.
  • Добавлена возможность указать количество ламп, в которых задействованы разделительные точки(4 или 6).
  • Добавлена отдельная анимация секундных точек "маятник" для двух неоновых ламп.
  • Добавлена анимация разделительных точек "резинка".
  • Исправление динамической индикации.
  • Исправление отображения номера кнопки ИК пульта в отладке.
  • Мелкие исправления.
ver 1.8.8
  • Добавлена возможность выбрать тип озвучки текущего часа.
  • Изменен диапазон настройки минимального/максимального шим в меню отладки.
  • Исправление режима сна.
  • Исправление отключенной анимации индикаторов.
  • Исправление отображение кода ИК пульта в меню отладки.
  • Исправление выбор пункта меню 3(громкость озвучки).
  • Исправление SD плеера.
  • Исправление звуков ошибок.
  • Мелкие исправления.
ver 1.8.9
  • Добавлена возможность выбрать только правые точки в индикаторах.
  • Добавлена возможность отключить таймер/секундомер(при этом радио будет активироваться кликом по доп. кнопке).
  • Добавлена возможность выбрать стартовую задержку при включении питания.
  • Исправление управления питанием усилителя для SD плеера.
  • Исправление неоновых секундных точек.
  • Исправление отображения устойчивого сигнала радиоприемника.
  • Исправление работы с шиной I2C.
  • Исправление чтения датчиков температуры SHT2x.
  • Добавлена возможность отключить проверку CRC адреса для ИК приёмника.
  • Мелкие исправления.

Отладка: Удерживать "левую" кнопку при включении питания

Ввод пароля:
  • Клик по "средней кнопке" - переход между разрядами
  • Клик по "левой кнопке" - уменьшить значение
  • Клик по "правой кнопке" - увеличить значение
  • Удержать "среднюю кнопку" - подтвердить ввод пароля
Меню отладки:
  • Клик по "средней кнопке" - выбор пункта отладки
  • Клик по "левой кнопке" - уменьшить значение
  • Клик по "правой кнопке" - увеличить значение
  • Удержать "среднюю кнопку" - выход к часам
Пункты отладки:
  • 01 - Коррекция хода часов DS3231(Коррекция (0..255)(128 = 0))
  • 02 - Коррекция хода внутреннего осциллятора(Коррекция (2000..4000)(мкс))
  • 03 - Минимальное значение шим(Для линейной регулировки)(100..150)
  • 04 - Максимальное значение шим(Для линейной регулировки)(150..200)
  • 05 - Коррекция напряжения преобразователя(Для регулировки по обратной связи)(Внимание! Значение может меняться в зависимости от напряжения питания)(+-30)
  • 06 - Программирование кнопок ИК пульта(Поддерживаются пульты только с протоколом NEC)(1..8)
  • 07 - Калибровка датчика освещенности(Автоматическое определение диапазона)
  • 08 - Сброс настроек отладки(0..1)(0 - отмена | 1 - подтверждение)
  • 1 - Левая клик.
  • 2 - Левая удержание.
  • 3 - Правая клик.
  • 4 - Правая удержание.
  • 5 - Средняя клик.
  • 6 - Средняя удержание.
  • 7 - Доп.кнопка клик.
  • 8 - Доп.кнопка удержание.
  • 9 - Вкл/выкл питание радио.
  • 10 - Прибавить громкость радио.
  • 11 - Убавить громкость радио.
  • 12 - Переключить на следующую радиостанцию.
  • 13 - Переключить на предыдущую радиостанцию.
Поддерживаются:
  • MH2024K-24
  • GD3200B
  • YX5200-24
Не поддерживаются:
  • MH2024K-16
  • AS21CN27OC

Настройка времени: Удерживать "правую" кнопку
  • Средняя кнопка - выбор, остальные "меньше" и "больше"
  • Клик по "выбору" - смена настройки часы/минуты | месяц/дата | год
  • Клик "меньше" или "больше" - изменение времени/даты
  • Удержать "выбор" - возврат к режиму часов

Настройка будильника: Удерживать "левую" кнопку
В режиме часов удержание левой клавиши – переход к настройке будильников.
После входа в настройку:
  • В левых двух разрядах отображается текущий номер будильника (0 – нет будильников).
  • В четвёртом разряде отображается текущий режим будильника (если будильников нет – ничего не отображается).
Экран «Выбор номера будильника»
Нажатие на:
  • Правую клавишу – увеличивает значение.
  • Левую клавишу – уменьшает значение.
  • Среднюю клавишу - переход к настройке выбранного будильника.
Удержание:
  • Правой клавиши – добавить новый будильник.
  • Левой клавиши – удалить текущий будильник.
  • Средней клавиши – выход к режиму часов.
После перехода к настройке будильника:
  • Средняя кнопка - выбор, остальные "меньше" и "больше".
  • Клик по "выбору" - перемещение по индикаторам.
  • Клик "меньше" или "больше" - изменение значений.
  • Удержать "меньше" или "больше" - смена настройки часы/минуты -> режим -> день недели/активация -> громкость(для плеера)/мелодия.
  • Удержать "выбор" - возврат к выбору будильника.
  • Удержать "доп. кнопку" - переключить режим мелодия/радио.
В режиме часов удержание левой клавиши – переход к настройке будильников.
После входа в настройку:
  • Средняя кнопка - выбор, остальные "меньше" и "больше".
  • Клик по "выбору" - перемещение по индикаторам.
  • Клик "меньше" или "больше" - изменение значений.
  • Удержать "меньше" или "больше" - смена настройки часы/минуты -> режим -> день недели/активация -> громкость(для плеера)/мелодия.
  • Удержать "выбор" - возврат к режиму часов.
  • Удержать "доп. кнопку" - переключить режим мелодия/радио.
Для начала нужно создать новый массив мелодии и прописать его в основном массиве всех мелодий(в config.h):
C++:
const uint16_t _sound_2[][3] PROGMEM = { //массив семплов 2-й мелодии будильника || семпл - частота(10..10000)(Hz) | длительность звука(50..500)(ms) | длительность паузы(50..1000)(ms)

};
const uint16_t alarm_sound[][2] = {  //массив мелодий будильника
  SOUND_PATTERN(_sound_1),
  SOUND_PATTERN(_sound_2)
};
Затем в массив добавить патерны:

C++:
const uint16_t _sound_2[][3] PROGMEM = { //массив семплов 2-й мелодии будильника || семпл - частота(10..10000)(Hz) | длительность звука(50..500)(ms) | длительность паузы(50..1000)(ms)
   {392, 700, 700}, //можно добавлять n-е количество
};
Патерн состоит из 3-х значений:
C++:
const uint16_t _sound_2[][3] PROGMEM = { //массив семплов 2-й мелодии будильника || семпл - частота(10..10000)(Hz) | длительность звука(50..500)(ms) | длительность паузы(50..1000)(ms)
  {/*Частота звука*/, /*Длительность звука*/, /*Пауза звука*/},
};
  • Частота звука(в герцах)
  • Длительность звука(в мс)
  • Пауза звука между патернами(в мс):
    Если равно длительности звука: паузы не будет.
    Если больше: пауза звука = (пауза звука - длительность звука).
  • 00 - выключен
  • 01 - однократный
  • 02 - каждый день
  • 03 - по будням
  • 04 - выбор по дням недели

Основные настройки: Удерживать "среднюю" кнопку
  • Средняя кнопка - выбор, остальные "меньше" и "больше"
  • Клик по "выбору" - переход в пункт меню для настройки/выход к выбору пункта меню
  • Клик "меньше" или "больше" - выбор пункта меню
  • Удержать "выбор" - возврат к режиму часов
  • Удержать "меньше" или "больше" - выбор подпункта меню.
Пункты меню:
  • 01 - Формат времени (12ч | 24ч)
  • 02 - Глюки вкл/выкл (0 - выкл | 1 - вкл)
  • 03 - Звук кнопок вкл/выкл (0 - выкл | 1 - вкл : Громкость озвучки)
  • 04 - Время звука смены часа(Начало : Конец)(Выключить звук смены часа: начало = конец)
  • 05 - Время смены подсветки(Ночь : День)(Выключить смену яркости(включить датчик освещения): ночь = день)
  • 06 - Яркость индикаторов(Ночь : День)
  • 07 - Яркость подсветки(Ночь : День)
  • 08 - Яркость секундных точек(Ночь : День)
  • 09 - Настройка датчика температуры(Коррекция : Сенсор)
  • 10 - Настройка интервала и анимации автоматического отображения температуры(время в минутах 0..15 : анимация)(0 - выключить)
  • 11 - Выбор анимации антиотравления индикаторов и анимации секунднд(антиотравление : анимация секунд)
  • 12 - Установка времени ожидания после выхода из сна(Ночь : День)(0 - выключить)
Таймер/секундомер: Клик по "дополнительной" кнопке
  • Клик по "дополнительной кнопке" - пуск/пауза
  • Клик по "средней кнопке" - вход в настройку таймера(только в режиме таймера)
  • Клик по "левой кнопке" или Удержать "левую кнопку" - режим секундомера
  • Клик по "правой кнопке" или Удержать "правую кнопку" - режим таймера
  • Удержать "дополнительной кнопку" - сброс таймера/секундомера
  • Удержать "среднюю кнопку" - возврат к режиму часов(таймер продолжает работать в фоне, секундомер ставится на паузу)
Настройка таймера: В режиме таймера - Клик по "средней" кнопке
  • Клик по "средней кнопке" - переключение разрядов ММ:СС(максимум 99:59)
  • Клик по "левой кнопке" - уменьшить значение
  • Клик по "правой кнопке" - увеличить значение
  • Удержать "среднюю кнопку" или Удержать "дополнительной кнопку" - выход к таймеру
Радиоприёмник: Удерживать "дополнительную" кнопку(или клик по "дополнительной" кнопке, если таймер/секундомер отключен)
  • Клик по "дополнительной кнопке" - переключить ячейку памяти радиостанций
  • Клик по "средней кнопке" - настройка громкости(текущая громкость):
    • Клик по "левой/правой кнопке" - изменить громкость.
    • Клик по "средней кнопке" - выход к часам(радио останется включенным).
    • Клик по "дополнительной кнопке" - вернуться к радио.
  • Клик по "левой/правой кнопке" - изменить текущую частоту
  • Удержать "дополнительной кнопку" - настройка ячеек памяти радиостанций(запись в ячейке : номер ячейки):
    • Клик по "левой/правой кнопке" - выбрать номер ячейки.
    • Клик по "дополнительной кнопке" - сохранить текущую частоту в выбранную ячейку.
    • Удержать "дополнительной кнопку" - удалить данные из выбранной ячейки.
  • Удержать "среднюю кнопку" - выход к часам(радио выключится)
  • Удержать "левую/правую кнопку" - авто поиск станций вниз/вверх

Управление кнопками В РЕЖИМЕ ЧАСОВ:

  • Клик по "правой" кнопке отображает текущую дату, затем клик по "правой" кнопке переключает дату/год.
  • Клик по "средней" кнопке отображает текущий режим подсветки, затем:
    • Клик по "правой" кнопке - переключает режим анимации цифр(0 - выкл, 1 - случайная анимация, 2 - плавное угасание и появление , 3 - перемотка по порядку числа, 4 - перемотка по порядку катодов в лампе, 5 - поезд, 6 - резинка, 7 - ворота, 8 - волна, 9 - блики, 10 - испарение | 11 - игровой автомат)
    • Клик по "средней" кнопке переключает режим подсветки -
      • Для обычных светодиодов: (0 - выкл | 1 - статичная | 2 - динамичная(дыхание))
      • Для адресных светодиодов: (0 - выкл | 1 - статичная | 2 - дыхание | 3 - дыхание со сменой цвета при затухании | 4 - бегущий огонь | 5 - бегущий огонь со сменой цвета | 6 - бегущий огонь с радугой | 7 - бегущий огонь с конфетти | 8 - волна | 9 - волна со сменой цвета | 10 - волна с радугой | 11 - волна с конфетти | 12 - плавная смена цвета | 13 - радуга | 14 - конфетти)
    • Удержание "средней" кнопки во время отображения режима подсветки(для адресных светодиодов) - переводит в режим установки цвета, выбор цвета осуществляется "левой" и "правой" кнопками(войти можно только в режимах поддерживающих смену цвета - статичная, дыхание, бегущий огонь, волна)
    • Клик по "левой" кнопке - переключает режим точек(0 - выкл | 1 - статичная | 2 - динамичная(плавно мигает))(только для точек в индикаторах)(3 - бегущая | 4 - змейка | 5 - резинка | 6 - маятник)
  • Клик по "левой" кнопке отображает текущую температуру, затем клик по "левой" кнопке переключает температуру/давление/влажность.

Если есть вопросы/проблемы, или вы нашли баг, пишите в ЛС или ниже в теме.

Огромное спасибо psyx86 за тестирование, видео-обзоры и идеи для прошивки! Так-же есть версия плат для часов от psyx86 и плата-модуль для замены оптопар на транзисторы.
 

Вложения

Изменено:

psyx86

★★★✩✩✩✩
31 Янв 2020
262
174
Omsk
@pepino,
Назначение анодов и точек нужно меня, значения 0-7, в усере тоже указать управление через регистр.
Кроме этого, если речь о моих прошлых платах, схематично управление меняется, сложно будет перейти на регистр: придется дорожки резать, навесной монтаж делать и прочее.
Сечас новые платы тестирую:
IMG_20230307_220915_687.jpg
IMG_20230307_220852.jpg
 

Z-V-S

✩✩✩✩✩✩✩
11 Дек 2022
9
0
Столкнулся с такой проблемой:
Перестали работать аналоговые кнопки после смены доп. оборудования. Раньше был только датчик DHT22 и кнопки работали, сейчас заменил DHT22 на BME280 и добавил DFPLAYER кнопки не работают. Все вроде проверил.
 

pepino

✩✩✩✩✩✩✩
6 Сен 2020
53
5
@psyx86,
У меня на макетке собрана вся схема на 6 индикаторах и используются точки в них. Они подключены через регистр. В таком раскладе проблемы с connection и с работой в целом нет. Сейчас хочу добавить две неонки раздельно, и вопрос какие параметры надо менять в userConfig - е.
 
Изменено:

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
@Z-V-S, Проверяйте подключение и правильность указания типа кнопок/пина в прошивке. Если доп.кнопка цифровая, так-же проверяйте её тип и пин.

@pepino, Тк весь регистр занят, неонки можно подключить только к пинам мк, для двух неонок параметры следующие:
C++:
#define NEON_DOT 2
#define INDI_DOT_TYPE 0

#define DOT_1_PIN //указать пин левой неонки
#define DOT_2_PIN //указать пин правой неонки
 
  • Лойс +1
Реакции: Z-V-S

pepino

✩✩✩✩✩✩✩
6 Сен 2020
53
5
@Sergo_ST,
Спасибо. Поставил по вашему совету и заработали и неонки и точки в индикаторах.
 
Изменено:
  • Лойс +1
Реакции: Sergo_ST

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
ver 1.8.9
  • Добавлена возможность выбрать только правые точки в индикаторах.
  • Добавлена возможность отключить таймер/секундомер(при этом радио будет активироваться кликом по доп. кнопке).
  • Добавлена возможность выбрать стартовую задержку при включении питания.
  • Исправление управления питанием усилителя для SD плеера.
  • Исправление неоновых секундных точек.
  • Исправление отображения устойчивого сигнала радиоприемника.
  • Мелкие исправления.
 
Изменено:

mr.nikon

✩✩✩✩✩✩✩
5 Янв 2020
54
8
[QUOTE="Sane4ek161rus, post: 141520, member: колбы для неонок? Спасибо.
[/QUOTE]
Конечно подскажем. Это пробирки с АлиЭкспресс диаметром 8 мм длинной около 100 мм. Обрезаны алмазным надфилем до необходимой длины. Края оплавлены на обычной газовой плите после резки
 

Scandsv

✩✩✩✩✩✩✩
3 Мар 2023
2
1
Здраствуйте!
Подскажите пожалуйста.
Что мешает использовать 2 сдвиговых регистра? и всеми индикаторами управлять через них (в том числе точками и неонками)?
 

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
Доброе утро) Датчик SHT21( HTU21) поддерживается прошивкой? При его подключении постоянно отображается температура 42 и влажность 56
 

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
@Scandsv, Встречный вопрос - а зачем? Была цель расширить порты вывода, сейчас с одним сдвигачем портов достаточно для всего.
@sds22, SHT21 поддерживается, про HTU21 не знаю, нужно смотреть даташит на него... Напишите в лс, я скину тестовую прошивку для проверки датчика.
 
  • Лойс +1
Реакции: sds22

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
ver 1.8.9
  • Исправление работы с шиной I2C.
  • Исправление чтения датчиков температуры SHT2x.
  • Добавлена возможность отключить проверку CRC адреса для ИК приёмника.
  • Мелкие исправления.
@Scandsv, Да, потому что больше портов не нужно, сейчас их хватает для всего)
 

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
Добрый день) если нужен доступ к МК по USB то пины TX и RX должны оставаться свободными?
 

psyx86

★★★✩✩✩✩
31 Янв 2020
262
174
Omsk
@sds22, совершенно верно, некоторая перефирия подключенная к д1 и д0 блокирует загрузку/выгрузку
 
  • Лойс +1
Реакции: sds22

psyx86

★★★✩✩✩✩
31 Янв 2020
262
174
Omsk
@sds22, ISP это другой протокол, у него свои пины. Даже если заняты, загрузка проходит без проблем. Позволяет использовать память МК по максимуму
 
Изменено:
  • Лойс +1
Реакции: sds22

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
Настройка часов через меню часов это то же самое что и настройка через Arduino IDE ?
 

kamikadzze

✩✩✩✩✩✩✩
3 Ноя 2020
16
1
@Sergo_ST, Приветсвую! вываливается ошибка при компиляции
INDICATION.h:237:10: error: 'ANODE_5_POS' was not declared in this scope
INDICATION.h:237:10: error: 'ANODE_6_POS' was not declared in this scope

на старых версиях прошивки этого не наблюдалось. в 1.8.9 появилось. как можно исправить?
 
Изменено:

vlastan

★✩✩✩✩✩✩
13 Июн 2020
37
18
@kamikadzze, возможно в настройках указали тип платы на 4 лампы, а количество ламп 6, отсюда и ошибка.
#define BOARD_TYPE
#define LAMP_NUM
 
  • Лойс +1
Реакции: Sergo_ST

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
@sds22, Из меню можно изменять настройки, которые помечены в файле конфигурации как "DEFAULT".
 
  • Лойс +1
Реакции: sds22

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
@Sergo_ST, если я в часах что то напрограммирую а потом перезапишу скетч, то всё что напрограммировано перезапишется?
 

Sergo_ST

★★★★★★✩
15 Мар 2020
613
516
@sds22, Только если будут изменены настройки по умолчанию в прошивке, или в обновлении будет изменена структура памяти настроек.
 
  • Лойс +1
Реакции: sds22

mr.nikon

✩✩✩✩✩✩✩
5 Янв 2020
54
8
Всем доброго времени суток. Пока это все на что хватило времени. Периферия пока не подключалась. Работают как от 12 так и от 5 вольт. Еще на мой взгляд остсутствует возможность работы основных неонок в паре с раздлелительными точками ламп. По сути можно выбрать что то одно и только. Почему бы не реализоватть возможность работу вместе. К примеру выбрал себе в меню режим работы основных неонок а во втором подменю работу точек ламп. И те и другие работают раз они есть и подключены. Соответственно чтоб была возможность их по отдельности отключать и включать - так сказать у каждого свои предпочтения и вкусы
 

Вложения

Изменено:
  • Лойс +1
Реакции: kamikadzze

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
@mr.nikon, Доброе утро) Совместно заставить работать не получилось? Я вчера проверил работу по отдельности вместе ещё не пробовал, сегодня вечером попробую.
ps: На мой взгляд при отображении температуры запятую неплохо было бы перенести левее - сразу после целого числа, а не перед десятками.
ps: ps: По какой схеме у вас собран преобразователь ?
 

mr.nikon

✩✩✩✩✩✩✩
5 Янв 2020
54
8
Это все что реализовано в прошивке автором. Я же всего то собрал и прошил. Согласен неонка, чтоб загоралась левее было бы по симпатичнее. Преобразователь на мах 1771 и их на плате 2 шт для половины ламп и неонок соответственно свой. А по поводу совместной работы разделителей и точек ламп-это задумка в программе такая
 

sds22

✩✩✩✩✩✩✩
24 Фев 2023
41
5
@mr.nikon, я понимаю что это авторская реализация. Вот и нужно попросить перенести запятую, и надеюсь что это не очень сложно!=)
Поделитесь пожалуйста схемой преобразователя.