Hallo liebe Community,,
BMir ist eine 16x48 LED Matrix zugeflogen.
Ich würde diese gerne mit einem Arduino Nano betreiben.
Verbuat isnd auf der LED Matrix 12 Module (8x8), ULN2003 Transitor
Arrays und HC191 an (CLK) und HC164 Cascade (DATA).
Ich habe an dem Modul zwei Stecker mit den Anschlüssen; 1 Data next
Modul, 2 Clock, 3 Data, 4 Load und 5 GND.
Wie kann ich diese nun betreiben? Hat jemand vielleicht ein Beispiel
Sketch? Da hier kein klassischer Maxwell LED Treiber verbaut ist bin ich
mir unsicher ob ich mit den klassischen Sketches aus der
Beispielbibliothek diese betreiben kann.
Vielen Dank für die Hilfe.
Eric vauwee schrieb:> Da hier kein klassischer Maxwell LED Treiber verbaut ist bin ich> mir unsicher ob ich mit den klassischen Sketches aus der> Beispielbibliothek diese betreiben kann
So ist das bei Kinderspielzeug Arduino.
Man lebt so abgeschottet von der wirklichen Welt,
daß man sich in ihr nicht mehr zurecht findet.
Mir würde erst mal Sorgen machen, daß deine Module am Stecker keine
Versorgungsspannung haben.
Wenn du den gefunden hast, verbinde Data Next Modul mit Data des
nächsten Moduls, dann hast du nur noch:
DATA, CLOCK und LOAD.
Dann würde mir Sorgen machen, daß die Module zwar zählen, aber nicht
decodieren in 8 Reihen. Wahrscheinlich hast du da einen Chip übersehen.
Bei jedem LOAD geht es also zur nächsten Reihe, bloss wann fängt es bei
Reihe 0 an ? Nach dem Einschalten der Versorgung, oder gibt es ein REST
oder wird LOAD unterschiedliche decodiert (LOAD while CLOCK oder so).
Egal wie, ein Bit anlegen, ein mal CLOCK, nächsten bit, nochmal Clock
bis zum 96 bit, und dann CLOCK und LOAD zeigt eine Zeile an. Bevor die
durchbrennt, muss man schon die nächste einschieben und das nächste LOAD
kommen, nach dem 8. LOAD geht es bei der ersten Reihe weiter.
Das ist nicht viel anders, als fertige Chips es machen, aber fertige
Sketches werden nicht passen. Wie gesagt, es fehlt auch noch das
definierte Zurückstellen auf Reihe 0.
@ Eric vauwee (Gast)
>Verbuat isnd auf der LED Matrix 12 Module (8x8), ULN2003 Transitor>Arrays und HC191 an (CLK) und HC164 Cascade (DATA).
Mach ein gescheites Bild und schick es uns. Ebenso wäre ein gezeichneter
Schaltplan nett.
>Ich habe an dem Modul zwei Stecker mit den Anschlüssen; 1 Data next>Modul, 2 Clock, 3 Data, 4 Load und 5 GND.>Wie kann ich diese nun betreiben?
Wie die allermeisten LED-Matrixen. Daten seriell reinschieben und
und anzeigen lassen, das Ganze per Multiplex.
> Hat jemand vielleicht ein Beispiel>Sketch?
Nö.
> Da hier kein klassischer Maxwell LED Treiber verbaut ist bin ich>mir unsicher ob ich mit den klassischen Sketches aus der>Beispielbibliothek diese betreiben kann.
Wahrscheinlich nicht. Dazu braucht man einen Schaltplan, den man per
Reverse Engineering vom Board gewinnen muss.
MaWin schrieb:> Mir würde erst mal Sorgen machen, daß deine Module am Stecker keine> Versorgungsspannung haben.
Der Stecker ist natürlich da, habe diesen jetzt aussen vor gelassen da
mir klar war wie zu belegen ;)
> Wenn du den gefunden hast, verbinde Data Next Modul mit Data des> nächsten Moduls, dann hast du nur noch:>> DATA, CLOCK und LOAD.
Die gnaze Matrix ist ein riesen Klopper PCB, habe somit kein "next
modul". Ich gehe mal davon aus das beide DATA Lines zu verbinden sinnlos
ist...?
Vielen Dank für den hilfreichen Beitrag und die schnelle Antwort!
Falk B. schrieb:> Mach ein gescheites Bild und schick es uns. Ebenso wäre ein gezeichneter> Schaltplan nett.
Bild von der Rückseite ist im Anhang für einen Schaltplan würde ich eine
Weile brauchen. Vorderseite ist nur LEDs.
Ich habe im Netz zu dieser Matrix diesen BASCOM Code gefunden:
http://pastebin.com/qfV5hGHt
(Verlinkt weil ich hier nicht 50 Zeilen Code spammen will)
Vielen Dank für die Hilfe!
@ Eric vauwee (Gast)
>Bild von der Rückseite ist im Anhang für einen Schaltplan würde ich eine>Weile brauchen. Vorderseite ist nur LEDs.
Ok, aber man sieht nicht alle Details, um daraus einen Schaltplan zu
generieren. Es wird aber grob so sein, dass eine Handvoll
Schieberegister ala 74HC595 drauf und dort seriell die Daten
reingetaktet werden. Die Steuern das Bitmuster für eine Zeile an. Ein
Schieberegister wird einen 1:8 oder 1:16 Dekoder für die 16 Zeilen
ansteuern, auch diese Daten müssen seriell reingetaktet werden. Mit dem
LOAD Puls werden alle seriellen Daten ins parallele Ausgangsregister
übernommen und werden damit aktiv. Sprich, die Daten für die neue Zeile
bzw. die neue Zeile wird aktiv.
>Ich habe im Netz zu dieser Matrix diesen BASCOM Code gefunden:>http://pastebin.com/qfV5hGHt>(Verlinkt weil ich hier nicht 50 Zeilen Code spammen will)
Ja, das ist aber nur ein Ansatz. Was der 191er dort macht, ist mit etwas
unklar. Und auch warum man 164er Schieberegister genommen hat, die haben
kein Ausgangsregister!
Eric vauwee schrieb:> habe somit kein "next modul".
Ach so, ich dachte das sind 8x8 Module.
Deine ist kriminellerweise 16-fach gemultiplext, da werden sich noch 2
74HC138 verbergen.
> nach dem 8. LOAD geht es bei der ersten Reihe weiter
Es geht also erst nach der 16. Reihe wieder mit der ersten weiter.
Hallo,
164er sind auch auf der "Pearl"-Werbe-Laufschrift drauf.
http://www.pearl.de/a-PE9441-2430.shtml
Alle Zeilentreiber werden ausgeschaltet, alle Spaltenwerte werden in die
164er Kette geschoben und dann die nächste Zeile für x ms aktiviert.
Dann wieder alles aus usw.
Ist ein Mega8 drauf, die 7 Zeilen Zeilen werden dort über SMD-Mosfets
direkt vom AVR gesteuert.
Gruß aus Berlin
Michael
es werden erst sechs bytes reingetaktet (zeileninhalt), dann ein byte
welches die zeile binär codiert darstellt reingetaktet und dann load,
das ganze 16 mal und dann wieder von vorn.
diese anzeigen gibt es derzeit bei ebay.
191_load Alias Portd.2
sind alias Bezeichner für bestimmte I/O Pins
191_load = 1 heist also Port D2 ist logisch 1
Datenbyte = &B11001100
ist der Inhalt einer Zeile eines 8x8 Moduls
das Byte wird zur Demonstration einfach wiederholt und so ergibt sich
ein Streifenmuster
Datenbyte.a
ist ein Bit des Bytes
jenachdem welchen Wert der Schleifenzähler hat das 1 ... 8 Bit eines
Bytes
For A = 0 To 7
164_clk = 0
164_data = Zeile.a
164_clk = 1
Next A
taktet seriell den Binärwert der aktuellen Zeile raus
Zeile.a ist wieder Bit des Bytes der Variable "Zeile"
a enspricht dem Schleifenzähler A
Beispiel: 3. Zeile ---> die Variable "Zeile" hat den Wert 00000011
Hallo, ich habe auch ein solches LED Modul erworben und möchte es mit
meinem alten STK200 ansteuern.
Dazu schrieb ich das hier zitierte Beispiel-BASCOM-Programm in AVR
Assembler um.
Meine Programm soll ein beliebiges Bitmuster über die SPI des AT90S8515
auf die 16x48 LED Matrix geben.
Bevor ich das laufen lasse und Spannung an das Modul gebe meine Frage:
Ich plane 125 Hz Zeilen Multiplex Frequenz, ist das zu langsam?
Gibt es eine Multiplex-Untergrenze, bei der die LEDs durchbrennen
können?
Wo gibt es einen Schaltplan zur 16x48 LED Matrix?
Hersteller Webseite?
Ich habe im Beispiel-Code der Einfachheit halber den Refresh in der
Main-Loop durchgeführt.
In meiner produktiven Variante habe ich mit einem Timer gearbeitet.
Jeder Timeraufruf schreibt eine Zeile, mit jedem Timeraufruf wird die
Zeile um 1 erhöht.
Ich nutzte den 8Bit Timer0 mit Prescale 64