...или STALIN-CLOCK Собственно отмасштабированные часы отсюда (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 для массива секунд) для предотвращения оптических артефактов. Буферы переключаются по готовности отрисовки.
Перед включением видео необходимо уменьшить громкость. Оно её что-то задрало.
В файле buttons.bas (процедура обработки нажатия Setup) перепутаны местами номера ячеек памяти для настройки режимов №10 и №13 (ячейки 5 и 20). Обнаружил после отключения электричества, стал меняться шрифт и всё время были включены секунды. Это не смертельно. При чтении всё равно проходит проверка на допустимость считанного, в случае чего сбрасывается в 0. Поправил у себя, загружу исправленную прошивку, проверю и выложу. Всем больших и красивых часов. Фёдор.
Ещё добавится режим автосмены эффекта отображения секунд (выкл\мин\час\сут)
1. Исправил ошибку выше 2. Увеличил количество шрифтов до 10 (табличка прилагается) 3. Добавлено включение\выключение активности шрифтов при автосмене. Например если вкл только #1 и #5, то отображаться будут только они. Шрифт #1 всегда активен. При отключении автосмены шрифтов отображается шрифт, который был установлен принудительно в меню 15. 4. При отключении режима смены эффекта отображения секунд выставляется эффект который был принудительно выставлен в меню 11.
А схема не приклеилась в первом посте. Приколачиваю ещё раз. И пропаиваю... Она урезана в виду невозможности промоделировать с достаточной скоростью всю целиком.
Неа. По причине сложности разводки схемы не было. Программа писалась под уже разведенную плату. Будет время нарисую в splan. Вопросы можно задавать абсолютно любые. Возможно это подтолкнет к другим идеям или хотя бы просто придаст ускорение. ========== Начинаю потихоньку рисовать схему.
Накалякал схему в SPLAN7.0 и "распечатал в pdf". Ежели возникнут вопросы, то разводку платы принимать за истину. Формат A1 чтобы одним листом не наводя ужас на читателей кусками. Мимо шел, сделал ещё фото. Есть замечание по конструкции. Визуально разница между двойными 5-и секундными интервалами и одиночными невелика, а на определенном расстоянии исчезает. Поэтому лучше делать как минимум тройные вместо двойных.
1. Постоянный резистор соединяющий фоторезистор с +5В не 2к, а 10к. 2. Номинал резистора идущего от них же на порт мк может варьироваться в широких пределах. От его сопротивления зависит скорость зарядки\разрядки ёмкости на порте мк при изменении освещенности. Если нужно уменьшить скорость реакции на освещенность, то резистор можно ставить до 1МОм и\или увеличить емкость конденсатора. 3. Вероятно скоро будет небольшая доработка аппаратной части с незначительным отражением в программе.
Собственно вот доработка. Обеспечивает отключение 5-и секундных интервалов если секунды не отображаются. Сначала не обращал внимания. Но потом заметил, что если светятся 5-и секундные интервалы, а режим отображения в виде точки, то глаза начнают искать эту самую точку. Поэтому решил покончить с этим обманом самого себя. Сама доработка ни что иное как 'или-не' диодами (я использовал шоттки диоды, они первые попались). Поскольку ОС1B занят под подсветку, то инвертированный ШИМ (для регистров активный низкий, а полевик отпираем высоким) с возможностью отключения делаем таким макаром. Прошивка прилагается.
koka5555 писал(а):пугает размер платы. Мой принтер печатает максимальный формат а4.Раскажите как Вы делали плату.Платы продавать будете?
Делил на листы A4. ЛУТ частями. Такое я больше делать не буду. Побил собственный рекорд по числу матершиных слов в единицу времени. На заказ платы не делал и делать не собираюсь. Есть темы где можно заказать платы.
m.ix, размеры, оформление, функционал делал по своим соображениям. Если у кого-то не посоветовался - пардоньте, я просто не знал у кого. Для нового года у меня есть ёлка. А это просто часы.
цифры симпатичнее в строке смотрятся если они трёхрядные. как то вот так.
Предположу что размер такого табло не для моего скромного жилища. Хотя в качестве фонаря тревоги самое оно.
зы. отображение простыми сегментами мне поднадоело. =====
Разве это мега проект?
Размышлял час над этим вопросом. Не имею системы критериев и методики оценки "маегасти". Название было унаследовано от прототипа другого автора. Если название темы задевает чьи-то религиозные чувства, то я не против если модераторы изменят название темы на более толерантное.
У тебя большая строка, сколько то на сколько то там. Думаю, что возможно изменить картинку цифр, чуть короче. - хотя вижу несколько их имеются.
можно добавить пульт, что бы на стенку не залезать (RC-5) термометр, что бы пикселены не простаивали за заря.
Настройки сделать бегущей строкой, если конечно есть пространство.
То что я делал, это турецкий проект - сайт их умер. там ни каких настроек нет выставить время будильник - там какой то свой музон. как будут мигать точки
Правда у турок был так же с бегущей строкой, но не такой большой по разрешению как у тебя, у тебя строка позволяет мысли-возможностям быть ширее.
еххх.... Ширину цифр можно менять. Ежели бы меня устроил моноширинный шрифт я бы взял готовое в сети (оно там есть). Началось с банальщины - сегментные индикаторы не могут быть отцентрированы при различном количестве цифр. Пульт там есть. Термометр - школьничество. Шо он покажет? Температуру в месте установки? Или в месте термодатчика? Температура между полом и потолком отличается на градусы. Меня умиляет когда часовые коты гордо показывают до десятых. Бегущая строка тоже баловство. Две мелкие строки лучше (верхняя название параметра, нижняя - сам параметр). Будильник мне не нужен был и не понадобится. Я выложил весь материал по конструкции, каждый может добавить то что хочет. Места хватит и на свистелки и на перделки, и на дополнительные мигалки.
Поэтому я бережно сохранил пяток килобайт. У кого есть желание отпочковывайте и делайте что-то дополнительное. Для меня часы - средство отсчета и отображения времени.