LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Všetko čo súvisí so svetlom

Moderátori: mirosne, Moderátori

pokemon
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 29 Mar 2015, 18:55

LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa pokemon » 25 Feb 2016, 12:16

Zdravim,

mam taky problem, ze LED pas (WS2812B z ciny) napojeny na Arduino a riadeny cez kniznicu adafruit-neopixel, obcas vypadava - zasekne sa jedna farba od urcitej ledky do konca...
Chcel som si urobit ambilight ako na tomto videu: https://www.youtube.com/watch?v=H9iQ66ySrfI, upozornujem ze som lamka co sa tyka elektroniky... :D zapojil som po podrobnom prestudovani podla tohto https://learn.adafruit.com/adafruit-neo ... uide/power ... teda napajanie pasu do externeho zdroja (kondenzator medzi +-), dalej minus spojeny s arduinom, a odpor medzi datovym vodicom z arduina do pasu... zdroj mam z lokalneho obchodu a kedze nemali obyc. tak mi predali priemyselny - taka kovova krabicka - 5V - 10A... podla tej uberguide by to malo byt ok...

a teraz k problemu: nejaky cas mi to fungovalo bez problemov po zapojeni, odskusani ukazok z kniznice neopixel a naprogramovani vlastneho riadiaceho kodu v jave... ledky sa presne rozsvecovali podla toho co bolo na obrazovke - efekt je to vskutku paradny. Po case ale zacalo od urcitej ledky akokeby zasekavat - teda zvysok pasu od urcitej ledky ostal rozsvieteny na nejaku farbu (modru napr.)... od zaciatku pasu po tu ledku to svietilo a do konca ostala zaseknuta urcita farba... po chvilke to znova naskocilo a fungovalo to dalej... neskor sa to stalo znova ale ina ledka (blizsie ku zaciatku pasu)... najprv som si myslel, ze je to chyba kodu ale po skuske som zistil, ze to robi aj v jednoduchych ukazkach z kniznice neopixel (srandtest). Problem je, ze obcas to vydrzi ist aj 2 hodiny bez problemov a inokedy zrazu nieje schopne zobrazit ani jednoduche ukazky z tej kniznice, a nedari sa mi problem lokalizovat... jedine co som zistil je, ze ked vo svojej aplikacii obmedzim jas na cca 40% (jednoducho stlaci data RGB do rozsahu 0..104 namiesto 0..255) tak to ide vzdy bezproblemov a vydrzi aj viac hodin... ak to posuniem na vacsi rozsah tak po chvilke sa zaskene - zvacsa ked sa poslu jasne farby...

Z toho mi vychadza, ze:
a) led pas je chybny a niektore ledky su skratka vadne, a zaseknu sa ked zobrazuju jasne farby-predpokladam, ze vtedy su najviac pod zatazou... kedze pas je z ciny tak by som sa necudoval...
b) nieco som zle napajkoval a mozno bude chyba pri prenasani dat z arduina do pasu...
c) arduino je vadne, takisto z ciny...
d) zle som zapojil... to mi pride nepravdepodobne, pretoze som x-krat presiel tu uberguide...
e)vadny zdroj... takisto mi to pride nepravdepodobne...

Riesienie:

a) dokopy mam 120 lediek ale pas ma iba 102 lediek (viac sa nezmestilo), teda riesenim by mohlo byt lokalizovat postupne chybne ledky a vymenit ich za tie zvysne (vadne vystrihnut a dopajkovat nahradne) ?
b) vymenit vsetky vodice a suciastky medzi pasom a arduinom - mozno je niekde chybny spoj ?
c) skusit ine arduino - brat ma dalsie 2 arduina v inych projektoch ?
d) kupit novy pas, tentoraz original od Adafruit Neopixel ?

Mohli by ste mi poradit ci moje uvahy su spravne alebo pripadne vyviest z omylu alebo navrhnut ine postupy ? Vopred vsetkym dakujem...
0
Naposledy upravil/-a mirosne v 25 Feb 2016, 16:19, upravené celkom 1 krát.
Dôvod: Doplnenie interpunkcie v názve

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6202
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: LED pás WS2812B (riadeny arduinom) - zaseknu sa ledky

Príspevok od používateľa pocitujlasku » 25 Feb 2016, 12:29

nebude tam problem so zdrojom? ked idu naplno, tak maju vyssiu spotrebu a zdroj to nezvlada
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Používateľov profilový obrázok
roboulbricht
Stály člen
Stály člen
Príspevky: 156
Dátum registrácie: 07 Jan 2015, 12:01
Bydlisko: Banská Bystrica
Vek: 54
Kontaktovať používateľa:

Re: LED pás WS2812B (riadeny arduinom) - zaseknu sa ledky

Príspevok od používateľa roboulbricht » 25 Feb 2016, 15:46

pokemon napísal:jedine co som zistil je, ze ked vo svojej aplikacii obmedzim jas na cca 40% (jednoducho stlaci data RGB do rozsahu 0..104 namiesto 0..255) tak to ide vzdy bezproblemov a vydrzi aj viac hodin... ak to posuniem na vacsi rozsah tak po chvilke sa zaskene - zvacsa ked sa poslu jasne farby...
To by si mohol mať problém so zahrievaním čipov. WS2812 si interne tie tri ledky ovláda cez PWM podľa hodnôt, ktoré mu pošleš. Keď je jas naplno, tak spotrebuje 3*20 mA. Ak to tak ide dlhší čas, môže sa to prehrievať a vtedy to od miesta, kde sa to veľmi hreje začne takto blbnúť. Ak sa to deje stále na tom istom mieste, tak bude ten jeden konkrétny čip asi problematickejši a prehrieva sa.
0

