WiseLord, приветствую! Прошивка и железо описаны здесь. Вывод МК PC0/ADC0 подключен на "-" через резистор 10K. Если уровень яркости в настройках больше единицы (2-15), то наблюдается моргание/мерцание (кратковременное понижение яркости до уровня = 1). Если уровень яркости в настройках равен 0 или 1, то моргания нет. Периодичность моргания не замечена. Может моргнуть подряд несколько раз, а может поработать несколько секунд нормально, а затем моргнуть. Когда схема была собрана на макетке, это тоже наблюдалось, но я списал моргание на плохие контакты. Теперь же схема собрана (спаяна) на стеклотекстолите, т.е. в надежности контактов я уверен. Пробовал прошить этой же прошивкой другой МК - результат тот же. Может проблема в этой версии прошивки? Помогите решить проблему.
Понаблюдал, выставляя разные уровни. Не мерцает только при уровне = 0. При уровнях от 1 до 15 мерцает в зависимости от текущего времени. Также замечено: чем выше уровень, тем чаще мерцания (мигания). Прикрепляю табличку в формате txt.
Вложения:
Комментарий к файлу: Табличка зависимости мерцаний от уровня и текущего времени. Flickers.zip [713 байт]
Скачиваний: 238
Согласно Вашей схеме (matrixclock-sch.png), никакого конденсатора на выводе PC0/ADC0 нет. Также нет никаких рекомендаций по установке конденсатора на первой странице в пункте "Поддержка фоторезистора в качестве датчика освещённости". Вывод AREF в моем случае подключен к питанию (согласно схеме). Фоторезистора в моем случае нет. Поэтому нет и резистора 1МОм. Термодатчиков нет. Поэтому вывод PD6/AIN0 "в воздухе".
Согласно Вашей схеме (matrixclock-sch.png), никакого конденсатора на выводе PC0/ADC0 нет.
Схема эта с тех времён, когда фоторезистора даже и в планах не было. В принципе, резистора на землю в случае отсутствия фоторезистора должно быть достаточно.
shutdown писал(а):
Термодатчиков нет. Поэтому вывод PD6/AIN0 "в воздухе".
Странная логика. Резистор-то зачем убирать? Он обеспечивает лог. 1 на входе, что должно индицировать отсутствие датчиков. Правда, на яркость это влиять не должно.
Технически, если вход АЦП заземлён, то АЦП должен всегда выдавать 0, что однозначно привязывает яркость к текущему времени (часу). Если есть какие-то скачки, значит по какой-то причине в какие-то моменты времени АЦП насчитывает некое ненулевое значение, что может быть результатом помехи на входе. Можно попробовать вход АЦП вообще заземлить накоротко.
В любом случае, попробуйте новую версию.
- Исправлена ошибка пересчёта дня недели при изменении даты (он пересчитывался только при изменении часов-минут-секунд).
- Увеличен диапазон распознавания отсутствия фоторезистора.
Резистор-то зачем убирать? Он обеспечивает лог. 1 на входе, что должно индицировать отсутствие датчиков.
Тут я согласен. "Дал стране угля" Припаял. Но, что без резистора, что с резистором - часы переключаются в режим отображения показаний с датчиков каждые 128 секунд. В этот момент вообще пропадает индикация на 2 секунды. Но т.к. датчиков никаких нет, то индикация возвращается к отображению времени.
WiseLord писал(а):
В любом случае, попробуйте новую версию.
Спасибо! Перепрошил МК. Выставил максимальный уровень (15). Мерцания вроде-бы нет. Пока продолжу тестирование.
---
Здесь увидел, что этот режим отображения времени не содержит бинарного столбца. В версиях matrixclock-aa2e554 и matrixclock-c3945a5 он есть. По-моему, толка от него мало (или совсем нет). Он только портит общую "картину". Может совсем его убрать?
Последний раз редактировалось shutdown Вс фев 07, 2016 12:46:39, всего редактировалось 1 раз.
Т.е., если в будующем датчики будут подключены, то автоматическая прокрутка их показаний работать не будет? А при нажатии "Кнопки 3" останется рабочей соответствующая функция?
Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
Добавлено: Чт фев 18, 2016 11:33:27
Вымогатель припоя
Зарегистрирован: Ср сен 09, 2015 13:09:15 Сообщений: 558
Рейтинг сообщения:0
проблема мигания яркости дисплея с датчиком освещения в сумерки и на рассвете еще и в обратной связи от динамической индикации светодиодной матрицы. свет от светодиодов матрицы отражается от предметов в комнате и попадает в фотодатчик. я на фоторезистор черную термоусадку натянул, а возле окошка фотоэлемента конус сделал (при усадке надо колпачек от шариковой ручки впихнуть, и дать остыть). получилась бленда, как на объективе видеокамер от бликов боковой подсветки.
а без фоторезистора, да, лучше затерминировать вход АЦП резистором 1 МОм на землю, ну и кондюк на 100nF не помешает, сгладит шум от импульсных помех в шине питания.
в ПО надо внести алгоритм усреднения замеров АЦП, если они ниже какого-то порогового значения.
Предлагаю всё-таки выложить на первую страницу окончательнвй вариант схемы часов, со всеми вариантами датчиков, блокировочными конденсаторами и терминаторами, и рекомендации по монтажу и разводке PCB(я свои на макетке собирал). Много новичков делает это впервые, не отбивайте у них желание заниматься электроникой дальше.
Попробовать можно, но у меня родилась идея замены фоторезистора потенциометром. Это позволит выставить нужную яркость вручную, и она не будет изменяться в зависимости от текущего времени. Такое решение будет полезно в помещении с неизменяемой освещенностью на протяжении суток.
kloker писал(а):
в ПО надо внести алгоритм...
Вроде бы WiseLord уже избавил нас от такой необходимости. В моем случае прошита версия matrixclock-c3945a5, фоторезистора нет, вывод PC0/ADC0 подключен на "-" через резистор 10K. Мерцаний нет. Изредко проскакивает "помеха" в виде кратковременной, чуть видимой засветки столбца светодиодов на одной из матриц. Не каждый раз в одном и том же месте. "От балды". Предполагаю, что это помеха по питанию. БП импульсный (от мобильника), да и везде понаставлены конденсаторы 100 нФ. Попробую запитать часы от аккумулятора, это покажет "зависимость от розетки".
kloker писал(а):
Предлагаю всё-таки выложить...
Поддерживаю!
И хотелось бы иметь возможность более продуманного обнуления секунд при настройке. В текущей версии при кратковременном нажатии кнопки происходит "анимированное" обнуление секунд, что влечет за собой некоторую задержку, особенно, если текущее значение секунд в районе 30. Если же нажать и удерживать кнопку в надежде, что секунды обнулятся и при ее отпускании возобновится отсчет, то вообще не происходит обнуления (нет реакции на нажатие и удержание кнопки). Было бы замечательно, если бы при нажатии и удержании кнопки происходило обнуление (можно даже убрать анимацию при обнулении), а при ее отпускании стартовал отсчет.
заметил такой глюк устанавливаю время и дату 21.02.2016 - прошел по всем параметрам вышел по кн1 при выводе дня недели все нормально захожу снова, дохожу до установки числа - устанавливаю 22 и выхожу по длинному кн1 день недели не изменился и остался воскресеньем, должно быть понедельник заметил что перерасчет дня недели происходит только если пройти установку всех параметров даты и времени и выйти надо перерасчитывать при любом изменении даты собирал все из последних исходников с Гитхаба с gcc 4.9.2
Да, я тоже было увидел этот глюк - при редактировании даты-времени день недели рассчитывался только если редактировалось время. Но, вроде как, ещё 2 недели назад с этим разобрался .
Да, я тоже было увидел этот глюк - при редактировании даты-времени день недели рассчитывался только если редактировалось время. Но, вроде как, ещё 2 недели назад с этим разобрался .
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения