Страница 6 из 6 ПерваяПервая ... 456
Показано с 51 по 57 из 57
  1. #51
    Новичок Аватар для Алексей РАВ
    Регистрация
    09.02.2020
    Адрес
    Костромская обл. г. Солигалич
    Возраст
    61
    Сообщений
    28
    Спасибо Поставлено благодарностей 
    0
    Спасибо Получено благодарностей 
    1
    Спасибо за
    1 сообщение

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Я перепробовал весь список настроек подключения, с выходом из Jinx и новыми настройками, уже и java пере устанавливал не помогло?

  2. #52
    Новичок Аватар для Алексей РАВ
    Регистрация
    09.02.2020
    Адрес
    Костромская обл. г. Солигалич
    Возраст
    61
    Сообщений
    28
    Спасибо Поставлено благодарностей 
    0
    Спасибо Получено благодарностей 
    1
    Спасибо за
    1 сообщение

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Вопрос, а этот код случайно не влияет на демонстрацию скрипта на матрице?
    Код:
    #include <FastLED.h>
    #include <SPI.h>
    #include <SD.h>
    
    #define NUM_LEDS 289 // LED number
    #define DATA_PIN 4    // your data arduino pin
    #define CHIPSET WS2812B  // your LED chip type
    #define CMD_NEW_DATA 1
    #define BAUD_RATE 500000  //if using Glediator via serial
    unsigned char x = 17; // matrix x size
    unsigned char y = 17; // matrix y size
    
    #define COLOR_ORDER GRB
    #define BRIGHTNESS  100
    
    int count_files = 15;                                        // Количество файлов
    
    File fxdata;
    CRGB leds[NUM_LEDS];
    
    int val;
    void setup()
    {
      FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
      FastLED.setBrightness(BRIGHTNESS);
      
     Serial.begin(BAUD_RATE); // when using Glediator via usb
      Serial.begin(115200);
    
      for(int y = 0 ; y < NUM_LEDS ; y++)
      {
        leds[y] = CRGB::Black; // set all leds to black during setup
      }
      FastLED.show();
    
      pinMode(10, OUTPUT); // CS/SS pin as output for SD library to work.
      digitalWrite(10, HIGH); // workaround for sdcard failed error...
    
      if (!SD.begin(4))
      {
        Serial.println("sdcard initialization failed!");
        return;
      }
      Serial.println("sdcard initialization done.");
    
      // test file open
      fxdata = SD.open("1.out");  // read only
      if (fxdata)
      {
        Serial.println("file open ok");
        fxdata.close();
      }
    }
    
    int serialGlediator ()
    {
      while (!Serial.available()) {}
      return Serial.read();
    }
    
    void loop()
    {
    
    for(val = 1; val <= count_files; val++)
    { 
    
    
      fxdata = SD.open(String(val)+".out");  // read only
      if (fxdata)
        {
          Serial.println("file open ok");
        }
    
      while (fxdata.available())
      {
        fxdata.readBytes((char*)leds, NUM_LEDS*3);
        ledSort(4);  //1-4 possible, set your first LED's position. Change the number: 1=TL(top left),2=TR(top right),3=BL(bottom left),4=BR(bottom right)
         FastLED.show();
        delay(50); // set the speed of the animation. 20 is appx ~ 500k bauds
      }
    
      // close the file in order to prevent hanging IO or similar throughout time
      fxdata.close();
    }
    }
    int ledSort (int modus) { //1=TL,2=TR,3=BL,4=BR, this function will rearrange the led array ;-)
        CRGB tmp[x];
        if(modus == 3 || modus == 4) {
    
    	for(int i = 0; i < (y / 2);i++) {
    	    for(int j = 0; j < x;j++) {
    		tmp[j] = leds[i * x + j];
    		leds[i * x] = leds[(y - i - 1) * x];
    		leds[(y - i - 1) * x] = tmp[j];
    	     }
            }
         }
    
    //     if(modus == 1 || modus == 3) {
    //       for(int i = 1; i < y; i = i + 2) {
    //       for(int j = x; j > 0;j--) {
    //        tmp[(x - j)] = leds[i * x + j - 1];
    //          }
    //           for(int j = 0; j < x;j++) {
    //	    leds[i * x + j] = tmp[j];
    //	    }
    //       }
    //
    //      }
    
    
         if(modus == 2 | modus == 4) {
          for(int i = 0; i < y; i = i + 2) {
           for(int j = x; j > 0;j--) {
            tmp[(x - j)] = leds[i * x + j - 1];
              }
               for(int j = 0; j < x;j++) {
    	    leds[i * x + j] = tmp[j];
    	    }
           }
    
          }
         return 1;
      
    }
    Последний раз редактировалось Алексей РАВ; 27.07.2020 в 12:02.

  3. #53
    Администратор Аватар для ASidneff
    Регистрация
    29.04.2015
    Адрес
    Ярославль
    Возраст
    34
    Сообщений
    815
    Спасибо Поставлено благодарностей 
    13
    Спасибо Получено благодарностей 
    0
    Спасибо за
    0 сообщ.

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Судя по этой строчке:
    ledSort(4); //1-4 possible, set your first LED's position. Change the number: 1=TL(top left),2=TR(top right),3=BL(bottom left),4=BR(bottom right)
    Первый диод, откуда начинается сигнал - ЦЫФРА 4 - это внизу справа! У вас вроде так и начинается?!

    Можно попробовать перебрать в этом скрипте все 4 цыфры по очереди!

    И если смотреть сюда:
    unsigned char x = 17; // matrix x size
    unsigned char y = 17; // matrix y size

    То матрица 17х17 диодов! Тоесть ровный квадрат!

  4. #54
    Новичок Аватар для Алексей РАВ
    Регистрация
    09.02.2020
    Адрес
    Костромская обл. г. Солигалич
    Возраст
    61
    Сообщений
    28
    Спасибо Поставлено благодарностей 
    0
    Спасибо Получено благодарностей 
    1
    Спасибо за
    1 сообщение

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Проблема решена , все дело было в коде. Там нужно было откорректировать таблицу матрицы.

  5. #55
    Администратор Аватар для ASidneff
    Регистрация
    29.04.2015
    Адрес
    Ярославль
    Возраст
    34
    Сообщений
    815
    Спасибо Поставлено благодарностей 
    13
    Спасибо Получено благодарностей 
    0
    Спасибо за
    0 сообщ.

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Цитата Сообщение от Алексей РАВ Посмотреть сообщение
    Проблема решена , все дело было в коде. Там нужно было откорректировать таблицу матрицы.
    Тоесть? Можно по подробнее?? Код вроде не огромный!

  6. #56
    Новичок Аватар для Алексей РАВ
    Регистрация
    09.02.2020
    Адрес
    Костромская обл. г. Солигалич
    Возраст
    61
    Сообщений
    28
    Спасибо Поставлено благодарностей 
    0
    Спасибо Получено благодарностей 
    1
    Спасибо за
    1 сообщение

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    Ща выложу весь код.

  7. #57
    Новичок Аватар для Алексей РАВ
    Регистрация
    09.02.2020
    Адрес
    Костромская обл. г. Солигалич
    Возраст
    61
    Сообщений
    28
    Спасибо Поставлено благодарностей 
    0
    Спасибо Получено благодарностей 
    1
    Спасибо за
    1 сообщение

    По умолчанию Re: [Решено] Jinx и форма светодиодной матрицы

    #include <FastLED.h>
    #include <SPI.h>
    #include <SD.h>

    #define NUM_LEDS 289 // LED number
    #define DATA_PIN 4 // your data arduino pin
    #define CHIPSET WS2812B // your LED chip type
    #define CMD_NEW_DATA 1
    #define BAUD_RATE 500000 //if using Glediator via serial
    unsigned char x = 17; // matrix x size
    unsigned char y = 17; // matrix y size

    #define COLOR_ORDER GRB
    #define BRIGHTNESS 50

    int count_files = 15; // Количество файлов

    File fxdata;
    CRGB leds[NUM_LEDS];

    int val;
    void setup()
    {
    FastLED.addLeds<CHIPSET, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
    FastLED.setBrightness(BRIGHTNESS);

    Serial.begin(BAUD_RATE); // when using Glediator via usb
    Serial.begin(115200);

    for(int y = 0 ; y < NUM_LEDS ; y++)
    {
    leds[y] = CRGB::Black; // set all leds to black during setup
    }
    // Sortled();
    FastLED.show();

    pinMode(10, OUTPUT); // CS/SS pin as output for SD library to work.
    digitalWrite(10, HIGH); // workaround for sdcard failed error...

    if (!SD.begin(4))
    {
    Serial.println("sdcard initialization failed!");
    return;
    }
    Serial.println("sdcard initialization done.");

    // test file open
    fxdata = SD.open("1.out"); // read only
    if (fxdata)
    {
    Serial.println("file open ok");
    fxdata.close();
    }
    }

    int serialGlediator ()
    {
    while (!Serial.available()) {}
    return Serial.read();
    }

    void loop()
    {

    for(val = 1; val <= count_files; val++)
    {


    fxdata = SD.open(String(val)+".out"); // read only
    if (fxdata)
    {
    Serial.println("file open ok");
    }

    while (fxdata.available())
    {
    fxdata.readBytes((char*)leds, NUM_LEDS*3);
    ledSort(4); //1-4 possible, set your first LED's position. Change the number: 1=TL(top left),2=TR(top right),3=BL(bottom left),4=BR(bottom right)
    Sortled();
    FastLED.show();
    delay(50); // set the speed of the animation. 20 is appx ~ 500k bauds
    }

    // close the file in order to prevent hanging IO or similar throughout time
    fxdata.close();
    }
    }
    int ledSort (int modus) { //1=TL,2=TR,3=BL,4=BR, this function will rearrange the led array ;-)
    CRGB tmp[x];
    if(modus == 3 || modus == 4) {

    for(int i = 0; i < (y / 2);i++) {
    for(int j = 0; j < x;j++) {
    tmp[j] = leds[i * x + j];
    leds[i * x] = leds[(y - i - 1) * x];
    leds[(y - i - 1) * x] = tmp[j];
    }
    }
    }

    // if(modus == 1 || modus == 3) {
    // for(int i = 1; i < y; i = i + 2) {
    // for(int j = x; j > 0;j--) {
    // tmp[(x - j)] = leds[i * x + j - 1];
    // }
    // for(int j = 0; j < x;j++) {
    // leds[i * x + j] = tmp[j];
    // }
    // }
    //
    // }


    if(modus == 2 | modus == 4) {
    for(int i = 0; i < y; i = i + 2) {
    for(int j = x; j > 0;j--) {
    tmp[(x - j)] = leds[i * x + j - 1];
    }
    for(int j = 0; j < x;j++) {
    leds[i * x + j] = tmp[j];
    }
    }

    }
    return 1;

    }
    int Sortled () {

    CRGB templeds[NUM_LEDS];
    const uint8_t XYTable[] = {

    16, 17, 50, 51, 84, 85, 118, 119, 152, 153, 186, 187, 220, 221, 254, 255, 288,
    15, 18, 49, 52, 83, 86, 117, 120, 151, 154, 185, 188, 219, 222, 253, 256, 287,
    14, 19, 48, 53, 82, 87, 116, 121, 150, 155, 184, 189, 218, 223, 252, 257, 286,
    13, 20, 47, 54, 81, 88, 115, 122, 149, 156, 183, 190, 217, 224, 251, 258, 285,
    12, 21, 46, 55, 80, 89, 114, 123, 148, 157, 182, 191, 216, 225, 250, 259, 284,
    11, 22, 45, 56, 79, 90, 113, 124, 147, 158, 181, 192, 215, 226, 249, 260, 283,
    10, 23, 44, 57, 78, 91, 112, 125, 146, 159, 180, 193, 214, 227, 248, 261, 282,
    9, 24, 43, 58, 77, 92, 111, 126, 145, 160, 179, 194, 213, 228, 247, 262, 281,
    8, 25, 42, 59, 76, 93, 110, 127, 144, 161, 178, 195, 212, 229, 246, 263, 280,
    7, 26, 41, 60, 75, 94, 109, 128, 143, 162, 177, 196, 211, 230, 245, 264, 279,
    6, 27, 40, 61, 74, 95, 108, 129, 142, 163, 176, 197, 210, 231, 244, 265, 278,
    5, 28, 39, 62, 73, 96, 107, 130, 141, 164, 175, 198, 209, 232, 243, 266, 277,
    4, 29, 38, 63, 72, 97, 106, 131, 140, 165, 174, 199, 208, 233, 242, 267, 276,
    3, 30, 37, 64, 71, 98, 105, 132, 139, 166, 173, 200, 207, 234, 241, 268, 275,
    2, 31, 36, 65, 70, 99, 104, 133, 138, 167, 172, 201, 206, 235, 240, 269, 274,
    1, 32, 35, 66, 69, 100, 103, 134, 137, 168, 171, 202, 205, 236, 239, 270, 273,
    0, 33, 34, 67, 68, 101, 102, 135, 136, 169, 170, 203, 204, 237, 238, 271, 272
    };


    fxdata.readBytes((char*)templeds, NUM_LEDS*3);
    for (int k=0; k < NUM_LEDS; k++) {
    leds[XYTable[k]] = templeds[k];

    }
    }
    Код полностью рабочий
    Спасибо конечно enemy_krs Алексею , без него мне самому ничего не сделать.
    **Скрытый текст: Нажмите на "Спасибо" для просмотра**
    Последний раз редактировалось Алексей РАВ; 28.07.2020 в 18:07.

  8. 1 благодарность:

    Zmey (14.08.2020)

Страница 6 из 6 ПерваяПервая ... 456

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •