Как на матрицу выводить текст статично?

Тема в разделе "Arduino & Shields", создана пользователем Никита Мещеряков, 16 мар 2019.

Метки:
  1. Добрый день. У меня возникла проблема, я купил матрицу 16*16. И хочу вывести текст по середине , но я нашел код где он только проезжает с права на лево. Как сделать его статичным и отобразить по середине. Пример кода
    Код (C++):
    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
    #ifndef PSTR
    #define PSTR // Make Arduino Due happy
    #endif
    #define PIN 3
    // MATRIX DECLARATION:
    // Parameter 1 = width of NeoPixel matrix
    // Parameter 2 = height of matrix
    // Parameter 3 = pin number (most are valid)
    // Parameter 4 = matrix layout flags, add together as needed:
    //   NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
    //     Position of the FIRST LED in the matrix; pick two, e.g.
    //     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
    //   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
    //     rows or in vertical columns, respectively; pick one or the other.
    //   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
    //     in the same order, or alternate lines reverse direction; pick one.
    //   See example below for these values in action.
    // Parameter 5 = pixel type flags, add together as needed:
    //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
    //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
    // Example for NeoPixel Shield.  In this application we'd like to use it
    // as a 5x8 tall matrix, with the USB port positioned at the top of the
    // Arduino.  When held that way, the first pixel is at the top right, and
    // lines are arranged in columns, progressive order.  The shield uses
    // 800 KHz (v2) pixels that expect GRB color data.
    Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(8, 8, PIN,
      NEO_MATRIX_TOP     + NEO_MATRIX_RIGHT +
      NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
      NEO_GRB            + NEO_KHZ800);
    const uint16_t colors[] = {
      matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };
    void setup()
    {
      matrix.begin();
      matrix.setTextWrap(false);
      matrix.setBrightness(5);
      matrix.setTextColor(colors[0]);
    }
    int x    = matrix.width();
    int pass = 0;
    void loop()
    {
      matrix.fillScreen(0);
      matrix.setCursor(x, 0);
      matrix.print(F("Text tyt"));
      if(--x < -36) {
        x = matrix.width();
        if(++pass >= 3) pass = 0;
        matrix.setTextColor(colors[pass]);
      }
      matrix.show();
      delay(100);
    }
    И еще одна просьба можете кидать кусочки кода как вы это видите, а то в c++ я не силен. Спасибо!!!
     
  2. DetSimen

    DetSimen Гуру

    Надо просто убрать строки где текст ездиит, и он ездить не будет
     
    Asper Daffy и BAR__MEN нравится это.
  3. Asper Daffy

    Asper Daffy Гуру

    Слушай деда Сёму, он дело говорит!
     
  4. Я пробовал так вообще ничего не выводится. Если убрать блок if то вообще ничего не выводится
    Код (C++):
    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
    #ifndef PSTR
    #define PSTR // Make Arduino Due happy
    #endif
    #define PIN 6
    // MATRIX DECLARATION:
    // Parameter 1 = width of NeoPixel matrix
    // Parameter 2 = height of matrix
    // Parameter 3 = pin number (most are valid)
    // Parameter 4 = matrix layout flags, add together as needed:
    //   NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
    //     Position of the FIRST LED in the matrix; pick two, e.g.
    //     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
    //   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
    //     rows or in vertical columns, respectively; pick one or the other.
    //   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
    //     in the same order, or alternate lines reverse direction; pick one.
    //   See example below for these values in action.
    // Parameter 5 = pixel type flags, add together as needed:
    //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
    //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
    // Example for NeoPixel Shield.  In this application we'd like to use it
    // as a 5x8 tall matrix, with the USB port positioned at the top of the
    // Arduino.  When held that way, the first pixel is at the top right, and
    // lines are arranged in columns, progressive order.  The shield uses
    // 800 KHz (v2) pixels that expect GRB color data.
    Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
      NEO_MATRIX_TOP     + NEO_MATRIX_RIGHT +
      NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
      NEO_GRB            + NEO_KHZ800);
    const uint16_t colors[] = {
      matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) };
    void setup()
    {
      matrix.begin();
      matrix.setTextWrap(false);
      matrix.setBrightness(5);
      matrix.setTextColor(colors[0]);
    }
    int x    = matrix.width();
    int pass = 0;
    void loop()
    {
      matrix.fillScreen(0);
      matrix.setCursor(x, 0);
      matrix.print(F("Text tyt"));
      matrix.show();
      delay(100);
    }
     
  5. KindMan

    KindMan Гик

    Что делает эта строка?
     
  6. На сколько я знаю выводит в определенном ряду, но это не точно.
     
  7. KindMan

    KindMan Гик

    Правильно, устанавливает место печати. А теперь посмотрите, чему равен "х" и где начнется печать.
     
  8. Asper Daffy

    Asper Daffy Гуру

    Тогда убери что-нибудь другое.
     
    Spartalexx, parovoZZ и DetSimen нравится это.
  9. Спасибо большое все работает.