Go Down

Topic: was sind das für LED WS2812 Bausteine und wie zum Teufel ansteuern? ! (Read 309 times) previous topic - next topic

Akropolis

Habe ein Problemn mit einem LED Baustein der WS2812 led s ansteuert und die machen alles andere als ich programmiert habe.. anstatt 2 leuchten 6 leds,  falsche farben, Programm Code Reagiert bei diesen Leds nicht mehr auf externe Interrupts und HIGH LOW Pins..

Diatone Flash Bang LED Board SW402
https://www.getfpv.com/diatone-sw402-2812-full-switchable-color-flash-bang-8-led-board.html?ccartCamp=95291356.2&srcId=4080.5


Laut beschreibung 5V und WS2812

Neopixel ansteuerung klappt nicht! Leds identisch mit anderen WS2812 wo auch der Code und Farben etc alles stimmt. schliesse ich den anderen Baustein an,... geht nicht mehr..

Normal angeschlossen an DIN 5V und GND.

Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUM_LEDS, LEDBeleuchtung, NEO_GRB + NEO_KHZ800);

was ist mein fehler? hatte noch nie Probleme mit WS2812 Leds..
wie Steuere ich die an ? andere Library ?

Ich versteh gerade nur Bahnhof.. was ist hier los...

habe es mit 2 Verschiedenen von diese LED Boards Probiert, immer das gleiche.. mit led strips keine probleme und dem gleichen arduino programm code.. hmmmm
Langsam ist Präzise und Präzise ist schnell ;)

HotSystems

Kannst du denn den Leiterbahnverlauf erkennen ?
Evtl. mal beim Lieferanten nachfragen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Akropolis

Kannst du denn den Leiterbahnverlauf erkennen ?
Evtl. mal beim Lieferanten nachfragen.

habe an 2 orten den hersteller angefragt das kann aber noch dauern.. bis der chinese antwortet

ja sowas habe ich auch gedacht ob die irgendwie anders verdrahtet sind in der pcb platine, DIN und DOUT währe ja intressant. Plus und minus geht.. :;D die Leuchten alle, aber nur weiss undwen ich teste an einer anderem led strip.  geht es mit nur 2  leds.. rest leuchtet nicht, aber bei dem led board leuchten alle leds in weiss. obwohl nur 2 sollten. schon komisch, versuche gerade mit heller taschenlampe die leiterbahnen zu erfoschen..
Langsam ist Präzise und Präzise ist schnell ;)

postmaster-ino

Hi

Hell weiß deutet darauf hin, daß Du keine Daten in die Platine bekommst.
Die erste LED leuchtet mit?
Nein -> DI hatte vor Vdd Spannung, die erste LED ist futsch

Schuss ins Blaue -> ändere die KHZ800 in KHZ400 - laut Datenblatt können aber sowohl WS2812 wie auch WS2812B 800kHz - aber ein chinesischen Versuch wär's mir wert.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Akropolis

Hi

Hell weiß deutet darauf hin, daß Du keine Daten in die Platine bekommst.
Die erste LED leuchtet mit?
Nein -> DI hatte vor Vdd Spannung, die erste LED ist futsch

Schuss ins Blaue -> ändere die KHZ800 in KHZ400 - laut Datenblatt können aber sowohl WS2812 wie auch WS2812B 800kHz - aber ein chinesischen Versuch wär's mir wert.

MfG
HEHE Danke ja versuche ich gleich, hört sich logisch an.. eventuell vorwiederstand zu gross? 470ohm vor DIN. Ein defekt schliesse ich aus.. erste led leuchtet, habe es mit 2 selben bausteinen getestet das gleiche ergebnis.. und verhalten.

die sind ja für drohnen entwickelt. der Hersteller vertreibt Drohnen, ob die anders angesteuert werden von der Drohne.. aber das währe ja unlogisch wen es WS2812 Led sind die vertreiben auch 12V LED Bausteine.. gibt es WS1812 in 12V und darum eventuell störungen.. Hersteller falsch beschrieben...
Langsam ist Präzise und Präzise ist schnell ;)

Akropolis

Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUM_LEDS, LEDBeleuchtung, NEO_GRB + NEO_KHZ800);

ersten baustein war defekt erste led brennte nicht ;) danke für den tipp. 2ter baustein gleiches problem. , bin aber weiter gekommen, NEO_RGB anstatt NEO_GRB brachte Hilfe, kam darauf das die farbe per Pin aktivierungen am arduino falsch leuchtetetn grün war rot / Rot Grün, weiss gedimmt war Grün also vollkommen durcheinander...

Farben stimmen nur mit der RGB anpassung.. warum dass? ist dass normal?
bei NEO_KHZ400 das gleiche fehlerergebniss.. aber nun das lezte Problem.

da sind 8 Leds drauf auf dem Board, am schluss leuchten auch alle 8. aber zum testen nur 6 konfiguriert aber es leuchten alle 8. davon tanzen 6 led s nach meinem code, die lezten 2 bleiben immer hell weiss. also müssen alle angesteuert werden auf dieser Platine? nicht möglich nur nach wunsch.. es müssen immer alle konfiguriert werden... aber warum? würde mich intressieren obwohl es am schluss keine Rolle mehr spielt.. konfiguriere ich halt alle 8 leds schon, um nicht immer vom weissen licht geblendet zu werden der 2 unbeeindruckten leds :D
Langsam ist Präzise und Präzise ist schnell ;)

Akropolis

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)

also Flora leds ?  da die Farben nur mit RGB richtig laufen mit GRB nicht.. bei diesem LED Baustein
Langsam ist Präzise und Präzise ist schnell ;)

Akropolis

