Ich will/muss ein Lauflicht programmieren.
Zu der Umgebung, verwendet wird:
Der Arduino Uno R3, dazu 20 mal ein 8x8 RGB (WS2812B) Modul.
Externes Netzteil mit 12V und 3A. Danach ist eine Konstantstromquelle
mit 10V und 3A geschaltet bevor die Module angesteuert werden.
Ich würde sehr wahrscheinlich die 10 Module in Reihe, zu 10 Modulen
( auch in Reihe geschaltet) parallel schalten wollen.
Also zwei Reihen a 10 Module.
Jetzt zu meinem Problem:
Ich kann einen Buchstaben auf einem Modul anzeigen und verschiebe dieses
mit 2 For-schleifen. Die erste um das RGB rechts daneben anzusteuern und
die andere For-schleife um die geänderten RGB-Adressen anzuzeigen. (Bild im Anhang)
Der Buchstabe ist in einem Array gespeichert.
Erstes Problem: Ist mein Programm so nicht viel zu aufwendig wenn es mal 24 Buchstaben sind?
Zweites Problem: Wie schaffe ich es den Buchstaben im nächsten Modul dann richtig anzuzeigen, das
es wie eine Laufschrift aussieht und funktioniert?
Für eure Hilfe wäre ich sehr sehr dankbar. Finde leider nichts brauchbares.
Ich habe auch noch nicht die über Ahnung von Arduino. Also bitte für Dummies
Ich würde mich für die Hilfe natürlich bedanken wollen!
Die WS2812B haben eine Betriebsspannung von 5V und bekommen Steuersignale <5V gegen GND. Da kann man nichts in Reihe schalten.
Du kannst höchstens die LED-Strips signaltechnisch hintereinander schalten.
Du brauchst aber unbedingt eine 5V-Spannungsversorgung. #
3A genügt nicht (20 mA pro LED * 64 LED pro Modul * 3 LED pro RGB * 20 Module = 76,8A)
Es sind keine Stripes und es sind Matrix-Module 8x8.
Und es geht zwei dieser Module in Reihe zuschalten.
Kann damit alle RGB´s ansteuern, also an der Spannungsversorgung ist alles sicher.
Es geht mir nur um das Programm.
Ich verwende KEINE STRIPES. Das wäre jetzt im Nachhinein viel einfach zu programmieren.
Dachte aber über Matrix-Modul ginge es auch.
Wenn ich es wüsste würde ich es ja können, aber frage ja hier nach Vorschlägen oder Hilfe
um ein Programm zu verwirklichen.
Nein rumschreien nicht. Nein ich dachte du meinst die WS2812B Stripes.
Ja die Module sind die RGB´s auch in Reihe geschaltet, das weiß ich sehr wohl sonst könnte
ich sie ja nicht adressieren.
Aber die Spannungsversorgung passt und ist ausreichend. Verstehe dein Problem daran nicht.
Das geht und wurde auch schon getestet wenn alle 1280 RGB´s leuchten.
Nur verwirklichte ich dieses über viele Ausgänge des Arduinos.
Bei der Laufschrift ist das aber mit meinem Kenntnisstand nicht möglich.
Schade wenn man gleich so eingeschnappt ist. Tut mir leid, aber alle RGB´s leuchten gleichzeitig
und darum kann es nicht an der Spannungsquelle liegen. Habe ich schon getestet.
Ich frage nach Hilfe bei der verwirklichung der Laufschrift.
Bisher kam noch Niemand hier auf die sinnfreie Idee, den Code als Bild einzufügen... Was soll das? Glaubst Du, die Leute tippsen sich das per Hand ab?
Füge den Code ein, in Code-Tags nicht vergessen (im Editor die Schaltfläche links oben)
Aber die Spannungsversorgung passt und ist ausreichend.
-->Sagst Du, ohne vorher irgendwas berechnet zu haben. Der Fehler wurde Dir aufgezeigt, was Du vehement ablehnst. Und wenn alle LEDs (angeblich) mal für ein paar Sekunden zusammen geleuchtet haben, so bedeutet das noch nix. Und wenn Du uns nicht glaubst, dann ließ mal, was hier in der Beschreibung steht.
Und es geht zwei dieser Module in Reihe zuschalten.
-->Ja, weil 10V /2 =5V. Reihenschaltung teilt die Spannung, Parallelschaltung den Strom. Setzt Du also 10 Module in Reihe, kriegt jedes Modul (gleiche Belastung vorausgesetzt, was aber auch nicht erfüllt sein wird) 1V. Es ist schlichtweg Unsinn, diese Module in Reihe zu schalten. 5V Step Down Wandler oder gleich ein starkes stabilisiertes 5V-Netzteil.
Und wenn Du die Ratschläge nicht beherzigen solltest, dann wird Dir die Physik schnell die Grenzen aufzeigen, die kannst Du dann nicht ignorieren
Du willst mit einem Controller der 2048 Byte RAM hat, Farbdaten für 1280 LED im Speicher halten ( das sind 3840 Byte).
Auch mir scheint, daß Du nicht gewillt bist, auf unsere Ratschläge zu hören und alles besser wissen willst. Da sage ich nur: mach mal.
Grüße Uwe
PS Rumschreien ist gemeint, daß Du Teile Deines Post in Großbuchstaben schreibst was "schreien" gleichkommt.
Es ist folgendermaßen Verdrahtet worden. (Reine Spannungsversorgung jetzt, Step down Wandler ist natürlich drin)
Es sind 2 Reihen a 10 Module vom Grundaufbau gesehen.
Verschaltet sind immer zwei Module in Reihe. Das heißt, das erste Modul der oberen Reihe ist in reihe geschalten mit dem ersten Modul der unteren Reihe.
Nein ich habe bisher nur in Rot, Blau oder Grün alle anzeigen lassen, in einer mittelmäßigen Intensität.
Als Elektrotechniker weiß ich glaub ich wie Reihen und Parallelschaltung funktionieren. Danke für den Hinweis.
Mittlerweile kann ich einen Buchstaben anzeigen und den auf den Modulen verschieben, wie ich es gewollt habe.
Problem ist das hinzufügen des zweiten Buchstaben noch.
Code-Tag, ich weiß nicht was Sie von mir da wollen Bin neu in der Arduino-Welt.
Zu der Umgebung, verwendet wird:
Der Arduino Uno R3, dazu 20 mal ein 8x8 RGB (WS2812B) Modul.
Externes Netzteil mit 12V und 3A. Danach ist eine Konstantstromquelle
mit 10V und 3A geschaltet bevor die Module angesteuert werden.
Aber die Spannungsversorgung passt und ist ausreichend. Verstehe dein Problem daran nicht.
Aber ich!
208830,020 = fast 80A (wenn alle voll leuchten)
Du sprichst von 3A
Ich sehe da eine leichte Diskrepanz.
Und eine 10V KonstantStromQuelle brauchst du da nicht.
Es sei denn, du willst die WS2812 killen.
D_G:
...
Ja voll leuchten tun sie ja nicht, es soll nur eine Laufschrift verwirklicht werden. Nur in einer mittleren Intänsität.
Als Elektrotechniker solltes Du wissen was PWM ist und wenn wirklich nur 10 bis 20% der LED leuchten sind das bei einer Grund-Farbe schon 2,5A bis 5A. Bei Mischfarben umso mehr.
Mein Einwand zum Speicherbedarf scheint Dich kalt zu lassen. Wieso?
Nein lässt er mich nicht,
Ich versuche gerade das Programm ein wenig zu verschmälern.
Außlagern der Buchstaben-Arrays in eine eigene lib.
Dann muss ich halt ein paar Module weglassen.
Bin noch am Problem für das richtige Programm um eine Laufschrift darzustellen.
Dafür fehlt mir noch das richtige "Programm" bzw Denkanstoß´.
Bisher machte ich ein Array und habe dazu in der Adresse jedes RGB´s eine Variable eingefügt.
Dadurch verschiebe ich mein Array in einer Forschleife.
byte A[24] =
leds[0+d].setRGB (255, 0 ,0 ) ,
So stellte ich es mir bisher vor, aber bin mir nicht sicher ob es nicht noch einfacher ginge.
Du kannst auch ohne A[] nur mit leds[] arbeiten, um den Inhalt zu verschieben. Zum Verschieben nach rechts füllst Du die Spalte n+1 mit dem Inhalt von Spalte n, dann die Spalte n mit dem Inhalt von n-1 usw. Nur Spalte 0 braucht dann den neuen Inhalt des Buchstabens aus dem Font.
D_G:
WS2812B Pinanordnung dürfte dir ja bekannt sein.
Ich gehe mal von nicht Serpentine aus. Dann in einer Schleife (ungetestet als Anregung):
for (led = NUMLEDS-1; led > ZEILEN-1; led--){
leds[led] = leds[led-ZEILEN];
}