Кто имел дело со светодиодными лентами с пиксельной адресацией (ws2812b)? Помогите!

Тема в разделе "Arduino & Shields", создана пользователем nedfart, 20 мар 2016.

  1. nedfart

    nedfart Нерд

    Здравствуйте. Сделал стол. Хочу его подсветить вот этими светодиодными лентами http://www.getchip.net/posts/119-umnye-svetodiody-ws2812b-neopixels/. В качестве контролера светодиодной ленты планирую использовать ARDUINO. Вчера весь вечер, всё ночь, пытался заставить ее работать, но без успешно. Кто может помочь разобраться в работе этой ленты? Пожалуйста отзовитесь.
     
    Последнее редактирование: 20 мар 2016
  2. Tomasina

    Tomasina Сушитель лампочек Команда форума

    где скетч и схема подключения?
     
  3. Onkel

    Onkel Гуру

    эта лента работает по протоколу NRZ 800 кГц, и заставить ее работать можно либо написав код на асме, либо имея рабочую библиотеку с функциейна том же асме. Поскольку я пишу сам, то не пробовал готовые библиотечные функции, но вроде у адафрукт есть рабочая библиотека.
     
  4. ostrov

    ostrov Гуру

    Ничего там особо сложного. Через библиотеку получается вполне:

     
  5. Megakoteyka

    Megakoteyka Оракул

    Попробуйте эту библиотеку:
     

    Вложения:

  6. nedfart

    nedfart Нерд

    мне бы с подключением для начала разобраться. У меня первый светодиод в ленте почему то очень ярко горит (10 м лента питается от 100w БП). Да и мне кажется что сама лента не отображает всё так как должна.
     
  7. Megakoteyka

    Megakoteyka Оракул

    Тащите сюда свою схему подключения и код.
     
  8. nedfart

    nedfart Нерд

    поможешь?) вот мой скайп - nedfart
     
  9. Megakoteyka

    Megakoteyka Оракул

    Зачем мне ваш скайп? Пишите сюда. Потом кто-нибудь прочитает эту тему и найдет тут решение своей проблемы.
     
  10. nedfart

    nedfart Нерд

    Тут две параллельно подключение ленты по 5 м. Красный провод-питания. Белый- земля. зелёный- din. Резистор на 220 ом.
     

    Вложения:

  11. Megakoteyka

    Megakoteyka Оракул

    А земля на Arduino почему не заведена?
     
  12. nedfart

    nedfart Нерд

    Так? Только когда я так сделал у меня лента в обще перестают как либо мигать.
     

    Вложения:

  13. ostrov

    ostrov Гуру

    У адресной ленты три контакта всего, как можно запутаться? Единственно, есть смысл питание от отдельного более мощного источника прицепить, но не забыть соединить земли.
     
  14. Megakoteyka

    Megakoteyka Оракул

    Тогда пришло время смотреть код.
     
  15. nedfart

    nedfart Нерд

    в качестве кода я использовал готовые скетчи, в библиотеке FAST led 3.1.
     
  16. Megakoteyka

    Megakoteyka Оракул

    Пример Blink из библиотеки передает данные по пину 3, а у вас провод воткнут в пин 13.
     
  17. nedfart

    nedfart Нерд

    Как в обще что-то создавать с помощью библиотек. Например чтобы лента в плавно мелено переливалась в спектре как радуга? Я не смог найти инструкций в интернете (все только пишут что это очень легко надо толь подключить библиотеку а что с ней дальше делать никто не говорит). Насчёт земли от arduino мне ее так, как на фото выше оставить?
     
  18. nedfart

    nedfart Нерд

    да
     
  19. Megakoteyka

    Megakoteyka Оракул

    Что да?
     
  20. Megakoteyka

    Megakoteyka Оракул

    В начале программы объявляется массив светодиодов:
    Код (C++):
    CRGB leds[NUM_LEDS];
    Затем все это инициализируется в setup():
    Код (C++):
    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
    Теперь можно обращаться к каждому светодиоду по отдельности и менять его цвет, используя константы класса CRGB или устанавливая по отдельности компоненты цвета.
    Код (C++):
    leds[0].r = 255;
    leds[0].g = 0;
    leds[0].b = 0;
    // или
    leds[0] = CRGB::Red;
    Вызов функции FastLED.show(); передает всем светодиодам новые значения цвета.
    Как видите, все предельно просто.