ach ja selbst mit meinem arduino schlafen legen code ziehen die 2 lezten led immer noch voll hell weiss  strom :D wen diese nicht im code angesteuert werden anstatt einfach AUS zu sein.. lustig & doof irgendwie. OK man könnte die 2 lezten leds der 8 auch mit OFF Programmieren. aber das iss doch nicht der sinn von WS2812 Schaltungen?

weitere Frage..
-Wie verhält es sich mit RGB und GRB Leds im selben code? konflikte?
einfach zweite zeile definieren?

Code: [Select]

Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUM_LEDS, LEDBeleuchtung1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(NUM_LEDS, LEDBeleuchtung2, NEO_RGB + NEO_KHZ800);

sollte doch auch gehen? da der strip ja eine eigene nummer und pin hat..

EDIT: Lösung mit den 2 unerwünscht leuchtenden Leds:

Code: [Select]
#define NUM_LEDS 8 //6 ws2812 LEDS conected


Ich muss alle 8 Definieren auch wen im Code nur 6 oder weniger laufen sollen für das ( led Board, dann leuchten die 2 lezten nicht mer ungewollt, so nun ist alles klar. aber doch unklar warum es hier sooo ist?

Muss ich bei einem  GRB WS2812 100LED Strip alle definieren? auch wen nur 2 laufen im code? ??
Langsam ist Präzise und Präzise ist schnell ;)

postmaster-ino

Hi

Diese LEDs werden gar nicht angesteuert - deshalb leuchten Die auch weiterhin voll weiß, da Sie nichts anderes gesagt bekommen.
Man könnte in den Tiefen der Lib schauen, ob man dem Stripe 'für so viele LEDs AUS' versenden beigebracht bekommt, ohne für die nachher unbenutzten LED Platz im Speicher reservieren zu müssen.
Wird man sich aber bestimmt reinfuchsen müssen - wenn Du mit den 2 LED mehr an Speicherplatz leben kannst, dann stelle Diese ein.
Dann werden für diese LED auch Daten (eben Farbe Schwarz) versendet und die Leuchtkäfer bleiben dunkel (bzw. beim ersten Mal werden Sie Es).

Schaue Dir in den Datenblättern noch Mal das Protokoll an - die erste LED 'sieht' alle LED-Daten, nimmt sich aber nur den ersten Satz, der Rest wird durchgeleitet.
Die 2.te LED sieht als aller erstes Ihre Daten - Die von LED 1 wurden ja nicht 'durch gereicht'.
Danach sieht Diese auch wieder Alles.
Da geht so, bis alle LED-Daten versendet sind - an der letzten angesteuerten LED kommt nur 1 Satz an, Den Sie auch übernimmt.
An den darauf folgenden LED kommen gar keine Daten mehr vorbei, Diese wissen gar nicht, daß sich irgendwo was geändert hat - Die machen einfach nur 'Dienst nach Vorschrift' - und Die besagt bei Denen halt: Weiß, aber mit Schmackes!
Und, wie jeder gute Solda ... äh, LED - bis was Anderes gesagt wird ;)

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Akropolis

Super erklärt :) das reicht mir schon Danke. war ja nur der Logische schluss, das die lezten 2 noch strom ziehen weil sie nicht OFF geschaltet wurden im code.
Langsam ist Präzise und Präzise ist schnell ;)

agmue

lustig & doof irgendwie.
Du hast gleich zu Anfang einen Fehler gemacht: Du kaufst bei einem Händler, der nur drei Dinge will - verkaufen - verkaufen - verkaufen - aber keine vernüftigen Informatioenen liefert. Du liest "2812" und verstehst "WS2812b", womit Dich der Händler wunderbar manipuliert hat. Ohne konkrete Informationen verkauft der Händler ein Überraschungsei. Da Arduino für mich nur Hobby ist, mache ich ja auch mal sowas, nur beklage ich mich dann nicht, wenn das Ei Überraschungen enthält.

In meinem Avatar siehst Du APA-106-F5, die hinsichtlich Timing wie WS2812b angesteuert werden, aber eine andere Farbreihenfolge haben und beim Einschalten blau leuchten. Auch innerhalb der Bezeichnung WS2812b scheint es je nach Hersteller Unterschiede zu geben.

Man könnte in den Tiefen der Lib schauen, ob man dem Stripe 'für so viele LEDs AUS' versenden beigebracht bekommt, ohne für die nachher unbenutzten LED Platz im Speicher reservieren zu müssen.
Wird man sich aber bestimmt reinfuchsen müssen -
Eigentlich nicht, ein kurzer Blick in Adafruit_NeoPixel.h genügt, um eine Methode updateLength(uint16_t n) zu finden. Ein weiterer Blick in Adafruit_NeoPixel.cpp mit dem Kommentar "Free existing data (if any)" läßt vermuten, daß nicht benötigter Speicher freigegeben wird.

Man muß nur aufpassen, Schleifen bis zum richtigen Endwert laufen zu lassen, sonst droht Bruch.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

Akropolis

Du hast gleich zu Anfang einen Fehler gemacht: Du kaufst bei einem Händler, der nur drei Dinge will - verkaufen - verkaufen - verkaufen - aber keine vernüftigen Informatioenen liefert
ja .. leider ist es der einzigste Hersteller der 2x4 led Board in dieser Dimension anbietet, als war ich gezwungen :D Fehler ist es ja kein. die Dinger sind halt für Drohnen, welche eine Fixe Integrierte ansteuerung vom Hersteller haben. Es geht ja nun auch, also doch zu gebrauchen, schade das er nicht mehr Informationen lieferte, aber wen jemand mal das gleiche Problem hat findet er hier sicher schnell die Lösung, oder er erforscht die "Besonderheit" selbst :)
Langsam ist Präzise und Präzise ist schnell ;)

Go Up