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
:
Bearbeitet durch User
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.
Den Bascom Code habe ich verfasst. Fragen hierzu können hier gestellt werden.
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
1 | $regfile = "m32def.dat" |
2 | $crystal = 8000000 |
3 | |
4 | $hwstack = 150 |
5 | $swstack = 200 |
6 | $framesize = 200 |
7 | |
8 | Config Portc = Output |
9 | |
10 | 191_load Alias Portc.5 |
11 | 164_data Alias Portc.6 |
12 | 164_clk Alias Portc.7 |
13 | |
14 | Dim Datenbyte As Byte |
15 | Dim Zeile As Byte |
16 | Dim A As Byte |
17 | Dim B As Byte |
18 | |
19 | Config Timer0 = Timer , Prescale = 64 |
20 | On Ovf0 Tim0_isr |
21 | Enable Timer0 |
22 | Enable Interrupts |
23 | Start Timer0 |
24 | |
25 | Datenbyte = &B11001100 |
26 | |
27 | Do |
28 | Loop |
29 | End |
30 | |
31 | Tim0_isr: |
32 | Timer0 = 6000 |
33 | Zeile = Zeile + 1 : If Zeile = 16 Then Zeile = 0 |
34 | 191_load = 0 |
35 | For B = 1 To 6 |
36 | For A = 0 To 7 |
37 | 164_clk = 0 |
38 | 164_data = Datenbyte.a |
39 | 164_clk = 1 |
40 | Next A |
41 | Next B |
42 | |
43 | For A = 0 To 7 |
44 | 164_clk = 0 |
45 | 164_data = Zeile.a |
46 | 164_clk = 1 |
47 | Next A |
48 | |
49 | 191_load = 1 |
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.