Pxmatrix 16х32 esp8266 - нужна помощь

Тема в разделе "ESP8266, ESP32", создана пользователем dima11711, 11 янв 2021.

  1. dima11711

    dima11711 Нуб

    Здравствуйте, купил китайский светодиодный модуль ну могу заставить работать. Прозвонил все шины данных и землю, выяснил, что вместо шины данных "С" - земля. это код который использую для теста результат случайный светодиод загорается и тухнет случайным цветом хотя цвет указан. Начинает светится не сразу после запуска, а в случайный момент. Вот так происходит подключение.
    [​IMG][​IMG]
    Код (C++):
    #include <Ticker.h>
    #include <PxMatrix.h>
    Ticker display_ticker;
    #define P_LAT 16
    #define P_A 5
    #define P_B 4
    #define P_OE 2
    PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B);
    uint16_t myRED = display.color565(255, 0, 0);
    uint16_t myGREEN = display.color565(0, 255, 0);
    uint16_t myBLUE = display.color565(0, 0, 255);
    uint16_t myWHITE = display.color565(255, 255, 255);
    uint16_t myYELLOW = display.color565(255, 255, 0);
    uint16_t myCYAN = display.color565(0, 255, 255);
    uint16_t myMAGENTA = display.color565(255, 0, 255);
    uint16_t myBLACK = display.color565(255, 255, 255);
    uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK};
    void display_updater() {
      display.display(70);
    }

    void setup() {
      Serial.begin(115200);
    Serial.println("");
      display.begin(2);
      display.clearDisplay();
      display_ticker.attach(0.002, display_updater);
      display.setTextColor(myYELLOW);
    }

    void loop() {
      display.print(".");
      Serial.println("hello");
      delay(2000);
    }
     
  2. dima11711

    dima11711 Нуб

  3. b707

    b707 Гуру

    картинок подключения не видно. поэтому проверить правильность сборки трудно.
    Но даже если все собрано правильно - это еще не гарантирует вывод изображения.
    У подобных дисплеев масса параметров, влияющих на вывод картинки. В частности. диоды на матрице обходятся не подряд, по горизонтали или вертикали. а по очень замысловатой траектории, например:
    [​IMG]
    и эта конфигурация на матрицах разных изготовителей не совпадает.

    В описании к библиотеке PxMatrix описано много параметров настройки, почитайте.
    И для начала я бы советовал вам не выводить на экран символы и строки, как у вас в loop(), а засветить один единственный пиксель по координатам функцией
    Код (C++):
    drawPixel(int16_t x, int16_t y, uint16_t color);
     
    Последнее редактирование: 12 янв 2021
  4. dima11711

    dima11711 Нуб

    вы говорите об этом?https://github.com/2dom/PxMatrix
     
  5. b707

    b707 Гуру

    да, об этом
     
  6. dima11711

    dima11711 Нуб

    Вы случайно не знаете, как можно изменять яркость? В описании библиотеки Adafruit_GFX не нашёл. Всё что нашёл это, но это для другой библиотеки,как я понял.
    Код (C++):
    for(int i=0; i<16; i++) {
      matrix.fillScreen( matrix.Color444( i, 0, 0));
      delay(100);
    }
     
  7. b707

    b707 Гуру

    заданием более светлого или более темного оттенка того же цвета
    проще всего это делать. если перевести цвета пикселей в HSV модель
    в библиотеке Адафруит есть для этого функции
     
  8. dima11711

    dima11711 Нуб

    Спасибо