Нерешаемо Arduino + ws2801

Тема в разделе "Arduino & Shields", создана пользователем EzaHettR, 18 апр 2020.

  1. EzaHettR

    EzaHettR Нуб

    В ардуино новичок еще. Решил сделать подсветку для аквариума, заказал себе ленту 1м WS2801 отсюда:
    https://aliexpress.ru/item/32794195484.html?spm=a2g0s.9042311.0.0.264d33edt35Tsp

    лента рабочая, битых диодов нет.
    проблема в том, что при подключении к ардуино горит белым лишь первый диод.
    Пробовал из FastLED.h затестить blink скетч, по идее должно мограть.
    но все ровно горит только белым самый первый диод и все
    подключаю к цифровым пинам 5 и 6 соответственно DATA_PIN, CLOCK_PIN
    не пойму в чем дело, может сталкивался кто? на форуме не нашел решения

    плата arduino nano c ch340

    плата точно рабочая.
     
  2. NikitOS

    NikitOS Король шутов Администратор

    А код где?
     
  3. EzaHettR

    EzaHettR Нуб

    добавил код. но это стандартный пример скетча вроде
     
  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Че-то дорого.

    // How many leds in your strip? // Сколько светодиодов у вас в ленте?
    #define NUM_LEDS 1 // Поставьте нужное число.
     
    Последнее редактирование: 18 апр 2020
  5. EzaHettR

    EzaHettR Нуб

    ну это сейчас так. покупал год назад, на тот момент она стоила копейки
     
  6. NikitOS

    NikitOS Король шутов Администратор

    Я просил код, а не кучу символов.
     
  7. EzaHettR

    EzaHettR Нуб

    какую кучу символов? вставил код из примера скетча blink для библиотеки FastLED.h. или я не пойму, что вы просите или хз
     
  8. NikitOS

    NikitOS Король шутов Администратор

    Прочитайте правила и то, что написано в сообщении в самом верху страницы — поймете.
     
  9. EzaHettR

    EzaHettR Нуб

    Код (C++):
    #include <FastLED.h>

    // How many leds in your strip?
    #define NUM_LEDS 1

    // For led chips like WS2812, which have a data line, ground, and power, you just
    // need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
    // ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
    // Clock pin only needed for SPI based chipsets when not using hardware SPI
    #define DATA_PIN 5
    #define CLOCK_PIN 6

    // Define the array of leds
    CRGB leds[NUM_LEDS];

    void setup() {
        // Uncomment/edit one of the following lines for your leds arrangement.
        // ## Clockless types ##
        // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
        // FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<TM1829, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<TM1812, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<UCS1904, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<UCS2903, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
        // FastLED.addLeds<WS2852, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
        // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
        // FastLED.addLeds<GS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<SK6812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
        // FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<APA106, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<PL9823, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<WS2813, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<WS2811_400, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<GE8822, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<LPD1886, DATA_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<LPD1886_8BIT, DATA_PIN, RGB>(leds, NUM_LEDS);
        // ## Clocked (SPI) types ##
        // FastLED.addLeds<LPD6803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
        // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
         FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<WS2803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
        // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
        // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
        // FastLED.addLeds<SK9822, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
    }

    void loop() {
      // Turn the LED on, then pause
      leds[0] = CRGB::Red;
      FastLED.show();
      delay(500);
      // Now turn the LED off, then pause
      leds[0] = CRGB::Black;
      FastLED.show();
      delay(500);
    }
     
  10. parovoZZ

    parovoZZ Гуру

    а количество светодиодов почему один? Он, родной, и горит.
     
    NikitOS нравится это.
  11. EzaHettR

    EzaHettR Нуб

    количество светодиодов менял уже. но даже, если и поставить один, то он должен мигать хотя бы. а у меня просто горит от питания он белым и все
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Прикалываетесь ? Измените число светодиодов в программе !!!
    Например -

    #define NUM_LEDS 25

    Загрузите в Ардуину. Должно заработать 25 светодиодов в ленте.
     
    Последнее редактирование: 19 апр 2020
  13. NikitOS

    NikitOS Король шутов Администратор

    @Ariadna-on-Line, да не, он же сказал, что у него не работает и один. Выше же есть.

    @EzaHettR, с подключением ничего не перепутали?
     
  14. Slaiterx

    Slaiterx Гик

    Если подключить ленту не стой стороны то и будет гореть один светодиод подключайте к din
     
  15. EzaHettR

    EzaHettR Нуб

    у меня 32 диода. менят и на 32 и на 5 и пытался работать с одним. проблема не в числе светодиодов, а в том, что они команды не воспринимают. даже если поставить один светодиод тут, то он, согласно программе, должен моргать. А тут он просто горит и все
     
  16. EzaHettR

    EzaHettR Нуб

    попробовал на плате UNO, согласно примеру., т.е.
    DATA_PIN 3
    CLOCK_PIN 13
    подключал напрямую в эти пины без всяких резисторов
    ну и питание и землю пытался и от платы питать и отдельно провел линию, все одинаково
     
  17. EzaHettR

    EzaHettR Нуб

    не совсем понял, что вы имели ввиду. на ленте же стрелки нарисованы, как подключать. Но для надежности, пробовал и с той и с другой стороны
    для наглядности, подключал вот так, как нашел на сайте:
    https://pikabu.ru/story/ambilight_ryo_arduino_3872055
     

    Вложения:

  18. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ардуина у вас сейчас откуда запитана ?
     
  19. EzaHettR

    EzaHettR Нуб

    в данном случае питаю от компьютера по USB
    но пытался и питать от источника - блока питания на 12в и переходником на 5в. плата работала, лента все также
     
  20. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Пардон. Забыл что у вас не Ws2812.
    Прога работает, но у меня нет модели для вашего светодиода (только WS2812).
    Картинки программы для одного и трех светодиодов.
    Синий - данные
    Желтый - такты
     

    Вложения:

    Последнее редактирование: 19 апр 2020