Собственно отмасштабированные часы отсюда (x2 по высоте и ширине)
Режимы работы:
- обычный режим (часы:минуты)
- настройка часов
- настройка минут
- настройка секунд
- настройка яркости в темноте (1-80%)
- настройка яркости на свету (21-100%)
- настройка режима работы подсветки (вкл\выкл\авто), авто по освещённости
- настройка яркости подсветки (1-100%)
- настройка уровня включения подсветки (10-50%, принимается что макс яркость 100% соотв 0 на АЦП)
- настройка величины гистерезиса включения\отключения подсветки (5-15% ,для предотвращения мигания)
- отображение секунд (вкл\выкл\авто); авто - секунды отображаются только с 8 утра до 22 вечера
- отображение секунд (мигающая точка\точка\дуга закрашивание\дуга очистка)
- задержка мигания точки (t); для режима мигающей точки, от 0 до 50; это не столько задержка сколько просто делитель, частота мигания = ~488/(4 x t)
- смена шрифта (выключено\ежеминутно\ежечасно\ежесуточно)
- шрифт (1,2,3,4,5)
Минимальная разница между яркостью на свету и яркостью в темноте 20%. Те. например если яркость на свету 60%, то яркость в темноте не выставить более 40% (т.е. нужно сперва увеличить первое).
Рисовалка шрифтов для режима отображения времени во вложении (там же переделка мелкого моноширинного шрифта в регулярный). Как сказано выше, 5 шрифтов. Шрифты #3, #4 и #5 - копии шрифта #1. Шрифт #2 рисовал на скорую руку просто для демонстрации, меня пока устраивает один шрифт.
Плата и схема в упрощенном виде в протеусе (переключение между листами PgUp и PgDn) во вложении. Схема вообще типовая (несколько регистров каскадом). На схеме не показаны ключи верхнего плеча и нижнего, они все равно не промоделируются. Верхние ключи брал как тут (готовый велосипед), в качестве нижних использовал N-канальные полевики по причине большого количества (выбирал с минимальным напряжением открытия с помощью моего любимого прибора). Рисовал со светодиодами - моделируется с микроскопической скоростью.
Немного не подрассчитал с тепловым режимом стабилизатора 5В. Пришлось делать эрзац тепловоотвод (на фото4 выглядит как кусок медной проволоки). Отводит вполне хорошо, процессоры всех ноутбуков охлаждаются подобным методом.
Если использовать для приёма ик-команды отдельный микроконтроллер, то можно добиться прозрачности её приёма (без мигания). Задача стояла сделать всё на одном микроконтроллере.
В основном режиме (отображение времени) при нажатии + или - показывается какой-либо текст (можно редактировать в исходном коде)
Если при настройке какого-либо параметра дождаться выхода в основной режим по бездействию, то этот параметр не сохраняется. Это нужно для того чтобы была возможность не сохранять изменения; да и в eeprom лишний раз ничего не пишется. Для сохранения измененного параметра нужно нажать setup и выйти в следующий режим.
Привязка пульта инициализируется кнопкой. При этом подсветка моргнет. Появится соотв надпись. Все интуитивно.
Это законченная конструкция. Если кто-то решит добавить показометры или изменить функционал, то исходник прилагается. Шить\компилировать файл main.bin (main.hex)\main.bas, остальные файлы *.bas являются просто вложениями для удобства работы при написании процедур.
Корпус пилил из фанеры 4мм и склеивал. Шпаклевал смесью опилок и клея ПВА. Но лучше заказать резку из акрила (@@@ся с корпусом я долго)
Фьюзы на внешний кварц 8МГц
Токоограничительные резисторы нужно подбирать. Мои получились такие:
матрица 510 Ом
секундные зеленые 470 Ом
секундные желтые 2.4 кОм
5и секундные интервалы 850 (820) Ом
5и секундные двойные 710 (680) Ом
Токооограничивающие резисторы при использовании секундных светодиодов разного цвета устанавливаются непосредственно на каждый светодиод свой, иначе только 16 штук рядом с ключами. На плате оба варианта.
фото при различном освещении
Спойлер
На видео изображение мерцает, но в действительности этого нет. Частота динамической индикации ~488Гц (или ~61Гц на каждую строку). Кроме того изображение строится в буферах (2 для матрицы и 2 для массива секунд) для предотвращения оптических артефактов. Буферы переключаются по готовности отрисовки.
Перед включением видео необходимо уменьшить громкость. Оно её что-то задрало.
