Найти в Дзене

Орион-128. Драйвер MAX7219 + матрица 64х8.

Всех приветствую! В прошлый раз мы поработали с семисегментными индикаторами. В этот раз разберёмся с матрицей 64х8, состоящей из 8 отдельных матриц 8х8. Я приобрёл одну такую на известном сайте: Подключил к Ориону и написал программу вывода символа. На одинарной матрице всё получилось отлично: Но вот на "колбасе" что-то пошло не так: Начал разбираться и выяснилось, что в этих "паровозиках" матриц всё не так просто. Организовав программный счетчик до 8, мне удалось получить только два варианта вывода: Как я ни крутил алгоритм, ничего толкового не получается. Не получается получить доступ к конкретной матрице, кроме первой. Начал смотреть в сторону библиотек Arduino, но также ничего не понял. Понял то, что в матрице постоянно происходит сдвиг прежней информации при записи новой. Изучив более тщательно даташит на микросхему MAX7219, понял, что получить то, что я хочу в принципе невозможно! Но вопрос остался: как на эти матрицы выводят информацию библиотеки Arduino? Если кто сможет мне эт

Всех приветствую!

В прошлый раз мы поработали с семисегментными индикаторами.

В этот раз разберёмся с матрицей 64х8, состоящей из 8 отдельных матриц 8х8. Я приобрёл одну такую на известном сайте:

-2

Подключил к Ориону и написал программу вывода символа. На одинарной матрице всё получилось отлично:

-3

Но вот на "колбасе" что-то пошло не так:

-4

Начал разбираться и выяснилось, что в этих "паровозиках" матриц всё не так просто. Организовав программный счетчик до 8, мне удалось получить только два варианта вывода:

-5
-6

Как я ни крутил алгоритм, ничего толкового не получается. Не получается получить доступ к конкретной матрице, кроме первой.

Начал смотреть в сторону библиотек Arduino, но также ничего не понял. Понял то, что в матрице постоянно происходит сдвиг прежней информации при записи новой.

Изучив более тщательно даташит на микросхему MAX7219, понял, что получить то, что я хочу в принципе невозможно! Но вопрос остался: как на эти матрицы выводят информацию библиотеки Arduino? Если кто сможет мне это объяснить на пальцах, напишите в комментариях. Может я что-то не так понял?

Было решено немного доработать матрицу. Так как все 8 матриц соединены последовательно и вся информация внутри неё движется при тактировании, я решил разделить её на отдельные части, у которых есть свой вход данных DIN, вход тактирования CLK и свой вход выборки CS. После доработки появилась возможность управлять каждым "квадратиком" отдельно от остальных, например, устанавливать яркость. Для доработки необходимо разрезать проводники, соединяющие между собой сигналы CS и DIN&DOUT.

Разрезы показаны на фото. Учтите, разрезы нужно делать с двух сторон!

-7

Вытаскиваете матрицы и со стороны деталей также разрезаете дорожки. Там всё подписано.

Дальше соединяете матрицу по схеме:

-8

Схему в более лучшем качестве можно будет скачать по ссылке в конце статьи.

Сперва нужно соединить все сигналы DIN, затем под матрицами протянуть провода, соединяющие матрицу к порту PА микросхемы DD55 и подпаять их к разъёму Х6. Вставить матрицы обратно в разъёмы. Должно получиться примерно так:

-9

Подключаем к компьютеру и включаем. При первом включении на матрице может отображаться мусор - это нормально.

Самое простое что можно теперь вывести на экран матрицы - это статичный текст или бегущую строку. Для этого была написана программа TXT64X8$.

После запуска программа выдаст заставку и небольшое описание, как работать с программой.

У программы два режима работы: вывод статичного текста и бегущей строки. Вывод статичного текста, скорее всего, вызовет малый интерес, т.к. ограничение на ввод всего 8 символов.

-10
-11
-12
-13

Больший интерес вызовет бегущая строка, которая может вместить в себя до 255 любых печатных символов.

Демонстрация работы программы для статичного текста:

Демонстрация работы программы для бегущей строки:

Ещё больший интерес может вызвать работа с графическими примитивами: точкой, линией и окружностью. Для работы с ними применяются известные алгоритмы Брезенхэма. Но об этом в следующий раз.

Исходный текст демо-программы TXT64X8$ и саму программу, а также схему в хорошем качестве можно скачать по ссылке https://disk.yandex.ru/d/oHToAHs6eyGTRw

До новых встреч!