Не взлетает лента ws2812b
- Войдите на сайт для отправки комментариев
Добрый день, други.
Заказал в китае 2 ленты по метру и 30 диодов ws2812b. источник питания к ним на 5V 5A 25W. стал с мини играться, по началу ничего не предвещало беды, уснановил Adafruit NeoPixel библеотеку, демо скетчи работали на ура. Потом одна лента перестала реагировать, т.е. питание подключено, управляющий сигнал идет, но лампочки не горят. Ну жалко кончечно но решил продолжить играться с другой. Все было хорошо, игрался долго, всякие эффекты писал. Теперь более подробно: был на даче, лента, ардуина и бп. были там, сложил все это добро в пакет, привез домой, достал, подключил и ничего не работает. То есть питание есть, сигнал с ардуины идет, но лампочки не моргают. грешил на скетч, на пин, перепробывал менять пин, менял скетч, загрузил уже из библеотеки пример, не мигают хоть убей. Земля ессно соеденина. В общем раньше все моргало а теперь нет. Вот я и не знаю всем проблема. Грешу на пакет, могла ли статика убить контроллер в ws2812b. Если нет то куда копать дальше?
могла ли статика убить контроллер в ws2812b
Могла. Не зря их продают в антистатической упаковке.
Никогда в руках не держал таких лент, но знаю, что у диодов ws2812b есть вывод IN и вывод OUT. Хорошо бы осциллогафом посмотреть, проходит ли сигнал управления сквозь первый светодиод. Возможно именно только первому "поплохело". Тогда его выпаять, а дорожки "IN, OUT" что были под ним - замкнуть между собой.
Логично. Достаточно велика вероятность того, что пострадал только вход IN первого чипа. Если это так, то не факт, что просто его отрезать (лента ведь!) не будет проще, чем выпаивать.
Никогда в руках не держал таких лент, но знаю, что у диодов ws2812b есть вывод IN и вывод OUT. Хорошо бы осциллогафом посмотреть, проходит ли сигнал управления сквозь первый светодиод. Возможно именно только первому "поплохело". Тогда его выпаять, а дорожки "IN, OUT" что были под ним - замкнуть между собой.
Тоже была такая мысль, что "виновен" только 1 диод. лента в "влагостойком корпусе" буду вырезать и пробовать запустить с какого нибудь другого диода. просто запустил тему чтобы получить разносторонние мнения.
Чёэ это как-то напрягает. Вроде, штука достаточно надёжная. Непонятно. Послежу за темой.
Чёэ это как-то напрягает. Вроде, штука достаточно надёжная. Непонятно. Послежу за темой.
я б не сказал что надежная, смотря какая партия. у меня из 5ти лент по 5 метров ws2812b (60шт на 1 метр) - ни одна лента нормальная. На каждой ленте со временем (в течении нескольких дней-недель) сгорело по 10-20 чипов. Если сгорают , то через себя не пропускают нормально сигнал. Питание хорошее мощное 5,0в (качественное - осцилом смотрел)., толстые короткие провода, алюминиевый профиль. Пробовал и 4,5в , кондеров много твердотельных, и фильтр феррит. - один фиг сгорают чипы. Я б сказал это качество такое фиговое пошло.
полгода ранее брал ленту , так она пережила эти новые. Китайцы говорят что у них один завод в китае выпускающих эти чипы. Остается , что они сэкономили на пластике, кристаллах светодиодов (расположили не на отдельных ножках чипа - для снятия тепла) . Остается надежда что изменят снова в лучшую сторону качество.
пока остаются качественные цифровые ленты где микросхема в отдельном корпусе от светодиодов. (если светодиоды и загнуться, то микросхема все равно пропустит сигнал дальше)
статики и обычные RGB 5050 боятся , походил по напольному ковровому покрытию , притронулся до ленты и каюк сразу нескольким светодиодам.
Соглашусь с предыдущим оратором. Там конструктив весьма спорный. Светодиоды должны охлаждаться сквозь контроллер и ленту на охлаждающую поверхность. То есть, надежно это будет работать только при хорошем контакте с аллюминиевым профилем.
встречал по ним, резистор на вход настоятельно рекомендуют, ом 400 вроде.
Хм.. Второй год 2м ленты ночником работают, каждый вечер часа по 2, сигнал от минипро, питание от USB. Без проблем. Светодиод и чип в одном корпусе. С нагревом там проблемы нет, мощности их небольшие. Скорей контакты надо проверять. Про резистор впервые слышу, в чем его сакральный смысл?
С нагревом там проблемы нет, мощности их небольшие.
Ну не знаю, 0.3 Вт кому-то много, кому-то мало. А механические напряжения в кристалле контроллера из-за неравномерного нагрева они вполне могут создавать. Старые варианты, когда контроллер и светодиод были разделены оказались более надежными.
Впрочем, если лента надежно приклеена хотя бы к ДСП, данных проблем уже возникать не должно. А в режиме елочной гирлянды по 1-2 чипа в год отправляются в мусорное ведро.
С нагревом там проблемы нет, мощности их небольшие.
Ну не знаю, 0.3 Вт кому-то много, кому-то мало. А механические напряжения в кристалле контроллера из-за неравномерного нагрева они вполне могут создавать.
Угу. Квантовый флуктуациии лептонных полей создавать будут. Опять шизику ptr не спится спокойно.
Ну фтыкай, качество фотки конечно не айс, неудобно фоткать в контровом свете да навесу ленту, но температуру вобщем видно - 30С при 22С в хате.
Скажи ptr, снова на жесть потянуло, как в той ветке?
ПС. Похоже в диагнозе ptr присутствует и мания перегрева. Ну хоть бы ptr бля руками ж шоле потрогал лентунагрев перед тем как просратся на форуме.
Итак, взлетела лента! Прочитал все комментарии, спасибо что откликнулись. Проблема как предполагалось была в первом диоде, который был варварски откушен из ленты. Последующие диоды радостно заморгали всеми цветами. Их осталось 29. Сегодня вечером буду смотреть вторую ленту, думаю там такие же проблемы. Откусанный диод никак внешне не выглядит перегоревшим, в кристалле ничего не изменилось, ниточки все на месте. (см. фото)
МЕРТВЫЙ
ЖИВОЙ
Предположительно пациент скончался от свободного электрического заряда на поверхности или в объеме диэлектриков, ну или от статического разряда. Никогда не разрешайте своей собаке подключать такие ленты. В результате манипуляции с лентой понизился ее IP. То есть отрезалась силиконовая оболочка вокруг ленты. Про резистор на входе где то пишут где то нет, я (опять) подключил без него, ничему меня жизнь не учит. Итак, давайте сделаем несколько выводов:
1) статика не является полезной для WS2812b. желательно огородить нашу ленточку от нее.
2) Резистор в 300-470 на управляющем входе в ленту больше «презерватив», то бишь, какая никакая защита от статики, но не обязательный элемент.
3) Сгоревший диод не взрывается, не дымится и даже сука не чернеет, а внешним видом говорит что он все еще огурцом.
4) По датащиту температура работы от -25 до +80°С, также полевые испытания Logik'a с применением лазерного бластера и некоторые отзывы других пользователей показали, что нагрев диодов не значителен, и причинами выхода из строя отдельных элементов вероятнее всего являются некие другие факторы (та же самая статика)
5) помимо WS2812b могут встречаться и просто без «b», отличительной особенностью которых является наличие 6 ножек против 4 у b-шных. Про из тепловые качества у меня информации нет.
Уважаемые Logik и ptr, если бы я предвидел то что моя тема станет местом для вашего срача то не стал бы ее открывать. Ей богу, что заставляет вести двух взрослых людей вести себя подобным образом не понимаю. Мания перегрева реальная болезнь. У меня она появилась несколько лет назад когда видеокарта умерла от перегрева. теперь собираю все самое холодненькое. Если раньше на это не обращал внимания…
Для Logik’a
В какой то теме про WS2812b Вы писали что у Вас есть скетч с эффектами в виде классов, очень бы хотел взглянуть на реализацию. В силу скудных познаний изобретаю из того что знаю, мои переделки демоскетча от adafruit
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // класс титановый велосипед для тактовой кнопки. (версия 1.0) // фильтр дребезга, отслеживание событий: нажатие, отпускание, двойное нажатие(doubleclick), нажато и удерживается в течении определённого времени, отпущено и неактивно в течении определённого времени. #include <Arduino.h> class BUTTON { public: //============================================================================================ // константы настроек класса. static const byte bounce_ = 50; // длительность отслеживания дребезга. static const byte doubleclick_ = 250; // длительность отслеживания двойного нажатия. static const unsigned long timer_ = 5000; // длительность отслеживания неактивности. static const unsigned int retention_ = 2000; // длительность отслеживания нажатия и удержания. //============================================================================================ unsigned long start; // старт отсчёта времени. boolean p; // состояние пина кнопки. boolean s; // программное состояние кнопки. boolean b; // состояние таймера фильтра дребезга. byte c; // переменная счётчика двойного нажатия. boolean t; // состояние таймера неактивности. boolean r; // состояние таймера нажатия и удержания. //============================================================ boolean click_down; // событие нажатия. boolean click_up; // событие отпускания. boolean doubleclick; // событие двойного нажатия. boolean timer; // событие неактивности. boolean retention; // событие нажатия и удержания. //============================================================ byte _pb; //============================================================ BUTTON(byte pb) { _pb = pb; pinMode(_pb, INPUT); digitalWrite(_pb, 1); //=================== start = millis(); p = digitalRead(_pb); // p = !digitalRead(_pb); // отключить тихий старт. s = p; b = 0; c = 0; t = 0; r = 0; //============== click_down = 0; click_up = 0; doubleclick = 0; timer = 0; retention = 0; //============== } void read() { //============================================================================== boolean np = digitalRead(_pb); // текущее состояние пина кнопки. unsigned long stop = millis(); // стоп отсчёта времени. //============================================================================== click_down = 0; click_up = 0; doubleclick = 0; timer = 0; retention = 0; //============================================================================== if (np != p) {p = np; click(); start = stop; b = 1; t = 1; r = 1;} // состояние цифрового пина изменилось. //============================================================================== if (b != 0 ) {if (stop - start > bounce_ ) {b = 0; click(); }} // фильтр дребезга. if (c != 0 ) {if (stop - start > doubleclick_) {c = 0; }} // обнуление счётчика двойного клика. if (t != 0 && s == 1) {if (stop - start > timer_ ) {t = 0; timer = 1;}} // неактивность. if (r != 0 && s == 0) {if (stop - start > retention_ ) {r = 0; retention = 1;}} // нажатие и удержание. //============================================================================== } void click() { // нажатие, отпускание, двойное нажатие. if (b == 0 && s != p) {s = p; if (s == 0) {click_down = 1; ++c; if (c == 2) {c = 0; doubleclick = 1;}} if (s == 1) {click_up = 1; } } } }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #include <Adafruit_NeoPixel.h> #define BRIGHTNESS 100 #define BUTTON_PIN 2 #define PIXEL_PIN 6 #define PIXEL_COUNT 72 #define DEBUG // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); BUTTON b_1(BUTTON_PIN); byte showType = 6; bool nextType = false; void setup() { strip.begin(); strip.show(); strip.setBrightness(BRIGHTNESS * 2.55); #ifdef DEBUG Serial.begin(115200); #endif } void loop() { button_update(); startShow(showType); } void button_update() { b_1.read(); if (b_1.click_down) { nextType = true; showType++; if (showType == 9)showType = 0; } } void startShow(int i) { nextType = false; switch (i) { case 0: colorWipe(randomColor(), 1); break; case 1: dropFastRun(randomColor(), 20, 1); break; case 2: dropLowRun(randomColor(),5, 5); break; case 3: rainbow(20); break; case 4: rainbowCycle(20); break; case 5: strobo(randomColor(), 100, 200); break; case 6: sameDropsRun(6,1,1); break; case 7: cycleDropsRun(6,1); break; case 8: pendulumDrop(randomColor(),10); break; } } uint32_t randomColor() { static byte oldran32,ran32; byte r, g, b; oldran32 = ran32; while (ran32 == oldran32)ran32 = random(0, 6); r = (ran32 == 0 || ran32 == 1 || ran32 == 3) ? 0 : random(150, 255); g = (ran32 == 0 || ran32 == 2 || ran32 == 4) ? 0 : random(150, 255); b = (ran32 == 1 || ran32 == 2 || ran32 == 5) ? 0 : random(150, 255); return strip.Color(r,g,b); } void pendulumDrop (uint32_t c,uint16_t speed) { //static int8_t derection; //for (int8_t i=0;i<=strip.numPixel();i++) // s } void cycleDropsRun(uint8_t dropsNum, uint16_t wail){ if (!nextType){ for (int8_t i=0;i<dropsNum;i++) {oneColorDrop(i*strip.numPixels()/dropsNum+4,randomColor(),4,1);} while (!nextType) { uint32_t c=strip.getPixelColor(strip.numPixels()-1); for (int8_t i=strip.numPixels()-1;i>=0;i--) strip.setPixelColor(i,strip.getPixelColor(i-1)); strip.setPixelColor(0,c); strip.show(); button_update(); } } } void colorWipe(uint32_t c, uint16_t wait) { for (uint8_t i = 0; i < strip.numPixels(); i++) if (!nextType) { strip.setPixelColor(i, c); strip.show(); delay(wait); button_update(); } } void sameDropsRun(uint8_t dropsNum, uint8_t tail, uint16_t wait){ uint32_t colors[dropsNum]; uint8_t step=strip.numPixels()/dropsNum; for (uint8_t i=0;i<dropsNum;i++) colors[i]=randomColor(); for (uint8_t i= 0; i<strip.numPixels()+tail+1+(dropsNum-1)*step;i++) if(!nextType){ for (uint8_t j=0;j<dropsNum;j++) if(i-j*step>0)oneColorDrop(i-j*step,colors[j],tail,wait); } } void dropFastRun(uint32_t c, uint8_t tail, uint16_t wait) { for (uint8_t i = 0; i < strip.numPixels() + tail+1; i++) if (!nextType) { oneColorDrop(i,c,tail,1); delay(wait); } } void dropLowRun(uint32_t c,uint8_t tail,uint16_t wait) { for (uint8_t i=0; i < PIXEL_COUNT + tail+1; i++) oneColorDrop(i, c, tail, wait); button_update(); } void oneColorDrop(uint8_t i, uint32_t c, uint8_t tail,uint16_t wait) { uint8_t r,g,b; r = (uint8_t)(c >> 16), g = (uint8_t)(c >> 8), b = (uint8_t)c; for (uint16_t y = 0; y < wait; y++) { strip.setPixelColor(i, map(y, 0, wait, 0, r), map(y, 0, wait, 0, g), map(y, 0, wait, 0, b)); for(uint8_t j=1;j<=tail;j++) strip.setPixelColor(i - j, map(y, 0, wait, r/brightnessFade(j-1), r/brightnessFade(j)), map(y, 0, wait, g/brightnessFade(j-1), g/brightnessFade(j)), map(y, 0, wait, b/brightnessFade(j-1), b/brightnessFade(j))); strip.setPixelColor(i - tail-1, 0, 0, 0); button_update(); strip.show(); } } int brightnessFade(uint8_t j) { return (5*j+1); } void rainbow(uint8_t wait) { uint16_t i, j; for (j = 0; j < 255; j++) if (!nextType) { { for (i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, Wheel((i + j) & 255)); } strip.show(); button_update(); delay(wait); } } } // Slightly different, this makes the rainbow equally distributed throughout void rainbowCycle(uint8_t wait) { uint16_t i, j; for (j = 0; j < 256; j++) if (!nextType) { for (i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j))); } strip.show(); delay(wait); button_update(); } } void strobo(uint32_t c, uint16_t wait1, uint16_t wait2) { for (uint8_t i = 0; i < PIXEL_COUNT; i++) if (!nextType) strip.setPixelColor(i, c); strip.show(); delay(wait1); for (uint8_t i = 0; i < PIXEL_COUNT; i++) if (!nextType) strip.setPixelColor(i, 0, 0, 0); strip.show(); delay(wait2); button_update(); } // Input a value 0 to 255 to get a color value. // The colours are a transition r - g - b - back to r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if (WheelPos < 85) { return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos < 170) { WheelPos -= 85; return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); }circuis здесь. (внимание, присутствует титановый велосипед)
Для ЕвгенияП
Пользуясь случаем выражаю Вам благодарность за Ваш нелегкий труд, терпение и мудрые советы на этом форуме. На таких людях как вы держится наше нелегкое хобби. Читаю Ваши ответы «прожженным» новичкам и прямо восхищаюсь Вами. Жду очередных этюдов.
что нагрев диодов не значителен, и причинами выхода из строя отдельных элементов вероятнее всего являются некие другие факторы (та же самая статика)
Если бы Вы читали мой пост, а не его совершенно неверное восприятие склочницы, то заметили бы, что я писал про "другие факторы". Не про:
мания перегрева
А про
механические напряжения в кристалле контроллера из-за неравномерного нагрева
На Вашей фотографии отлично видно, что все три светодиода подогревают кристалл контроллера с одной стороны. А чем этот кристалл приклеен китайцами к медной дорожке платы и какая толщина и теплопроводность этого материала - мне не ведомо.
Может быть полезно для первого светодиода подключить между его входом и "земляным" продовом стабилитрон, Вольт на 5,1? В обратном смещении. Пускай свободные электроны стучат в него.
механические напряжения в кристалле контроллера из-за неравномерного нагрева
На Вашей фотографии отлично видно, что все три светодиода подогревают кристалл контроллера с одной стороны. А чем этот кристалл приклеен китайцами к медной дорожке платы и какая толщина и теплопроводность этого материала - мне не ведомо.
то есть Вы хотите сказать, что так как у нас диод разноцветный, то если к примеру он горит одним цветом какое то время у контроллера нагревается одна сторона, другая остывает, потом наоборот. Я не могу судить на сколько это соответствует действительности, на сколько этот перегрев критичен для контроллера. Может этот факт имеет место быть. Опять же есть у Вас тот факт что в режиме гирлянды перегорают пару диодов в год может говорить об этом. В моем же случае диод умер именно во время транспортировки в обычном пакете. Полагаю что смерть моего диода к перегреву контроллера никакого отношения не имеет.
Может этот факт имеет место быть.
Полагаю что смерть моего диода к перегреву контроллера никакого отношения не имеет.
Может имеет, может и нет. Это есть не более, чем предположение. Может мне просто с партией не повезло.
У Вас, похоже, не этот случай.
у меня с такими чипами проблем небыло :
, а с такими (все светодиодные кристаллы охлаждаются только на одну ножку) проблемы:
ленты установлены на алюмин. профиль в прохладном месте, поэтому больше склоняюсь что виновато качество (дохнет кристалл микросхема в 50% случаев (помогает тоько замена чипа), отвал ножек кристалла 50% (если защипнуть прищепкой или прижать, то он выздаравливает, но все равно требуется замена) . выпаивать от куда либо на замену их непросто, белый пластик при малой температуре уже плавится и ножки вываливаются. этот белый пластик не плотный и низкотемпературный - поэтому и разваливаются они со временем. Проще иногда выпаять или расковырять сдохшие и просто замкнуть перемычкой. Чипы дохнут просто так чуть ли не каждый час-день, лента лежит не подвижно. После недели использования так скончались около 5% чипов (около 60 чипов из 1200) . повторюсь - питание хорошее и стабильное.
так что не парьтесь из-за одного светика. Не имея возможности укоротить ленту , выковыривать его обязательно , он может коротить своим выходом вход последующего.
// Mr.Privet , чем и как фотографируете?
// Mr.Privet , чем и как фотографируете?
Фоткал на телефон. Сам в шоке от качества, в реальном размере еще красивее. (этот форум жмет картинки сильно). телефон Galaxy S7, режим про с ручной выставлением фокуса на максимально близкое расстояние (макросьемка) и максимальным цыфровым зумом х8. фокусировал движением телефона вперед-назад, светил настольной лампой.
У меня из 100 штук WS2812B, пара была дохлая (может перегрел, когда паял), а один глючит. На гирлянде хорошо видно, что часть работает, а часть - нет, потом, возможно, прогревается и начинают работать все 98 штук. Брал в прошлом году.
Хреново, что у меня позиционно-зависимая гирлянда, потому если выкусишь, сломается рисунок, либо придется программно корректировать.
Не помню какой именно чип - WS2812 или WS2811 - имеет очень мерзкую особенность - при пропадании GND чип умирает. Безвозвратно.
Т.е. если "на горячую" подключены +5V и DI, и только затем подключается GND, либо в работе неожиданно обрывается GND, резко возрастатающий через DI ток (даже для 10 светодиодов это уже 10*3*15=450 мА) убивает чип.
Я тоже намучился с этими пикселями ws2812 заказал их аж 35 метров, собрал из них 5 огромных снежинок, потратил на это просто адовое количество времени! Что в итоге? Все на помойке! С начала все работало и мигало, но спешно начались проблемы на одной из снежинки, ну ладно думаю, перпаяю и фиг с ним, потом перестала работать другая линия, я опять перепаял, потом сдохли сразу 3 линии на других снежинках, я начал злиться, обвинять себя в рукожопости, но этого лучше не становилось. В итоге больше 50% светодиодов вышли из строя в течении 3 месяцев. Пришел на этот форуму и как камень с сердца, оказывается подобное не только у меня, а значит я не рукожопый))) Больше не покупаю эти ws2812 ну реально одни проблемы, а альтернативы с таким шагом пикселя и реза, увы пока нет(((
Адафруит пишет вот что: "To reduce NeoPixel burnout risk, add 1000 uF capacitor across pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input and minimize distance between Arduino and first pixel."
На всех примерах схем, которые я видел в интернетах, на данные рекомендации покладен огромный болт.
Все ленты подключаю по указанной выше рекоммендации (через резистор). За 1.5 года не сдохло ни одного пикселя. Хотя до этого (пока подключал напрямую) регулярно вырезал горелые на тех же летах, что прекрасно работают сейчас.
ws2813 недавно купил, скетч залил, опустил напругу до 4,7В 2 месяца неприрывной работы, БП от компа с хоррррошим запасом.
Напруга опускается очень просто - подбором диода. лента питается с 2 сторон
ну это так, вдруг кто к НГ готовится :)))))))))))))))))))))))))
Кто нибудь видел эмуляцию ws2812 на 10 ваттных светодиодах и, например, на тини13?
Привет. Проблема такая-работают только первые 6 светодиодов. Я вырезал неработающий первый диод и припаял ленту -не работает. Сама подсветка реагирует на экран-цвета меняет,только первые 6 диодов. В режиме подсветки работают те же диоды только одним цветом. Ошибок не выдает. Напряжение на выходе ленты-5 вольт как и на входе, цепь не разомкнута.Что делать-вариантов уже нету,спасите пожалуйста(
Посмотрите под лупой 5-7 светодиоды - может там обрыв линии данных, либо непропай чипа.
С другими примерами из библиотеки тоже не работает?
Тоже не работает. Загружал пример где проверять можно каждый диод по отдельности и он будет мегать, но мегали как раз только первые 6 диодов,остлаьные нет. И суть в том, что когда я первый раз припаял - работало много диодов, штук 15, а когда присоединил остальную ленту- они мигнули - и с того момента работают только первые 6. Подумал, пожет что с диодом первым неработающим- он лопнул чтоли, я его вырезал, присоединил оставшуюся ленту, включил - только первые 6 и горят. Вот пример :
#include "FastLED.h" // How many leds in your strip? #define NUM_LEDS 92 // For led chips like Neopixels, 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 #define DATA_PIN 13 //define CLOCK_PIN 13 // Define the array of leds CRGB leds[NUM_LEDS]; void setup() { // Uncomment/edit one of the following lines for your leds arrangement. // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // FastLED.addLeds<APA104, 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<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS); // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS); // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS); // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS); // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS); // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS); // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); } void loop() { // Turn the LED on, then pause leds[91] = CRGB::Red; FastLED.show(); delay(500); // Now turn the LED off, then pause leds[91] = CRGB::Black; FastLED.show(); delay(500); }похоже концы у второй ленты перепутали, то ли совсем, т.е. включая полярность, толи тока линию данных.
Концы ленты они не равноправные, т.е. с одного конца данные в ленту входят- подаются, с другого выходят.
При особом везении можно умудриться соединить выходы обеих лент вместе. Прямым стыком двух лент такое наваять наверно-таки почти за гранью разумного, а вот ежели через проводочки соединять, то вполне реально так накосячить.
Если сначала горели 6 диодов, а после отрезания первого опять горят 6 (я правильно понял? ), то это похоже на рассинхронизацию тактового сигнала..
Сначала было так,как на фото выше,потом я присоединил вторую часть ленты просто приложив контакты, получилось так

Пошел смотреть в ленту,нашел такой диод справа

Вырезал его, соединил с новой лентой пайкой-горит все также 6 диодов. Потом оторвался контакт с первого диода, припаял новый диод-горит все также 6 диодов
по фото плохо видно, как питается ардуино? запитайте ее от источника ленты, а от компа отсоедините. Заливайте скетч тключив ардуино от ленты, а испытывайте отключив от компа.
Загрузчик в ардуино случайно не меняли? загрузите в ардуино блинк и проверьте на delay 10 сек секундомером соответствие частоты... У меня был глюк с фьюзами и таймар не соответствовал частоте и onewire для ds18b20 работал со сбоями, но работал (как-то).
может ребято чего посоветуют как проверить загрузчик "правильнее" или перезапишите загрузчик от UNO и выбирайте плату как УНО..
он же писал, что одиночные тесты проходили.
1. ТС. положите фотку места соединения лент.
2. Попробуйте тестировать вторую ленту отдельно от первой.
3. Есть уверенность, что ленты одного типа?
Есть подозрение что ленты (чипы) разные.
...и с того момента работают только первые 6. Подумал, пожет что с диодом первым неработающим- он лопнул чтоли, я его вырезал, присоединил оставшуюся ленту, включил - только первые 6 и горят.
Попытайтесь подключитоь фрагмент ленты к выходу 5-го.
#define NUM_LEDS 144 проверили? должно стоять не 6 а 144 или сколько там у вас
Мультиметром прозвоните после 6 светодиода GND VCC, обрыв скорее всего, скетчем простейшим любым проверяется вся лента сразу в 1 клик. например таким
Далее отрезаете дохлый кусок от 6 светодиодов и если не запустится выбрасывайте или поштучно выпаивайте.
Проверьте чипы, припаяв data после 6 светодиода где есть возможность припаять если тишина, то сгорели все значит. Они горят как бенагальские огни. 144 светодиода сгорело за 1 секунду от 12 вольт. Блок питания думал 5вольт как недосмотрел не представляю. Вся лента вылетела в 1 секунду. Сижу "оживляю" как и вы ленту. А ей уже не помочь. Как и вашей скорее всего. Что то её "пальнуло".
похоже 6й светодиод не передает дальше сигнал по причине однодневной китайской пайки и китайских технологий plug&pray
Очень странно... "Освоил" сотни метров WS2812, что то таких проблем не ощущал. Один раз в партии из 30 метров попался "горелый" чип, именно горелый - черный. Лента была в силиконе. Может питание выше нормы, вот и горят от перегрева....
Способ починить любую светодиодную ленту с такими чипами, как знал заказал 100шт. светодиодов отдельно, убитые светодиоды перепаиваете на очень дешевые из мешка, и светодиодная лента сможет вечно работать. Сгорел светодиод - выпаяли, впаяли из мешка 100шт. за 5$
Вот лампочку присоединил, чтобы удостовериться на счет обрыва. Подал управляющий сигнал на другое место цепи, не работает вообще ничего, кроме этой лампочки. А можно вообще как-нибудь проверить на адекватную работу линию Din? А то при проверке мультиметром ничего не происходит, если прикладывать щупы в началу ленты Din и концу ленты Dout. ТАкже на фото видно, что перенес место подачи управляющего сигнала
А можно пожалуйста ссылку на кучу дешевых светодиодов?
впаяли из мешка 100шт. за 5$
а можно ссылочку на 2812 по 5 баксов за сотню?
А другую плату Arduino прововал?
впаяли из мешка 100шт. за 5$
а можно ссылочку на 2812 по 5 баксов за сотню?
Да это полный беспредел ценовой, где такой?
вот этого не пробовал, будет следуюшая проба. сейчас хочу попробовать уменьшить сопротивление ,которое идет с микроконтроллера на управляющий пин ленты, некоторые писали, что это в их случае помогло
впаяли из мешка 100шт. за 5$
а можно ссылочку на 2812 по 5 баксов за сотню?
Да это полный беспредел ценовой, где такой?
На помойке светодиодного завода ))
Подал управляющий сигнал на другое место цепи, не работает вообще ничего, кроме этой лампочки.
нечем проверить эту теорию, но вариант такой. если есть кусок рабочей ленты - те самые 6 диодов, берем ультрояркий светодиод и сопротивление 1к. Светодиод минусом на землю, а сопротивление на сигнальную линию, во время передачи сигнала там некое подобие ШИМ и светодиод должен как-то светиться (не очень ярко) таким образрм проверить по всей цепочки. если светится очень тускло, уменьшать сопротивление (не ниже 220 Ом) при этом постараться, чтобы сигналы управления на светодиоды проходили.
А то при проверке мультиметром ничего не происходит, если прикладывать щупы в началу ленты Din и концу ленты Dout.
измерения происходят относительно какого-нибудь потенциала, в данном случае относительно +5В и/или -5В.
НА ФОТО видно, что вы забыли оторвать Dout в месте подачи управляющего сигнала, и я немогу утветждать, что вы не зашунтировали сигнал управления выходом впередистоящего, если учесть что он под питанием и должен держать линию воизбежание передачи ложных импульсов на вход следующего диода.
Я аж вздрогнул, увидев банку с икрой...
Присмотрелся - не... не она.
Хех, скорее всего это была канифоль))
белковая ! :)))