Не работает адресная светодиодная лента ws2812b
- Войдите на сайт для отправки комментариев
Сб, 14/12/2019 - 01:19
Всем привет! Перестала работать лента ws2812b. Раньше лента работала, но после переезда на другую квартиру горит белым и все. Даже если отпаять сигнальный провод и просто подать питание 5V, все равно вся горит белым. Если потрогать рукой сигнальный контакт один из светодиодов загорается красным, а вся остальная лента горит белым. По идеи если отключить сигнальный провод то лента вообще не должна гореть? Что может быть не так подскажите пожалуйста?
1-я курортница. Доктор, а отчего у меня под коленкой бывает чувство, похожее на задумчивость?
Доктор. Под которой коленкой?
1-я курортница. Под правой.
Доктор. Пройдет.
(с)
Это вряд ли пройдет. Но можно попробовать полечить. Для начала проверить питание как ленты, так и ардуины. Проверить что земля ленты соединена с землёй контроллера. Проверить наличие и исправность резистора с пина контроллера на вход ленты. Убедиться, что это действительно вход, а не выход. Внимательно посмотреть скетч. Если есть сомнения, то кинуть его сюда в соответствии с правилами.
Скорее всего или в ленте потерялся контакт или сгорел первый светодиод. Подайте сигнал на 2-й - так сможете проверить
Все проверил, ардуино, питание, резистор - работает. Скетч у меня был готовый пример из библиотеки, чтото типа радуги, раньше все работало.
Я тоже склонен к тому, что в ленте где-то обрыв. Нужно действительно подать питание на второй светодиод и проверить. Но только как это сделать я еще не разобрался. Проблема в том, что на ленте у меня 144 светодиода на 1 метр, они расположены очень близко друг от друга и открытых контактов там нету, все дорожки спрятаны и куда подключатся непонятно.
Лента у меня вот такая
на фото видно, что диоды крупные, наверно 5050. Можно попытаться аккуратно подпаяться прямо к ножкам диода, распиновку смотри в даташите
на фото видно, что диоды крупные, наверно 5050. Можно попытаться аккуратно подпаяться прямо к ножкам диода, распиновку смотри в даташите
Да, наверно так и сделаю, спасибо! По результатам отпишусь.
Можно просто тыкать ножкой ардуины через резистор в IN каждого следующего светодиода. В ардуине должен быть какой-то скетч с радугой (например) в лупе зашит.
Я для таких дел сделал щуп (как у мультиметра) на конце которого швейная игла. И просто тыкаю в контакт, прокалывая защитный изолирующий слой.
А светодиод Вы сожгли сами статикой. Так что второй - энто самое правильное решение.
Пробовал подключать и во второй и в третий и в середину и в конец ленты - результат одинаковый, горит белым и все. Вопрос почему она светится при отпаянном входе, тоесть без подключения к ардуино?
Еще нюанс у меня БП на 4 ампера, а в ленте 144 светодиода, если они горят белым, то ток гдето больше 8 ампер. Когда у меня был скетч с радугой диоды горели в пол яркости и мне 4 ампер хватало, но так как сейчас горит вся белым явно идет нехватка по току. Ардуино питаю от отдельного источника.
Это очень странно, что вся горит. А если вход к земле притянуть ?
И фото места подключения проводов к ленте хотелось бы.
Если заземлить вход ничего не меняется.
Фото места подключения
2 светодиода в ленте горят розовым и лента ели заметно мерцает
Отпаяйте первый диод, возможно пробит и пропускает 5в на выход, а остальные принимают как все лог.единицы и ставят белый цвет
Лента состояла из двух частей, распаял ее пополам, подключил вторую часть, тоже самое горит вся белым. Не знаю, что с ней делать. Заказал новую ленту.
БП проверяли?
Да, подключал БП от ПК на 5V 28A, результат тот же.
Лента состояла из двух частей, распаял ее пополам, подключил вторую часть, тоже самое горит вся белым. Не знаю, что с ней делать. Заказал новую ленту.
ставки принимаете? - ставлю на то, что и новая будет гореть белым...
Смысл моего сообщения - ищите ошибку в своем подключении, вообще в своей логике. На крайний случай - опробуйте отнести ленту знающему человеку
Согласен с b707. Хотел на фото ленты увидеть надпись IN или OUT. Но что-то их не видно. Это точно адресная лента ?
Согласен с b707. Хотел на фото ленты увидеть надпись IN или OUT. Но что-то их не видно. Это точно адресная лента ?
Вот только не нужно из меня дурака делать! Я же писал, что лента раньше работала. В ардуино был скетч из библиотеки FastLED, лента светила разными цветами и с разным количеством огней.
Вот фото
ну я не знаю, кто кого делает в этой ветке :) - но согласитесь, что ситуация. что вдруг сгорели все 30 или сколько там у вас? - 60 диодов? - ситуация эта несколько странная...
Полагаю. что если дать эту ленту грамотному человеку - он найдет в ней исправные диоды.
Белый цвет - это постоянный лог. 1 в линии data... Получается, что все светодиоды получают 0xFFFFFF.
Белый цвет - это постоянный лог. 1 в линии data... Получается, что все светодиоды получают 0xFFFFFF.
может, просто "сопля" между VCC и DATA?
#добавка - собственно. такое предположение уже высказывалось выше по ветке....
ТС, попробуйте отрезать от ленты последний диод и подключить только его. Только обязательно отделить его от остальной ленты
Может, конечно... но почему она не коротит БП?
Наверное тут только осциллографом послушать надо - если после первого светодиода постоянно 1 в линию идёт, то он перешибает весь остальной траффик, даже если ардуиной в разные светодиоды тыкать. Но это гипотеза.
Хотя нет, по даташиту всё равно пульс должен быть даже для единиц: https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf
сколько там у вас? - 60 диодов? -
144. У меня есть такая лента. Красивая, диоды часто идут.
если после первого светодиода постоянно 1 в линию идёт, то он перешибает весь остальной траффик, даже если ардуиной в разные светодиоды тыкать. Но это гипотеза.
ТС пишет, что разделил ленту пополам и обе половины горят белым.
Из чего я и делаю вывод. что ошибка у него не в ленте, а в его подходе....
Вот только не нужно из меня дурака делать! Я же писал, что лента раньше работала. В ардуино был скетч из библиотеки FastLED, лента светила разными цветами и с разным количеством огней.
Не обижайся! Тут у нас особая "атмосфера"!
Ты пример из фастледа возьми на малое количество диодов. На 2-3 ну может 10 и с ним проверь. Ты ж можешь подключить ардуинку к компу, поставить на него ИДЕ, фастлед загрузить?
Получится у тебя? Если нет, то отдавай тому, у кого получится. Иначе пустой разговор.
Получится у тебя? Если нет, то отдавай тому, у кого получится. Иначе пустой разговор.
Конечно получится, я же это уже делал, попробую еще раз. Я ардуино не первый раз в руках держу, у меня спидометр на велике на ардуино сделан. Вобщем буду пробовать разные варианты, если что-то получится отпишу.
Конечно получится, я же это уже делал, попробую еще раз. Я ардуино не первый раз в руках держу, у меня спидометр на велике на ардуино сделан. Вобщем буду пробовать разные варианты, если что-то получится отпишу.
тогда повторю совет, данный выше - а то он потерялся во флуде. Отрежьте один или два диода от конца ленты и попробуйте подключить. Только обязательно физически отделить их от остального куска.
И внимательней со скетчем.
Я один раз одну фигурную скобку потерял и долго не мог понять почему на ленте один эффект проходит нормально, а потом всё гаснет.
Компилятор при этом никаких ошибок не давал и загрузка проходила нормально.
Я один раз одну фигурную скобку потерял
Компилятор при этом никаких ошибок не давал и загрузка проходила нормально.
Такого не может быть в принципе. Количество открывающих и закрывающих скобок всегда должно быть одинаково. Иначе компилятор обязательно выдаст ошибку и скетч не скомпилируется. Вы могли потерять только две или другое чётное количество скобок.
Вы правы, не одну. Не правильно выразился. Копипастил кусок кода из другого скетча и ошибся с границами выделения. А встроенный редактор IDE добавил недостающую парную скобку. Вот только не туда. В результате для компилятора всё сложилось удачно, а я долго офигевал почему не работает 100% рабочий код :)
Timofey_V, что-то мне Ваша лента совсем не нравится. Сейчас посмотрел на свою ленту, на фотки в инете, везде есть надписи IN-OUT , DI-DO и/или нарисованы стрелки в направлении прохождения управляющего сигнала. На Вашей ничего подобного не наблюдаю. Фотки не очень, но подозреваю, что между светодиодами нарисованы ножницы.
Это точно та самая лента, которая раньше нормально работала ? Или Вы заказали новую, точно такую же у того же самого продавца ? Тогда возможно Вам прислали обычную под видом адресной. Надписи на ленте можно любые слепить. Проверить можно омметром. Короткое должно быть с конца ленты, куда припаян "минус" питания, на вывод светодиода помеченного уголком на корпусе. Любого. Питание у них параллельное. Если точно такое же сопротивление будет с любым другим выводом светодиода, значит Вас обманули и это не адресная лента. Других вариантов не вижу.
Это точно та самая лента, которая раньше нормально работала ?
Да, это та самая лента, что раньше работала. Отрезал последний светодиод, как советовали, подключил его согласно даташиту, он тоже светит белым.
на зеленый провод подаю + на желтый -.
Пришла новая лента, подключил - отлично работает.
Фантастика. Timofey_V, да Вы просто волшебник !
Не поделитесь способом превращения сразу всей адресной ленты в обыкновенную белую ? ;)
Мне только первый светодиод удалось убить при подключении без резистора.
И кстати эта лента точно такая же или маркировка вход/выход есть ?
Теперь методом деления пополам искать причину.
И кстати эта лента точно такая же или маркировка вход/выход есть ?
На новой ленте маркировка вход/выход есть. На старой не указанно, но там был припаян фабричный коннектор, я вместо него припаял свои провода и лента работала. Это было где-то полгода назад.
Не поделитесь способом превращения сразу всей адресной ленты в обыкновенную белую ?
Единственное логичное предположение, что могло произойти, это то, что лента у меня была наклеена на алюминиевый профиль для светодиодных лент и этот профиль вместе с лентой ехал в грузовой машине почти 1000 км. Возможно статика погубила все светодиоды в ленте. Но это мое предположение, что произошло на самом деле я не знаю.
Добрый вечер. Подскажите пож, в чем дело. Матрица 16х16 работала но не переключала свет. Перезалил скетч. Теперь загорается белым светом. Питаю от АТ блока. Пробовал подключиться не к первому диоду, к следующим. Вообще не загорается. Нет сигнала от Ардуинки - тоже не горит. Надо первый диод отрезать?
Нет сигнала от Ардуинки - тоже не горит. Надо первый диод отрезать?
что-то у меня рука плохо слушается... наверно надо пару пальцев отрезать...
Надо первый диод отрезать?
https://www.youtube.com/watch?v=NfwlL3BfrLA
Спасибо.
Не за что! Обращайтесь!
Народ, подскажите, как в таком коде убрать/исключить красный цвет? Если что это тестовый из библиотеки Adafruit_NeoPixel/RGBWstrandtest
// NeoPixel test program showing use of the WHITE channel for RGBW // pixels only (won't look correct on regular RGB NeoPixel strips). #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> // Required for 16 MHz Adafruit Trinket #endif // Which pin on the Arduino is connected to the NeoPixels? // On a Trinket or Gemma we suggest changing this to 1: #define LED_PIN 6 // How many NeoPixels are attached to the Arduino? #define LED_COUNT 150 // NeoPixel brightness, 0 (min) to 255 (max) #define BRIGHTNESS 100// Set BRIGHTNESS to about 1/5 (max = 255) // Declare our NeoPixel strip object: Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800); // Argument 1 = Number of pixels in NeoPixel strip // Argument 2 = Arduino pin number (most are valid) // Argument 3 = 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) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) void setup() { // These lines are specifically to support the Adafruit Trinket 5V 16 MHz. // Any other board, you can remove this part (but no harm leaving it): #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // END of Trinket-specific code. strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show(); // Turn OFF all pixels ASAP strip.setBrightness(BRIGHTNESS); } void loop() { // whiteOverRainbow(75, 5); // pulseWhite(5); rainbowFade2White(3, 3, 1); } // Fill strip pixels one after another with a color. Strip is NOT cleared // first; anything there will be covered pixel by pixel. Pass in color // (as a single 'packed' 32-bit value, which you can get by calling // strip.Color(red, green, blue) as shown in the loop() function above), // and a delay time (in milliseconds) between pixels. void colorWipe(uint32_t color, int wait) { for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip... strip.setPixelColor(i, color); // Set pixel's color (in RAM) strip.show(); // Update strip to match delay(wait); // Pause for a moment } } void rainbowFade2White(int wait, int rainbowLoops, int whiteLoops) { int fadeVal=0, fadeMax=100; // Hue of first pixel runs 'rainbowLoops' complete loops through the color // wheel. Color wheel has a range of 65536 but it's OK if we roll over, so // just count from 0 to rainbowLoops*65536, using steps of 256 so we // advance around the wheel at a decent clip. for(uint32_t firstPixelHue = 0; firstPixelHue < rainbowLoops*65536; firstPixelHue += 256) { for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip... // Offset pixel hue by an amount to make one full revolution of the // color wheel (range of 65536) along the length of the strip // (strip.numPixels() steps): uint32_t pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or // optionally add saturation and value (brightness) (each 0 to 255). // Here we're using just the three-argument variant, though the // second value (saturation) is a constant 255. strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue, 255, 255 * fadeVal / fadeMax))); } strip.show(); delay(wait); if(firstPixelHue < 65536) { // First loop, if(fadeVal < fadeMax) fadeVal++; // fade in } else if(firstPixelHue >= ((rainbowLoops-1) * 65536)) { // Last loop, if(fadeVal > 0) fadeVal--; // fade out } else { fadeVal = fadeMax; // Interim loop, make sure fade is at max } } for(int k=0; k<whiteLoops; k++) { for(int j=0; j<256; j++) { // Ramp up 0 to 255 // Fill entire strip with white at gamma-corrected brightness level 'j': strip.fill(strip.Color(0, 0, 0, strip.gamma8(j))); strip.show(); } delay(1000); // Pause 1 second for(int j=255; j>=0; j--) { // Ramp down 255 to 0 strip.fill(strip.Color(0, 0, 0, strip.gamma8(j))); strip.show(); } } delay(500); // Pause 1/2 second }А он там есть вообще? Или точнее - что там есть? Потому как есть функция colorWipe но не вижу ее вызова.
Доброго времени суток, у меня тоже проблема с лентой: питание есть, сигнальный есть, а не работает. Подключил сигнальный к следующему светодиоду - тоже не работает, подключил чуть дальше - не работает, подключил почти в конце - прекрасно работает. Направление правильное. Ардуино на другой ленте проверил - все работает. Это часть светодиодов не работает?
natan04g, какого ответа вы ждете на свой вопрос? Думаете кто-то поедет к вам домой ленту проверять?
Для начала, как можно что-то обсуждать без схемы и кода.