Používateľov profilový obrázok
Andrej152
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1022
Dátum registrácie: 29 Júl 2013, 12:49
Bydlisko: prešov
Vek: 22

Re: LED pás WS2812B (riadeny arduinom) - zaseknu sa ledky

Príspevok od používateľa Andrej152 » 25 Feb 2016, 16:19

zdroj , alebo zly spoj data kablika . aj ja ked pokyvem z kablikom tak sa zasekne...
0

Používateľov profilový obrázok
djwiktor
Ultimate člen
Ultimate člen
Príspevky: 1624
Dátum registrácie: 01 Júl 2010, 00:00
Bydlisko: Šaľa
Vek: 36
Kontaktovať používateľa:

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa djwiktor » 25 Feb 2016, 16:53

Prehrievanie WS integracu som riesil aj ja uz - treba tie pasy dat na poriadnu podlozku z hlinika..
0
Tlacim na 3D tlaciarni Felix 3.0 dual
Stormchasers.sk

pokemon
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 29 Mar 2015, 18:55

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa pokemon » 28 Feb 2016, 18:23

dik za reakcie... to prehrievanie ma nenapadlo... ale je citit rozdiel ked svietia naplno a ked idu len na 30-40 % percent... problem bude ako to uchladit kedze ja ich mam nalepene na takom papierovom pasiku a ten je nasadeny okolo obvodu monitora - takze ledky svietia do stran a hore/dole, nie ako v podobnych projektoch kde ich davaju vacsinou dozadu... vyskusam to dat dole a otestovat, pretoze monitor sam o sebe sa tiez trochu nahrieva (na dotyk je okraj dost teply na urcitych miestach - asi kde je elektronika)... mozno preto to nezvlada

nemal som cas tie kable rozobrat a prepajkovat ale vsimol som si, ze ten zdroj nebadatelne piska... taky vysokofrekvencny ledva badatelny piskot... je to ok ? ako nepride mi to rusive, ale aby nahodu tam nieco nestrelilo - kondenzator alebo co :D

-- Spojený príspevok 28 Feb 2016, 18:41 --

tak prehrievanim to asi nebude... teraz som si to odsledoval a v momente ked sa pas zasekol bola ledka v mieste zaseku uplne studena... a je zhasnua... studena je aj ledka pred nou ktora normalne ide na max... a som tam kde predtym :D
0

Používateľov profilový obrázok
djwiktor
Ultimate člen
Ultimate člen
Príspevky: 1624
Dátum registrácie: 01 Júl 2010, 00:00
Bydlisko: Šaľa
Vek: 36
Kontaktovať používateľa:

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa djwiktor » 28 Feb 2016, 19:47

Daj sem este tvoj kod cely. pouzi to tlacitko Code.
0
Tlacim na 3D tlaciarni Felix 3.0 dual
Stormchasers.sk

pokemon
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 29 Mar 2015, 18:55

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa pokemon » 29 Feb 2016, 11:47

no ved ten originalny test co je distribuovany s kniznicou: strandtest - zasekava sa aj s nim...

Kód: Vybrať všetko

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 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)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: 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.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif
  // End of trinket special code


  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
  // Send a theater pixel chase in...
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127, 0, 0), 50); // Red
  theaterChase(strip.Color(0, 0, 127), 50); // Blue

  rainbow(20);
  rainbowCycle(20);
  theaterChaseRainbow(50);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    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*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

// 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);
}
ale imho mne to vychadza, ze ten pas je proste nekvalitny...
0

Používateľov profilový obrázok
djwiktor
Ultimate člen
Ultimate člen
Príspevky: 1624
Dátum registrácie: 01 Júl 2010, 00:00
Bydlisko: Šaľa
Vek: 36
Kontaktovať používateľa:

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa djwiktor » 29 Feb 2016, 15:02

Mas tam definovanych 60 pixelov v pase - kolko ich mas realne ty ?
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
0
Tlacim na 3D tlaciarni Felix 3.0 dual
Stormchasers.sk

pokemon
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 29 Mar 2015, 18:55

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa pokemon » 29 Feb 2016, 15:58

to je iba na testovanie: mam tam 102 a posielal som na 60 - > v ramci testu som nahral kod bez zmeny... od 60-ky vyssie samozrejme zhasnute... po 60-ku chvilu ide ok, ale nasledne sa zasekne na tej vadnej ledke... a funguju iba ledky po tu vadnu... od nej az po 60-ku su zaseknute na poslednom stave (niekedy rovnaka farba, inokedy cele spektrum -> podla toho aky efekt program prave posiela pri zasknuti ) - od 60-ky je samozrejme vzdy zhasnute, kedze tam nepride nic...

identicky to funguje aj ked menim pocet lediek...

inac teraz som zistil, ze ked obcas zatlacim zaseknutu ledku tak sa to rozbehne :D
0

DoPa
Nový člen
Nový člen
Príspevky: 53
Dátum registrácie: 21 Jan 2016, 21:53

Re: LED pás WS2812B (riadený arduinom) - zaseknú sa ledky

Príspevok od používateľa DoPa » 04 Sep 2016, 10:45

Zmeraj napätie kde už LED nefungujú. Možná úbytok napätia v napájacích vodičoch klesne pod funkčnú hodnotu. Doporučujem napájať na viacerých miestach, alebo napájať protichodne. viz obr. Pri tom nezáleží ak bude jeden napájací vodič kratší ako druhý.
Prílohy
Napájanie LED pásu protichodne..png
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok