Аналоговая регулировка яркости светодиодных матриц под управлением MAX7219

Светодиодные матрицы…

… для любителей теплой аналоговой регулировки.

В силу своей лени, и ряда других причин стал пользоваться готовыми электронными модулями. Одним из таких является модуль состоящий из 4 матриц по 64 светодиода. Решив применить данный модуль для изготовления матричных часов, столкнулся с проблемой недостаточного диапазона регулировки яркости. Дело в том, что ночью люблю спать в полной темноте и не люблю когда что-то светит, а данный модуль даже на минимальной яркости освещает половину противоположной стены. Изучив даташит на MAX7219 было установлено, что кроме цифровой регулировки яркости, есть ещё и аналоговая, в виде резистора, задающего пиковый ток через сегменты.


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

Эту операцию лучше проводить при помощи отвертки в роли рычага, упирая её конец в плату и немного приподнимая с разных сторон. Желательно не гнуть выводы матриц, иначе возникнут трудности при монтаже на место.
Также желательно запомнить ориентацию матриц: ключом-выступом на ребре к надписи FC-16.
Далее разрезаем перемычку между резистором R1 и конденсатором C1 рядом с каждой микросхемой.
Разрезаем перемычку
Далее необходимо заготовить три провода длиной 5 см и два по 10 см для подключения датчика.
Припаиваем проводники как на картинке ниже:
Схема пайки
В результате тестирования установлено, что яркость регулируется очень хорошо, однако в полной темноте в зависимости от экземпляра фоторезистора, может доходить до нуля. Если такое происходит, то следует добавить параллельно фоторезистору резистор сопротивлением от 100 до 200 кОм. Резистор можно распаять прямо на плате, что и было сделано:
Добавочный резистор
В качестве датчика использован фоторезистор, продававшийся с наименованием LDR 5528. Примерные характеристики следующие: сопротивление на уровне освещенного рабочего стола примерно 1,3 кОм, темновое от 200 до 500 кОм.
Внешний вид датчика
Ну и конечно же короткое видео трясущимися руками))

Ссылка на проект автора
  • +12
  • 04 января 2018, 04:25
  • tituszx
  • 1
Файлы в топике: AVR_matrixclock DS3231.zip

Комментарии (17)

RSS свернуть / развернуть
Здравствуйте.
Прикольно.
Поделитесь проектом часов.
Спасибо.
0
Часы вот эти.
С небольшими доработками:
вместо ds1307 применена ds3231;
откорректирована процелура работы с матрицами для данного модуля;
добавлена возможность коррекции по GPS;
регулировка яркости.
Измененный проект в Atmel Studio.
Сегодня-завтра выложить не смогу, дома ремонт, пол квартиры без электричества, комп тоже
0
Спасибо.
Не страшно, подождем.
0
Прикрепил к статье
+1
А ГПС откуда берётся?
0
С GPS модуля. Можно откуда угодно GPRMC строку на RX подать, и оттуда возьмуться минуты и секунды. Часы брать не стал, мало-ли опять введут зимнее/летнее время или человек из Владивостока решит собрать
0
И как оно ловит в глубине помещения? Не приходится часы на окно ставить или выносную антенну делать?
0
Neo-6m хорошо ловит и в глубине квартиры. Правда если только один спутник видит, то некоторое время имеется смещение порядка 2-5 с, потом нормально. Когда фикс есть, то соответственно всё норм. SkyTrack из видеорегистратора даже на подоконнике очень плохо ловит.
0
Для решения ж вроде надо не менее 4 спутников? В случае одного спутника, правда, можно примерно прикинуть время, с погрешностью в зависимости от расстояния до него.
0
Да, но время можно получить и от одного. Время прохождения сигнала со спутника до приемника не более 0,1 с. Но приемник при одном спутнике сразу с такой точностью время не дает. В RMC строке при одном спутнике статус данные недостоверны (V). О том что время получено, можно судить по косвенным признакам: в neo-6m до получения его просто нет, в SkyTrack до получения времени выдается 2006 год.
0
Есть недорогие GPS модули по 200 р на алиэкспрессе ublox neo-6m с активной антенной
0
Я так понял изначально проект был для arduino, а потом изменен для Atmel Studio?
Как это делать?
0
Ардуино в своей основе имеет тот же тулчейн, что и студия. В принципе, можно просто перетащить проект целиком, подключив фреймворк ардуино как библиотеку и добавив недостающие строки в сырец (какие именно — можно увидеть, заглянув во временную папку, где ардуино иде собирает проект — там оно будет под именем вида mysketch.ino.cpp).
Ну а дальше уже при желании можно выкинуть сам фреймворк, заменив используемые функции своими либо переписав используемый ими код.
Ардуино-библиотеки же и вовсе представляют собой совершенно обычную библиотеку на С++, они даже сам фреймворк редко юзают, предпочитая работать с железом напрямую (из-за чего порой не работают на некоторых вариантах ардуино — типа древних плат с атмега8).
0
Да. Новая студия умеет штатно импортировать проекты arduino. File->New Project->Create project from Arduino sketch
0
Попробовал импортировать проект и скомпилировать.
Что-то не вышло.
Расскажите как делать или ткните в туториал.
0
А не хотите запилить статью о часах с применением матриц?
0
Не думаю, что это уместно в отношении чужого проекта, тем более у автора все расписано. Ссылка в конце статьи
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.