Moin Moin, kurzum: Ich bin ein Amateur, der hier versucht sein erstes cooles Projekt mit RGBA Stripes und dem Arduino zu realisieren. Natürlich nicht im kleinen, sondern direkt mit Schmackes :D Meine Idee kann man hoffentlich auf dem Bild erkennen.. Kurz erläutert: Ich habe 12 digitale Ziffern, die mittels RGBA Stripes dargestellt werden. Jede Ziffer besteht aus 2,5m Stripe und wird seperat gesteuert. Die Daten: Stripes - Insgesamt ~30m Stripe-länge - SMD 5050 / WS2812B Controller - 30 LED/m => ~10 w/m - 5V - Strom insgesamt: 300/5 = 60A Netztteil - Output: 5V / 350W - https://www.aliexpress.com/snapshot/0.html?spm=a2g0s.9042647.6.2.3fbf4c4d3dvZoR&orderId=8009567906145821&productId=4000127459933 (Bitte keine Diskussion über China Produkte :) ) Ich hoffe das sind erstmal alle Daten :) Für die Leitungen zu den Stripes habe ich 2,5mm² Leitung geplant. Für die Daten 0,75mm² wenn ich mich nicht irre.. Wenn ich mich nicht vergucke, dann bietet das Netzteil mehrere Ausgänge. Das würde ich nutzen und 2 Hauptleitungen mit jeweils Phase,GND legen => Obere Reihe + Untere Reihe. Damit würde ich schon einmal den Strom pro Leitung auf 30A bei maximaler Last halbieren.. Von den Hauptleitungen aus zweige ich dann immer die Leitungen für die Stripes ab. Für die Daten lege ich 12 Leitungen, jede Ziffer eine eigene Leitung. Das Netzteil möchte ich über den Arduino mittels einem 5V/230V Relais Aus-/Einschalten, so dass dieses nicht dauerhaft läuft. Schalten würde ich den Neutral. Der Arduino wird einfach über USB angeschlossen. Ist das überhaupt so realisierbar? Wenn ja.. Was sollte ich noch beachten? Ich habe schon häufiger von einem Widerstand in der Datenleitung gelesen, habt ihr einen kurzen Rat diesbezüglich? Zusätzlich würde ich dann noch die Hauptleitungen durch "Strommess-sensoren" schicken, um mir den Strom auf einem kleinem OLED Display anzeigen zu lassen. Als kleines Gimmick^^ In der Hoffnung hier nicht verrissen zu werden.. Grüße und schönen Restsonntag!
Das A in RGBA steht normalerweise für Alpha. Du kannst die LEDs nicht auf durchsichtig schalten. RGB reicht also. OLED brennt nach einigen Monaten ein. Nimm LCD, wenn du kein Bock auf Bildschirmschoner hast. Wenn es kein UNO ist, bei dem du den Mikrocontroller wechseln kannst. Denke über Puffer-Shield für die Datenleitungen nach.
W.Nickel schrieb: > Wenn es kein UNO ist, bei dem du den Mikrocontroller wechseln kannst. > Denke über Puffer-Shield für die Datenleitungen nach. Was für ein Ding? Für was soll das denn gut sein?
Ich kann meinen Beitrag leider nicht mehr bearbeiten, da ich den Facebook Login Button erst danach sah.... Ich meine Addressable RGB... Sorry für die Verwirrung! Was genau macht ein Puffer-Shield? Zu meiner Verwunderung spuckt google nichts darüber aus?
Ich meinte den 74HCT245 o.Ä. War mir sicher, dass es dafür auch Shields geben muss. Finde irgendwie auch keine auf die Schnelle. So ist wohl die Arduino-Welt. Wenn du 10m lange Zuleitung hast, musst du sie irgendwie sauber Treiben. UND den Arduino schützen.
W.Nickel schrieb: > Ich meinte den 74HCT245 o.Ä. > War mir sicher, dass es dafür auch Shields geben muss. Finde irgendwie > auch keine auf die Schnelle. So ist wohl die Arduino-Welt. > > Wenn du 10m lange Zuleitung hast, musst du sie irgendwie sauber Treiben. > UND den Arduino schützen. Will das ganze eigentlich mit dem Elegoo Nano realisieren. Von den PINs her reicht es. Bei addressable RGBs gibt die Datenleitung doch nur Signale weiter. Ist hier nicht eher die Frage ob die Signale noch sauber ankommen? Was würde man da machen um die Signale zu verstärken?
W.Nickel schrieb: > Wenn du 10m lange Zuleitung hast, musst du sie irgendwie sauber Treiben. > UND den Arduino schützen. Das mit dem sauberen Treiben würde ich ja einsehen (siehe dazu aber weiter unten) aber vor was willst du den Arduino schützen?! Mehr als 5V können nicht auf den Port kommen, da garkeine höheren Spannungen im System sind. Zum Thema sauberes Treiben: er muss ausschließlich bis zur ersten LED treiben. Jede LED wirkt als eigenständiger Treiber. Ich persönlich habe die ersten LED via STM32 mit 3V3 getrieben, nach der ersten LED wurde dies auf saubere 5V gezogen. MaxWe schrieb: > Für die Daten lege ich 12 Leitungen, jede Ziffer eine eigene Leitung. Damit wirst du an Leistungsgrenzen stoßen. Zumindest wenn du nur einen Arduino einsetzen willst. Ich persönlich habe ausschließlich 8 Reihen geschafft zu bedienen. Und das war kein Arduino sondern STM32 der die Daten per DMA rausgeschoben hat. Wenn ich dein Bild so betrachte, dann brauchst du auch keine 12 Leitungen, wenn die Ziffern beieinander stehen, dann nutze nur eine Leitung. Ich habe eine Wohnung mit genau 12.540 LEDs (die Zahl werde ich nie vergessen ???) mit nur einem Kanal gefüttert (wie gesagt: STM32, Doppel gepuffert, via DMA) und man hat so gut wie keinerlei Verzögerung in der Reihe gehabt. Das größte Problem war jedoch der Strom. Also spätestens alle 2 Meter muss ein neuer Stromzweig ran - dann das sieht man deutlich an der Verfärbung der Leuchtkraft (werden schwächer, weiß wird zu gelb) und der Mangel an RAM im STM32 12.540 mal 24bit+2Stoppbit... Und das zur Doppelbufferung mal zwei... Das summiert sich auf, ohne externen RAM nicht lösbar gewesen. Und... Einen "Puffer-Shield" oder was auch immer... Habe ich nicht benötigt ? und die Stripe läuft nun schon seit vier Jahren an 3v3.
Danke für die lange Antwort Rene :) Das aufsplitten auf 12 Datenleitungen wäre eine reine Bequemlichkeit in der Programmierung^^ Wenn du aber sagst, dass das Probleme machen könnte, dann würde ich das vielleicht auf 2 Datenleitungen reduzieren und nur oben und unten trennen. Was heißt denn das "Treiben" bei LEDs? Quasi eine Verstärkung des Signals vom Arduino bis zur ersten LED? Habt ihr da vielleicht einen Link für mich? Ich kenne lediglich die Treiber für Motoren^^ Wie gesagt, bin ich leider ein Amateur und kann mit vielen Begriffen nichts anfangen :/ Strom habe ich ja geplant alle 2,5m Ziffern parallel anzuschließen, also nie mehr als 2,5m. Da ist noch die Frage nach der Zuleitung offen, ob das ein Problem werden könnte..
W.Nickel schrieb: > Das A in RGBA steht normalerweise für Alpha. Du kannst die LEDs nicht > auf durchsichtig schalten In meiner Welt steht das A für Amber. Vergleiche RGBW... MaxWe schrieb: > Für die Daten lege ich 12 Leitungen, jede Ziffer eine eigene Leitung. 12 Leitungen kannst du mit einem Arduino vergesse. Und ich weiß jetzt schon, das gleich ein Arduino Jünger um die Ecke kommt der es besser weiß. Theoretisch kannst du alles mit einer Datenleitung machen. Mehrere Datenleitung können sich lohnen wenn du die LEDs schnell updaten willst. Dazu gab es hier mal einen Beitrag in dem das diskutiert wurde, ich finde ihn aber gerade nicht. Das aus Bequemlichkeit zu machen ist eigenivh Quatsch, das macht es unter Umständen komplizierter als es ist. Du solltest schauen das du einen Buffer IC nimmst das 5V hat und ein paar mA treiben kann, wenn du dann entsprechend die Leitung terminierst solltest du Recht wenig Probleme haben.
Haha ich persönlich glaube euch gern, dass die 12 Outputs am Arduino nicht klappen :D Verkabelungstechnisch ist mir die Lösung mit 2 Leitungen am zweitliebsten. Hmm ich glaube das ist Meinungssache wie es logisch komplizierter ist :) Mit 12 Leitungen hättest du 12 getrennte OUTPUTS, die im besten Falle alle gleich positionierte LEDs haben, wodurch sich am Ende in der Theorie leicht Zeichen/Zahlen darstellen lassen :) So muss ich nun genau die Bereiche der Ziffern identifizieren, aber das ist kein großes Übel. Uff tut mir echt Leid, in dem Bereich bin ich halt wirklich nicht kundig.. Was wäre denn ein solches Buffer IC? Ich nehme an, dass damit das Signal verstärkt wird? Ist das denn wirklich nötig? Wenn ich schlau bin und die Stripes von Rechts nach links aufbaue, dann ist die Datenleitung zum Stripe maximal 1,5m lang. Hier wurde angemerkt, dass nur diese Strecke entscheidend ist?
Vor kurz gab es hier eine Beitrag der eine ähnliche Zuleitungslänge hatte. Bei dem haben die ersten LEDs immer die Farbe gewechselt wenn er einen Verbraucher irgendwo ein oder aus geschaltet hat. Maximilian W. schrieb: > Zeichen/Zahlen darstellen lassen :) So muss ich nun genau die Bereiche > der Ziffern identifizieren, aber das ist kein großes Übel. Die Anzahl der LEDs pro Ziffer ist doch bekannt. Da gibt's 1000 Möglichkeiten das effizient zu machen. Wie gesagt mehrere Leitungen machen auch nur Sinn wenn du die Updaterate hoch halten willst. Und das geht auch nur bei einer parallelen Übertragung der Kanäle. Also irgend eine Perepherie im uC (Timer, SPI) und DMA. Mit Soft PWM brauchst du da nicht anfangen.
MaxWe schrieb: > - Strom insgesamt: 300/5 = 60A > Für die Leitungen zu den Stripes habe ich 2,5mm² Leitung geplant. Entweder sind das 60A auf einer 2.5mm²-Leitung (hüstel) oder deine Zeichnung stimmt nicht (fehlende Masse). Damit bei den LEDs kein Helligkeitsabfall zum Strangende auftritt, müssen Versorgungsspannung und Ground zumindest an entgegengesetzten Enden angeschlossen werden.
Guest schrieb: > Die Anzahl der LEDs pro Ziffer ist doch bekannt. Da gibt's 1000 > Möglichkeiten das effizient zu machen. Wie gesagt mehrere Leitungen > machen auch nur Sinn wenn du die Updaterate hoch halten willst. Und das > geht auch nur bei einer parallelen Übertragung der Kanäle. Also irgend > eine Perepherie im uC (Timer, SPI) und DMA. Mit Soft PWM brauchst du da > nicht anfangen. Irgendwie habe ich das Gefühl, dass hier immer noch angenommen wird, dass ich RGBW nutze :O Ich verbaue addressable RGB Stripes (!), mit einem Datenkanal und so^^ Die Updaterate im allgemeinen ist aber egal bei mir, will da kleine blinkenden Epilepsie auslösenden Effekte haben.. Wolfgang schrieb: > Entweder sind das 60A auf einer 2.5mm²-Leitung (hüstel) oder deine > Zeichnung stimmt nicht (fehlende Masse). Damit bei den LEDs kein > Helligkeitsabfall zum Strangende auftritt, müssen Versorgungsspannung > und Ground zumindest an entgegengesetzten Enden angeschlossen werden. Hab da jetzt nicht extra eine Masse eingezeichnet^^ Also bei den 2,5m jeweils Ground ans Ende und Spannung an den Anfang? Genau über diese Ströme mache ich mir ja sorgen.. Ich halbiere das allerdings wenigstens auf 30A, indem ich oben und unten getrennt Speise. Aber selbst das macht mir Sorgen..
:
Bearbeitet durch User
Maximilian W. schrieb: > Irgendwie habe ich das Gefühl, dass hier immer noch angenommen wird, > dass ich RGBW nutze :O Das ist durchaus klar aber diese Adressleitung musst du ansprechen und mal davon abgesehen gibt es sowohl RGB, RGBA und RGBW als Adressierbare LED siehe sk6812. hast du dir mal Gedanken dazu gemacht wie diese LEDs angesteuert werden?
Guest schrieb: > Das ist durchaus klar aber diese Adressleitung musst du ansprechen und > mal davon abgesehen gibt es sowohl RGB, RGBA und RGBW als Adressierbare > LED siehe sk6812. > > hast du dir mal Gedanken dazu gemacht wie diese LEDs angesteuert werden? Oke mein Fehler, sorry! Dann sind es adressierbare RGB Stripes. Inwiefern Gedanken? Die Stripes haben 3 Anschlüsse: GND,5V und DATA. DATA verbinde ich mit einem digitalen I/O des Arduino. Der Rest ist Software.
Maximilian W. schrieb: > Der Rest ist > Software. Stimmt die Magie die niemand verstehen will und dann hier rumweint wenn mal etwas nicht funktinoiert :D
Dieter schrieb: > Stimmt die Magie die niemand verstehen will und dann hier rumweint wenn > mal etwas nicht funktinoiert :D Diese Magie verstehe ich Gott sei Dank :D Zwar habe ich keine Erfahrungen im Programmieren von Mikocontrollern, aber ich übe aktuell schon und die Arduino IDE und allgemein der Code ist ja wirklich intuitiv :) Ich hab eher Probleme mit der Hardwareseite und wenn es daran scheitert..
Maximilian W. schrieb: > Diese Magie verstehe ich Gott sei Dank :D Offensichtlich nicht sonst wärst du über die Aussage mit dem Timer und SPI nicht verwirrt gewesen ;)
Maximilian W. schrieb: > Inwiefern Gedanken? Die Stripes haben 3 Anschlüsse: GND,5V und DATA. > DATA verbinde ich mit einem digitalen I/O des Arduino. Der Rest ist > Software. Von der du keine Ahnung hast... Stripes mit 30 Led/m haben eine Segmentlänge von 10cm. Nach deinen Angaben gehen etwa 25 Led-Segmente in eine Ziffer und das kann man -selbst wenn man Dezimalpunkt dazurechnet- nicht vernünftig auf die Segmente einer Ziffer verteilen. Bei 3 Led-Segmenten pro Ziffer- -Segment hätten die Ziffern eine Höhe von min. 65cm, das ganze Display etwa 1,5m. MaxWe schrieb: > Für die Daten lege ich 12 Leitungen, jede Ziffer eine eigene Leitung. Und die steuerst du dann mit einem Arduino? Weisst du überhaupt wie du die einzelnen Pins steuern kannst? Maximilian W. schrieb: > Diese Magie verstehe ich Gott sei Dank :D Zwar habe ich keine > Erfahrungen im Programmieren von Mikocontrollern, aber ich übe aktuell > schon und die Arduino IDE und allgemein der Code ist ja wirklich > intuitiv :) Sicher. Nur kann der Arduino Code leider nur einen einzigen Pin steuern und das auch noch schlecht. Üblicher Troll Beitrag am Wochenende.
Um das mal aufzudrösseln und dir das Prinzip hinter den addressierbaren LEDs zu erklären. Die LEDs haben drei Eingänge: VDD, Data und VSS. VDD und VSS ist klar. Nun kommen wir aber zu "Daten"... Die Krux an der Geschichte ist, wie du bereits erkannt hast, es gibt nur ein (1) Datensignal. Nun müsste bei der der logische Bolzen schnallzen: "Woher weiß die LED welche Daten gerade da sind?!?" genau... Garnicht! Deswegen gibt es eine "Startsequenz" darauf erwartet die LED in einem gewissen Abstand das nächste Datenbit. Quasi die LED wartet, liest den Datenpin ob da high oder low liegt, wartet und liest den nächsten Bit die ersten 24 Bit plus 2 Stoppbits nutzt diese LED und reicht den Rest der ankommenden Daten an die nachfolgenden LEDs über den Data Out Pin weiter. Nun ist aber das Problem: die LED erwartet die Daten sehr schnell, seeehr schnell! Und das auch noch im richtigen Timing. Sprich: es darf keine Lücke (Nachladen im Code) dabei sein. Deswegen werden die Daten meistens über eine schnelle Schnittstelle (SPI, UART, DMA über PP) des MCs (in deinem Fall der Arduino) herausgegeben. Deswegen sind 12 Stripes nicht machbar. Weil der Arduino die Geschwindigkeit dafür nicht aufbauen kann - nichtmal ansatzweise. Du stellst dir das, so glaube ich, ein bisschen zu einfach vor. Dann nicht vergessen: Bei 30x30m sind das 900 LEDs das macht 2925 byte nur für die LED Daten zum rausschieben. (Wie gesagt, die müssen ja an einem Stück rausgeschoben werden!) Da hast du noch keine andere Variable deklariert, berechnet oder bereitgestellt. Geschweige denn von einem Doppelpuffer Gebrauch gemacht. Was aber eigentlich zu empfehlen ist, um eine saubere Transition zu bekommen damit deine "Animation" nicht ruckelt. Du willst einen Eleego Nano verwenden. Auf diesem läuft ein Atmega328P... Dieser hat allerdings nur 2KB RAM, das ist schon zu wenig. Aus dem ROM lesen: zu langsam... Vom ROM ins RAM kopieren und lesen: zu langsam... Du wirst sehen... Da kommen einige Baustellen auf dich zu. Empfehlung von mir: Besorg dir ein paar (so einen Meter) LEDs und probiere dich mal aus - ob du es ans laufen bekommst.
Umso später, desto besser die Gäste, hm? Ich frage hier als Amateur in dieser Welt und Frage nach ernst gemeinter Hilfe. Allerdings habe ich die Basis glaube ich falsch gelegt! Tut mir Leid, dass ich euch umsonst die bisherige Zeit gekostet hab. Ich spreche von Pixelstreifen: https://de.aliexpress.com/item/32830000665.html?spm=a2g0s.9042311.0.0.4be44c4dQ9DBou (Die Qualität der Streifen gehört nicht hier her..) Bei 30 LED/m ist hier ein Pixel ~33mm Breit. 33cm Ziffernbreite und ~66cm Höhe ist ungefähr das was ich geplant hab. JA das "Display" soll 1,5m hoch werden ;) Und sogar 2,5m Breit. Ich baue ja keine Matrix in diesen Dimensionen, sondern lediglich einzelne Ziffern. Dann besteht eine Ziffer aus 70 Pixeln. ~0,3W pro Pixel (Bei 10W / m) machen 21W pro Ziffer => 252W Gesamt => 50,4A . Also bei richtiger Rechnung sogar noch etwas weniger als Gedacht. Die Steuerung erfolgt mittels den digitalen I/O Pins vom Arduino. Zur Vereinfachung gibs dann bereits fertige Bibliotheken zum Ansteuern. Als Beispiel: https://www.youtube.com/watch?v=UVISnxXh_VY Ich hoffe das erklärt meine eigene Verwirrtheit gegenüber den diversen hier geäußerten Empfehlungen und Problematiken.
Rene K. schrieb: > Um das mal aufzudrösseln und dir das Prinzip hinter den addressierbaren > LEDs zu erklären. Die LEDs haben drei Eingänge: VDD, Data und VSS. VDD > und VSS ist klar. Nun kommen wir aber zu "Daten"... Die Krux an der > Geschichte ist, wie du bereits erkannt hast, es gibt nur ein (1) > Datensignal. Nun müsste bei der der logische Bolzen schnallzen: "Woher > weiß die LED welche Daten gerade da sind?!?" genau... Garnicht! Deswegen > gibt es eine "Startsequenz" darauf erwartet die LED in einem gewissen > Abstand das nächste Datenbit. Quasi die LED wartet, liest den Datenpin > ob da high oder low liegt, wartet und liest den nächsten Bit die ersten > 24 Bit plus 2 Stoppbits nutzt diese LED und reicht den Rest der > ankommenden Daten an die nachfolgenden LEDs über den Data Out Pin > weiter. > > Nun ist aber das Problem: die LED erwartet die Daten sehr schnell, > seeehr schnell! Und das auch noch im richtigen Timing. Sprich: es darf > keine Lücke (Nachladen im Code) dabei sein. Deswegen werden die Daten > meistens über eine schnelle Schnittstelle (SPI, UART, DMA über PP) des > MCs (in deinem Fall der Arduino) herausgegeben. Danke! Das hilft mir doch mal weiter.. Deswegen arbeitet der Code vereinfacht gesagt in einer loop. Wenn ich beispielsweise 1 / 10 LEDs Rot leuchten lassen will, dann setze ich das entsprechende Signal im Code und der Arduino schickt das immer und immer wieder an den Stripe. So in etwa richtig? Das mit dem Speicher hatte ich tatsächlich einfach noch nicht so bedacht.. Da müsste also etwas größeres her.. Die Nanos sind zum Üben aber ja trotzdem ok :) Rene K. schrieb: > Deswegen werden die Daten > meistens über eine schnelle Schnittstelle (SPI, UART, DMA über PP) des > MCs (in deinem Fall der Arduino) herausgegeben. Sollte man also auf ganz andere Boards setzen, oder gibt es da eventuell Erweiterungen für normale Arduino Boards? Rene K. schrieb: > Du wirst sehen... Da kommen einige Baustellen auf dich zu. Empfehlung > von mir: Besorg dir ein paar (so einen Meter) LEDs und probiere dich mal > aus - ob du es ans laufen bekommst. Das werde ich gleich mal machen :) Bestelle mir gleich mal nen Meter meines geplanten Typs und schaue mir das mal an.
:
Bearbeitet durch User
Maximilian W. schrieb: > Ich frage hier als Amateur in dieser Welt und Frage nach ernst gemeinter > Hilfe. Nagut dann warte mal schön auf ernst gemeinte Hilfe denn die Leute die dir durchaus berechtigte Hinweise gegeben haben helfen dir vermutlich nicht mehr :D Jedem hier ist klar was du für LEDs du verwendest und wie sie zu betreiben sind. Der einzige der glaube ich nicht ganz versteht worauf alle hinaus wollen bist du. Maximilian W. schrieb: > Die Steuerung erfolgt mittels den digitalen I/O Pins vom Arduino. > Zur Vereinfachung gibs dann bereits fertige Bibliotheken zum Ansteuern. Auch das ist jedem klar und die meisten hier kennen auch die Libs. Das ändert nichts an der Tatsache, dass die eigentlich gedacht sind um NeoPixel Leuchtringe und einzelne Streifen zu betreiben. Der Kerl in dem Video verwendet weniger als 1/10 der LEDs die du hast. Es ist durchaus möglich mit einem Arduino so viel LEDs zu steuern, sofern du es schaffst ein Programm zu schreiben das den Speicher effizient nutzt. Aber verabschiede dich davon das du 12 IOs von deinem Arduino nutzen kannst und das noch einigermaßen in Echtzeit zu berechnen.
Guest schrieb: > Maximilian W. schrieb: >> Ich frage hier als Amateur in dieser Welt und Frage nach ernst gemeinter >> Hilfe. > > Nagut dann warte mal schön auf ernst gemeinte Hilfe denn die Leute die > dir durchaus berechtigte Hinweise gegeben haben helfen dir vermutlich > nicht mehr :D > > Jedem hier ist klar was du für LEDs du verwendest und wie sie zu > betreiben sind. Der einzige der glaube ich nicht ganz versteht worauf > alle hinaus wollen bist du. > > Maximilian W. schrieb: >> Die Steuerung erfolgt mittels den digitalen I/O Pins vom Arduino. >> Zur Vereinfachung gibs dann bereits fertige Bibliotheken zum Ansteuern. > > Auch das ist jedem klar und die meisten hier kennen auch die Libs. Das > ändert nichts an der Tatsache, dass die eigentlich gedacht sind um > NeoPixel Leuchtringe und einzelne Streifen zu betreiben. Der Kerl in dem > Video verwendet weniger als 1/10 der LEDs die du hast. Es ist durchaus > möglich mit einem Arduino so viel LEDs zu steuern, sofern du es schaffst > ein Programm zu schreiben das den Speicher effizient nutzt. Aber > verabschiede dich davon das du 12 IOs von deinem Arduino nutzen kannst > und das noch einigermaßen in Echtzeit zu berechnen. Der Rene hat das zum Glück ja grad mal aufgeschlüsselt :) Nun verstehe ich die Problematik auch.. Die ernst gemeinte Hilfe bezieht sich hauptsächlich auf den Troll Vorwurf... Es bringt halt nix bei einem Anfänger mit Fachbegriffen um sich zu werfen. Wie soll ich die als Amateur verstehen? Rene hat es grad einfach mal super erklärt, danke nochmal dafür! Zum Rest habe ich ja grad schon geantwortet
Maximilian W. schrieb: > Es bringt halt nix bei einem > Anfänger mit Fachbegriffen um sich zu werfen Ist Google dieser Tage kaputt? Nagut beschränken wir uns hier auf das Forum. https://www.mikrocontroller.net/articles/WS2812_Ansteuerung
Maximilian W. schrieb: > Deswegen arbeitet der Code vereinfacht gesagt in einer loop. Wenn ich > beispielsweise 1 / 10 LEDs Rot leuchten lassen will, dann setze ich das > entsprechende Signal im Code und der Arduino schickt das immer und immer > wieder an den Stripe. So in etwa richtig? Jain... Wenn du eine einzelne LED setzt, bleibt diese in diesem Zustand bis die nächste Änderung kommt. Wenn du also dein Display nur einmal pro Stunde aktualisierst, dann brauchst du die Daten für alle (du musst immer für alle schreiben nicht für eine einzelne) auch nur einmal in dieser Stunde schicken. Im Prinzip arbeitet jede LED wie ein Schieberegister. Jetzt kommt aber wieder das Aaaaber ?... Du kannst während er die Daten rauschickt diese nicht ändern ohne dein Timing beim Ausgang durcheinander zu bringen. Das heißt die Daten für alle LEDs müssen bereits im RAM liegen.
Guest schrieb: > Ist Google dieser Tage kaputt? Nagut beschränken wir uns hier auf das > Forum. > > https://www.mikrocontroller.net/articles/WS2812_Ansteuerung Danke für den Link! Der hat mir grad auch nochmal geholfen das mit den Timings zu verstehen.. Rene K. schrieb: > Jain... Wenn du eine einzelne LED setzt, bleibt diese in diesem Zustand > bis die nächste Änderung kommt. Wenn du also dein Display nur einmal pro > Stunde aktualisierst, dann brauchst du die Daten für alle (du musst > immer für alle schreiben nicht für eine einzelne) auch nur einmal in > dieser Stunde schicken. > > Im Prinzip arbeitet jede LED wie ein Schieberegister. > > Jetzt kommt aber wieder das Aaaaber ?... Du kannst während er die Daten > rauschickt diese nicht ändern ohne dein Timing beim Ausgang > durcheinander zu bringen. Das heißt die Daten für alle LEDs müssen > bereits im RAM liegen. Ja, so habe ich das durch den Link nun auch verstanden! Danke! :) Will ich also eine Animation mit vielen aufeinanderfolgenden "Befehlen" darstellen, dann muss der Fluss durch die Stripes sehr schnell erfolgen, der nächste bereits wieder vorbereitet werden und schnell wieder rausgeschickt werden. Verstehe langsam warum das schwierig werden könnte :) Ich möchte allerdings lediglich feste Farben einstellen. Selbst, wenn ich die Uhrzeit darstellen wollen würde, ändert sich nur jede Minute das Signal. Hier wäre dann doch eher mangelnder Speicher ein Problem oder?
Rene K. schrieb: > Dann nicht vergessen: Bei 30x30m sind das 900 LEDs das macht 2925 byte > nur für die LED Daten zum rausschieben. (Wie gesagt, die müssen ja an > einem Stück rausgeschoben werden!) Da hast du noch keine andere Variable > deklariert, berechnet oder bereitgestellt. Geschweige denn von einem Nicht ganz richtig. Es sind praktisch nur 300 Leds anzusteuern und dafür braucht man 900 Byt. Rene K. schrieb: > Datensignal. Nun müsste bei der der logische Bolzen schnallzen: "Woher > weiß die LED welche Daten gerade da sind?!?" genau... Garnicht! Deswegen > gibt es eine "Startsequenz" darauf erwartet die LED in einem gewissen > Abstand das nächste Datenbit. Quasi die LED wartet, liest den Datenpin > ob da high oder low liegt, wartet und liest den nächsten Bit die ersten > 24 Bit plus 2 Stoppbits nutzt diese LED und reicht den Rest der Auch das ist nicht ganz richtig. Es gibt keine Startsequenz und auch keine 2 Stoppbits. Daß das Ganze aber in einem Stück raus muss, stimmt allerdings.
Maximilian W. schrieb: > Der Rene hat das zum Glück ja grad mal aufgeschlüsselt :) Nun verstehe > ich die Problematik auch.. Die ernst gemeinte Hilfe bezieht sich > hauptsächlich auf den Troll Vorwurf... Es bringt halt nix bei einem > Anfänger mit Fachbegriffen um sich zu werfen. Wie soll ich die als > Amateur verstehen? Rene hat es grad einfach mal super erklärt, danke > nochmal dafür! Und warum machst du es dann nicht so wie jeder normale Anfänger und wie dir Rene das vorgeschlagen hat? Probiere es mal mit 1m, das sind gerade mal 10 Segmente a 3 Led. Aber gleich mit 12 Ziffern, 12 Leitungen, 1,5m Höhe...
Marc V. schrieb: > Maximilian W. schrieb: >> Der Rene hat das zum Glück ja grad mal aufgeschlüsselt :) Nun verstehe >> ich die Problematik auch.. Die ernst gemeinte Hilfe bezieht sich >> hauptsächlich auf den Troll Vorwurf... Es bringt halt nix bei einem >> Anfänger mit Fachbegriffen um sich zu werfen. Wie soll ich die als >> Amateur verstehen? Rene hat es grad einfach mal super erklärt, danke >> nochmal dafür! > > Und warum machst du es dann nicht so wie jeder normale Anfänger und > wie dir Rene das vorgeschlagen hat? > > Probiere es mal mit 1m, das sind gerade mal 10 Segmente a 3 Led. > > Aber gleich mit 12 Ziffern, 12 Leitungen, 1,5m Höhe... Wie kommst du denn auf die Segmente? Verstehe ich das falsch? Bei den Pixel Stripes ist doch jede SMD für sich? Tatsächlich habe ich mir das aber Steuerungstechnisch leichter vorgestellt. Ich habe gedacht die leichten Tutorials die es so gibt sind nach oben skalierbar. Ich hätte eher gedacht, dass die Stromversorgung große Probleme macht^^ Der 1m Stripe ist bereits bestellt und kommt die Woche :)
Marc V. schrieb: > Nicht ganz richtig. > Es sind praktisch nur 300 Leds anzusteuern und dafür braucht man 900 > Byt. Haben mich meine Rechenkünste im Stich gelassen? Nach Adam Ries sind 30 LEDs je Meter bei 30 Metern immer noch 900 LEDs? Und somit (rein Daten) 2700byte. 30×30×24÷8 =2700 Marc V. schrieb: > Auch das ist nicht ganz richtig. > Es gibt keine Startsequenz und auch keine 2 Stoppbits. > Daß das Ganze aber in einem Stück raus muss, stimmt allerdings. Gut, wenn man es über ein Timer rausschiebt und dann mit DMA arbeitet waren 2 Byte (beide 0x00) immer genau das Zeitfenster zum snycen ? die 2 Byte haben sich immer so eingebrannt. Über DMA ist es umständlicher nach den 3 Byte ne Pause zu machen anstatt den DMA einfach durchrennen zu lassen und zwei leere Byte einzufügen, ja war daran hab ich nicht gedacht, die können weggelassen werden natürlich beim Bit-Banging. Maximilian W. schrieb: > Ich hätte eher gedacht, dass die Stromversorgung große Probleme macht^^ Ein Problem nach dem anderen bitte! ??
:
Bearbeitet durch User
Maximilian W. schrieb: > Wie kommst du denn auf die Segmente? Verstehe ich das falsch? Bei den > Pixel Stripes ist doch jede SMD für sich? Bei 30 Led/m ist jeder Segment 10cm lang und besteht aus 3 Leds, die nicht einzeln, sondern nur zusammen (in Gruppen a 3 Leds) angesteuert werden können.
Rene K. schrieb: > Haben mich meine Rechenkünste im Stich gelassen? Nach Adam Ries sind 30 > LEDs je Meter bei 30 Metern immer noch 900 LEDs? Und somit (rein Daten) > 2700byte. > > 30×30×24÷8 =2700 Richtig was den Stromverbrauch angeht, aber nicht richtig wenn es um Steuerung geht. Diese Leds werden in Gruppen a 3 Leds angesteuert, deswegen 900/3.
Marc V. schrieb: > Diese Leds werden in Gruppen a 3 Leds angesteuert, deswegen 900/3. Marc V. schrieb: > Bei 30 Led/m ist jeder Segment 10cm lang und besteht aus 3 Leds, die > nicht einzeln, sondern nur zusammen (in Gruppen a 3 Leds) angesteuert > werden können. Ähm nein?! Kenne ich garnicht so. Jede LED einzeln und auch jede einzeln trennbar. Segmente aus mehreren LEDs kenne kenne ich garnicht. Ich kenne nur diese, siehe Bild.
Rene K. schrieb: > Ähm nein?! Kenne ich garnicht so. Jede LED einzeln und auch jede einzeln > trennbar. Ja, aber diese lohnen sich doch gar nicht für sein Projekt, 3Leds/Seg sind billiger. Es werden sowieso nur ganze Ziffernsegmente angesteuert, deswegen ist weniger in diesem Falle besser - weniger RAM, 3 Mal schnellere Ausgabe... Rene K. schrieb: > Segmente aus mehreren LEDs kenne kenne ich garnicht. Bei 30 Leds/m ist das eher die Regel als die Ausnahme.
:
Bearbeitet durch User
Marc V. schrieb: > Richtig was den Stromverbrauch angeht, aber nicht richtig wenn es um > Steuerung geht. > Diese Leds werden in Gruppen a 3 Leds angesteuert, deswegen 900/3. Was sollen das bitte für LEDs sein? egal ob WS2812 oder sk6812 jede LED ist einzeln steuerbar....
Marc V. schrieb: > Ja, aber diese lohnen sich doch gar nicht für sein Projekt, 3Leds/Seg > sind billiger. > Es werden sowieso nur ganze Ziffernsegmente angesteuert, deswegen ist > weniger in diesem Falle besser - weniger RAM, 3 Mal schnellere > Ausgabe... Nee, waren mir neu. Dann ist das aber der 2811 richtig? Ob er die Ziffern jeweils nur in einer Farbe darstellen will, hat er ja nicht gesagt. In Sachen Ressourcen natürlich besser. In Sachen Optik aber ein ganz klarer Abschnitt.
Moin, diese stripes habe ich auch gesehen, allerdings sind diese scheinbar nicht mehr die Regel in den Normalo Shops aka Amazon und Co. Bei Aliexpress und sicher auch bei reichelt findet man die stripes mit den externen Controllern noch. Rene K. schrieb: > Nee, waren mir neu. Dann ist das aber der 2811 richtig? Ob er die > Ziffern jeweils nur in einer Farbe darstellen will, hat er ja nicht > gesagt. In Sachen Ressourcen natürlich besser. In Sachen Optik aber ein > ganz klarer Abschnitt. Ich möchte mir zumindest die Option nicht nehmen, immerhin verbaue ich hier ja auch ein paar meter=euros.. Da setze ich lieber auf die integrierten Controller und damit einzeln trennbar/steuerbaren. Ich mache es mir lieber einmal schwer und bin dann zufrieden, als nun den leichteren weg zu nehmen.. Eine Frage nochmal bezüglich der Leistung des MC und des Outputs: Könnt ihr mir vielleicht sagen ob ein RasPi 3B reichen würde? So einen hab ich hier noch liegen. Ich mein von der Leistung her ist der um ein viiielfaches stärker als ein kleiner Arduino, nur ob der Output damit auch vernünftig gelingt?
Maximilian W. schrieb: > RasPi 3B reichen würde Theoretisch schon, aber in der Praxis ist das benötigte Timing nur schwer einzuhalten. Also am besten machst Du nur die Bildaufbereitung auf dem Raspi und zur Ansteuerung der Lichterkette nimmst Du einen Mikrocontroller (mit DMA). Als Kommunikationsprotokoll dazwischen würde ich tpm2 verwenden, denn dann kannst Du auf dem Raspi auch Glediator verwenden als Alternative. https://oneguyoneblog.com/download/glediator-v2-0-3/ Selber habe ich sowas ähnliches mit einem USD 1.60 BluePill Board realisiert. Das RAM vom STM32F103C8T6 reicht locker aus um mit der "SPI-Methode und DMA" über 650 Stück WS2812 anzusteuern und FreeRTOS laufen zu lassen. Als Schnittstelle nach Aussen dient USB (CDC, Virtueller COM-Port). Vom Mikrocontroller brauchst Du nur ein einziges 5V tolerantes I/O (fast alle sind das) welches Du als OpenDrain definierst und mit einem Pull-Up auf 5V ziehst. Nebst dem BluePill ist also nur noch ein Widerstand nötig und fertig.
:
Bearbeitet durch User
Johnny B. schrieb: > Maximilian W. schrieb: > RasPi 3B reichen würde > > Theoretisch schon, aber in der Praxis ist das benötigte Timing nur > schwer einzuhalten. > Also am besten machst Du nur die Bildaufbereitung auf dem Raspi und zur > Ansteuerung der Lichterkette nimmst Du einen Mikrocontroller (mit DMA). > Als Kommunikationsprotokoll dazwischen würde ich tpm2 verwenden, denn > dann kannst Du auf dem Raspi auch Glediator verwenden als Alternative. > https://oneguyoneblog.com/download/glediator-v2-0-3/ > > Selber habe ich sowas ähnliches mit einem USD 1.60 BluePill Board > realisiert. Das RAM vom STM32F103C8T6 reicht locker aus um mit der > "SPI-Methode und DMA" über 650 Stück WS2812 anzusteuern und FreeRTOS > laufen zu lassen. Als Schnittstelle nach Aussen dient USB (CDC, > Virtueller COM-Port). > Vom Mikrocontroller brauchst Du nur ein einziges 5V tolerantes I/O (fast > alle sind das) welches Du als OpenDrain definierst und mit einem Pull-Up > auf 5V ziehst. Nebst dem BluePill ist also nur noch ein Widerstand nötig > und fertig. Okay, dann werd ich mir das mal anschauen.. Mein teststreifen kommt die Woche :) Dann kann ich sowohl mitm arduino mal etwas spielen, also auch mitm RasPi. Danke für die ausführliche Antwort :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.