Часы на светодиодных матрицах с драйверами MAX7219

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Обновление прошивки.

- Поддержка цепочки из четырёх матриц.

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

Во вложении также проект для Proteus. Исходники на GitHub.

P.S.

Небольшая оговорка: опция разворота картинки на 180 градусов сейчас корректно работает для варианта из четырёх матриц:

Код: Выделить всё

[ 1   2   3   4 ] - используются 4 матрицы;
[ 4   3   2   1 ] - они же повёрнуты.

Код: Выделить всё

[ 1   2   3 ] 4 - используются 3 матрицы, секунд с четвёртой просто не видно
[ 4   3   2 ] 1 - они же повёрнуты, не видно часов, но видны секунды :)
В настоящее время переделываю архитектуру проекта для добавления поддержки матрицы на HT1632.
Вложения
matrixclock-ac15390.7z
(26.69 КБ) 836 скачиваний
Контактная информация:
Реклама
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Чт авг 29, 2013 10:16:34
Откуда: Иркутск

Сообщение Maxtor62 »

WiseLord большое Вам спасибо за быстрые и конкретные ответы! По Вашим подсказкам внёс изменения в код и все четыре матрицы заработали нормально и даже получилось вывести на четвёртую матрицу бегущие секунды. Но цифры были большими, что было не гармонично. Два вечера думал как их уменьшить. То, что уменьшенные цифры надо ввести в шрифт вместо не нужных символов, это до меня дошло, но вот в каком месте кода определяется вывод цифр из шрифта ни как не доходит. Если не сложно ткните носом пожалуйста. А сегодня гляжу Вы уже всё сделали что я хотел, но всё равно хочется понять как это сделано. Залил Вашу обновлённую прошивку и, на мой взгляд, смотрится весьма не плохо и свежо, особенно на фоне 3-х матричных часов, коих в квартире 2 штуки, а так же мозолят глаза на работе и у родителей. Правда секунды в двоичном коде я ещё считывать не могу, но как их убрать я уже знаю.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Функция max7219LoadNumString(). Работает как обычная, но загружает из шрифта символы (цифр) в буфер со смещением 0xC0, попадая на мелкие цифры вместо обычных.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Обновление прошивки.

- Рефакторинг кода, вся конфигурация ножек МК вынесена в файл pins.h;

- Поддержка контроллера HT1632 в конфигурации 32 * 8 светодиодов (4 матрицы). Разводка ATmega8 в этом случае соответвует продаваемой китайцами плате JY-MCU 3208pro;

- Переход на программный I²C (в связи с использованием в вышеупомянутой плате для I²C "случайных" ножек МК);

Возможность программного разворота картинки на 180 градусов временно отключена, так как варианты для трёх и четырёх матриц нужно поворачивать по-разному.
Вложения
matrixclock-6b54c59.7z
(11.34 КБ) 813 скачиваний
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Хотелось бы попросить вас скомпилировать эту крайнюю прошивку под mega328p. Я, к сожалению, в программировании полный "0" :( . И если не трудно, ввести возможность смены шрифтов отображения времени как тут или хотя бы заменить шрифт на такой, как в "стоковой" прошивке в параллельной ветке . Т.к. функционал-важно, но визуализация -тоже не последнее дело.
Заранее благодарен.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

ОК, держите вариант для ATmega328.

А насчёт шрифтов - я так и не понял, что не так с теми, что есть. По-моему, всё прекрасно.

Если хотите предложить что-то другое, милости прошу. Шаблоны картинок во вложении, нарисуйте в том же paint свой вариант и отдельно все цифры прорисуйте. Если в этом будет смысл - можно будет и поменять.
Вложения
matrixclock-m328.7z
(11.62 КБ) 840 скачиваний
matrixclock-design.7z
(2.41 КБ) 670 скачиваний
Контактная информация:
Реклама
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Огромное спасибо.
Попробую чуть позже (сейчас не дома).
Изображение
Пятый шрифт или шестой на цифры можно поставить? Или, если есть такая возможность сделать выбор шрифта цифр из меню?
Еще желательно сделать коррекцию показываемой температуры датчика (китайские у меня врут на +1.3-+1.4 гр. С) из меню.
С вашей прошивкой не знаком пока, возможно у вас все уже реализовано :)
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

