• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Модуль MAX7219

AndrF

Active member
Пытаюсь задействовать модуль на основе MAX7219 - ну такие на Ali продают:


Вроде примеров в интернете много, но проблема - ни один толком не запускается. К тому же выложены в интернете они как правило кусками - отсутствуют модули библиотек, которые вполне могли и поменять. Вот и гадай в итоге...

Единственный , который хоть как-то пошел это (отсюда):

Код:
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>

Max72xxPanel matrix = Max72xxPanel(D8, 4, 1);

unsigned long ticker_next;
String tape = "Hello from RobotClass!";
int spacer = 1;
int width = 5 + spacer;

void setup(void){
    matrix.setIntensity(7);
}

void handleTicker(){
    for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) {
        matrix.fillScreen(LOW);

        int letter = i / width;
        int x = (matrix.width() - 1) - i % width;
        int y = (matrix.height() - 8) / 2;

        while ( x + width - spacer >= 0 && letter >= 0 ) {
            if ( letter < tape.length() ) {
                matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1);
            }
            letter--;
            x -= width;
        }

        matrix.write();
        delay(50);
    }
}

void loop(void){
    handleTicker();
}
Но пошел криво - работает только одна матрица из 4-х и текст в ней повернут и скроллируется по вертикали, а не по горизонтали... Ну текст я еще могу повернуть, а вот разобраться как заставить работать другие матрицы модуля не получается.

Посмотреть что там с сигналами - тоже не могу - осциллограф отсутствует. Но модули менял - эффект тот же. Сейчас собрано на макетке...

Можете подсказать в чем дело или поделиться рабочим примером со всеми библиотеками?
 

Andy Korg

Moderator
Команда форума
...одна матрица из 4-х и текст в ней повернут и скроллируется по вертикали, а не по горизонтали....
Напрашивается вывод, что задана размерность шириной в одну матрицу и высотой в несколько (в четыре например). Где там задается размерность? может тут: Max72xxPanel matrix = Max72xxPanel(D8, 4, 1);
 

AndrF

Active member
Напрашивается вывод, что задана размерность шириной в одну матрицу и высотой в несколько (в четыре например). Где там задается размерность? может тут: Max72xxPanel matrix = Max72xxPanel(D8, 4, 1);
Да, именно там. 4 по горизонтали и 1 по вертикали. Наборот тоже пробовал - вообще не идет...
 

AndrF

Active member
Непонятно то что команды, которые должны воздействовать на все матрицы, действуют только на первую.

К примеру, setIntensity(..);

Но почему так не пойму - модули соединены нормально. Но модули стоящие за первым в упор не видят что передают.

Скорей всего проблема одна...
 

AndrF

Active member
Шорт! Поехало!

Проблема была в следующем - питание для модуля я брал с контакта VIN макетки для модуля Nodemcu - по идее там должно было быть 5 вольт. Но, похоже, не было. То есть вообще не было. Замерить-то было нечем. А модуль с матрицами, выходит, изображал работу будучи подключенным к одним сигнальным контактам и GND! Светил слабовато, но одна матрица работала как надо, а остальные просто светились... Сейчас переткнул на 3,3V и все поехало. По крайней мере в этом примере.
 
Сверху Снизу