WiseLord как должны быть сконфигурированы fuse для ATmega328p? Вроде нигде не прописано :(
Так выглядит шрифт на "стоковой" прошивке от VVSV для четырехматричного дисплея JY-MCU 3208pro.Изображение У него задействованы все строки.
Ниже приведено, как будет выглядеть предлагаемый мной шрифт для трехматричного дисплея, для четырехматричного же, четвертая матрица либо под секунды, либо под температуру.
Нижняя строка у вас не задействована. В связи с тем, что предлагаемый шрифт шире в каждом знаке на пиксель и между показаниями часов и минут остается всего 2 пикселя, предлагаю перенести две точки разделитель вниз, на незадействованную строку. Поочередно зажигая на нижней строке точки в центре, справа и слева. Дни, когда будильник включен, то, что у вас отображается справа зажжеными пикселями вертикально, предлагаю переместить вправо незадействованной строки горизонтально или на четырехматричном дисплее сверху, на четвертой матрице над секундами.
Вложения
150504_160039.jpg
Так по идее должен выглядеть шрифт для техматричного дисплея
(254.83 КБ) 1198 скачиваний
Последний раз редактировалось vadpi Пн май 04, 2015 15:36:05, всего редактировалось 2 раза.
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Фьюзы на 8МГц, внутренний генератор.

А где четвёртая матрица на картинке?
Контактная информация:
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Отредактировал сообщение.
Т.е. включить внутренний 8МГц генератор, а остальные по-умолчанию?
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Можно ещё EESAVE бит установить, чтобы при прошивке не затирался EEPROM. В общем, смотрите на Makefile ATmega8 (для avrdude lfuse = 0xE4, hfuse = 0xD1) и ставьте по аналогии.

Кстати, Вы там упоминаете постоянно некую "стоковую" прошивку. Но в той ветке для HT1632 я только для ATmega328 видел прошивку, т.е. уже не стоковую (под ATmega8). Может, я что-то упустил?
Контактная информация:
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Cпасибо за оперативный ответ. Попробую подобрать конфигурацию fuse для mega328p.
В оригинальных часах JY-MCU 3208pro стоит mega8l. Я ее оттуда давно выпаял :) и поставил mega328p. Это уже не оригинальные часы. По-этому слово "стоковая" я пишу в кавычках. Стоковая-в смысле та, которую написал VVSV для переделанных часов. Он туда еще и датчик давления BMP180 установил...
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Не сочтите за труд, проверьте пожалуйста fuse mega328p (low fuse=0x62 , high fuse=0xD3 ext fuse=0xFD)? Нигде я не накосячил? А то жалко кристалл загубить :(
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Нормально, практически дефолтные (кроме EESAVE и BOOTSZ0).
Контактная информация:
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Cпасибо.
Или может отключить CKDIV8 (Деление тактовой частоты на 8 )?
Тогда lfuse=0xE2
Не судите строго, я тут полный "чайник" :))
И еще, на плате переделанной JY-MCU 3208pro впаян кварц на 16 МГц. Он в данном случае не задействуется? Может имеет смысл его включить или это не совместимо с вашей программой?
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Не используется. А куда он там у Вас впаян - там ведь контактные площадки только для 32кГц часового кварца, и как можно впаять 12/16МГц кварц без изврата с подгибанием ножек, даже не представляю.

Да, делитель на 8, если он у 328 меги есть, надо отключить.
Контактная информация:
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Спасибо, отключим.
Да, впаян вместо часового кварца и "обвязан" конденсаторами.
У VVSV так:
Изображение
У меня чуть лучше, но примерно так же :)))
Почему надо включать "порог монитора питания =2,7В". Батарея во время сна процессор не запитывает. Может включить порог монитора питания=4,3В или все равно?
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Вот тестовая прошивка с "большими" цифрами (шрифт номер 6 на фото). На мой взгляд, выглядит намного хуже исходного варианта, так как цифры сливаются. Так что с моей стороны развития этот шрифт не получит.
Вложения
matrixclock-test_bignum.7z
(19.2 КБ) 624 скачивания
Контактная информация:
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт май 06, 2014 00:53:29
Откуда: Воронеж

Сообщение vadpi »

Все, умудрился залочить чип :cry: , прошившись с фьюзами для внешнего тактирования. Другого 328 у меня нет :evil:
Ваши прошивки работают на mega8L?
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Частота 8МГц, так что должны.
Контактная информация:
Ответить

Вернуться в «Статьи»