Dot-Matrix Laufschrift

  • RH: Nicht schlecht, Herr Specht!


    ...ist das rote links diese Eigenbau-Matrix? - sieht ja cool aus, sind das SMD-LEDs "von hinten" auf ne Platine gelötet, dass sie praktisch durch die Löcher durchleuchten?


    Andy, Du bist mir jetzt zuvorgekommen, während ich getippt habe... habe das gleiche Datenblatt mittlerweile auch gefunden ;o) - dieses ganze Thema 20 mA und auch wegen Widerständen, Spaltentreiber etc. hat sich ja dann geklärt... hast schon recht, lieber 50 Cent mehr und dafür auf der sicheren Seite....


    Und ich bin mittlerweile auch schon drauf gekommen, was es mit dem Und-Glied auf sich hat - lass' das auf jeden Fall drin, das ist eine genial einfache Idee, Respekt!, ich hätte mich jetzt mit Software-Dimmung rumgeplagt... ;o)


    Die PWM-Frequenz muss hier halt *deutlich* höher sein als der Display-Refresh, aber das ist bei Hardware-PWM ja kein Problem...


    RH: Du hast aber die Anoden am 4094 und baust den ULN 2083 an den Kathoden ein? - Weil der an der Anode dürfte nicht gehen, hat ja gemeinsamen Emitter und kann nur nach GND durchschalten, keinen Strom "ausgeben", wenn ich das richtig sehe....? Andy hat (für seinen Zweck richtigerweise) ja auch den UDN 2981 genommen, mit gemeinsamen Kollektor....


    Die Software an sich ist wohl nicht sooo schwierig - hier mal in Textform als "Ablaufplan":


    Ich würde das als "Bildschirmspeicher" im Ram organisieren, also 160 Byte hintereinander, wobei ein Byte eine Spalte ist.


    Ansteuerung dann in einer ISR. In der schiebst Du zuerst in einem Register ("Zeile") eine "1" weiter. Fällt sie "hinten" raus, kommt sie "vorne" wieder rein...


    Du holst Dir dann das erste Byte (über Pointer), machst ne AND-Verknüpfung mit diesem Register, d.h. wenn die "1" z.B. an Stelle 3 für die 3. Zeile ist, bekommst Du auch nur das Bit für die dritte Zeile, dieses an "Data" ausgeben, dann Clk-Impuls für die Übernahme/weiterschieben im 4094.


    Dann das nächste Byte, selbes Spiel, bis alle 160 durch sind (sind dann im Schieberegister).


    Dann deaktivierst Du zuerst Output Enable (eben wegen den "Geisterbildern"), gibst das Register "Zeile" an den Zeilen-Port aus, in diesem Beispiel wäre dann die dritte Zeile aktiv (davor war's die zweite).


    DANN gibst Du den Strobe-Puls, dadurch wird das neue Bitmuster in die Latches übernommen.


    Und dann Output Enable wieder aktivieren, neues Bitmuster wird angezeigt.


    wenn das Display insgesamt z.B. nen Refresh von 50 Hz haben soll, musst Du diese ISR 400 mal in der Sekunde aufrufen...


    Durch die Organisation des Bildspeichers in Spalten pro Byte dürfte ein hin- und her-scrollen recht einfach sein - Du musst ja nur die Bytes je eines weiter oder zurück schieben, je nachdem, ob links oder rechts gescrollt wird... oder Du machst "links" und "rechts" noch einen "Überhang", dann kannst du zumindest um ein paar Spalten scrollen, indem Du einfach den Pointer anders setzt...


    Und solche Effekte, dass der Text von oben reinkommt oder nach unten verschwindet, lassen sich ganz leicht in der ISR machen, Du musst das Byte ja nur rotieren, bevor Du die And-Verknüpfung machst, dann landet z.B. die dritte (Speicher-)Zeile in den Schieberegistern, während die zweite (Hardware-)Zeile aktiv ist.


    Beim Beschreiben des Bildschirmspeichers (RAM) könnte man auch das Byte aus dem Zeichensatz-Speicher (EEPROM) "umdrehen" (mir fällt grad der Fachausdruck nicht ein, wurde doch etwas später/süffiger gestern ;o), um negativ-Text anzuzeigen. Eine Or-Verknüpfung mit z.B. 00010000 ergibt dann durchgestrichenen Text, mit 00000001 unterstrichenen Text. Blinken/Faden (also gesamt) geht über die HW-PWM-Dimmung, so Effekte, dass der Text "zerbröselt" über eine And-Verknüpfung mit Zufallszahlen. Komplettes Display invertieren/unterstreichen/durchstreichen könnte man auch noch in die ISR mit einbauen...


    Und das wären dann eh' schon fast alle Effekte, die so ein gängiges Display hat - wohl eben deswegen, weil sie so einfach zu machen sind... ;o)


    Andy, welchen µC willst Du denn nehmen? - Ich bastle grade mit Tiny 2313 und Mega 8515, letzterer sollte hier schon reichen... ich kann Dir gerne als "Art Gemeinschaftsprojekt" beim Programmieren helfen (z.B. diese ISR-Routine mal machen), ich mach' das momentan eh' lieber, als haufenweise Bauteile auf Platinen zu löten... müsste nur wissen, welche Leitung an welchen Port/Pin soll...


    Dafür darf ich dann mal vorbeikommen und mir das Ding ansehen - ist ja nicht so weit weg, könnte ich mit einem Besuch bei Pollin verbinden...


    Übrigens habe ich vor Jahr(zehnt)en mal auf Karopapier nen 5x8 Zeichensatz "designt" (naja, viel Möglichkeiten gibts da nicht) und in Bytes übersetzt - ich wollte damals als 15 Jähriger nen Nadeldrucker selbst bauen, das ist natürlich sowas von in die Hose gegangen ;o) - mal sehen, ob ich den alten Bastelordner wieder finde, da wär' nämlich auch noch ein interessantes LED-Projekt drin...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Zitat von "Pesi"

    2. Widerstände braucht man GAR KEINE - durch das Multiplexen bekommen die LEDs im Mittel eh' nicht viel Strom ab - bei Deiner Methode sogar zu wenig ;o)


    Und ob du die bei deiner Methode brauchst! Die sind alle parallel, kannst froh sein, wenn überhaupt alle angehen...

  • Hallo Pesi,
    ich bin begeistert! ....allerdings verstehe ich nicht wirklich alles was du so schreibst :oops: . Mit ISR kann ich z.B. gerade gar nichts anfangen.
    Ich möchte Softwaremäßig eigentlich schon bei Bascom bleiben und nicht zu Assembler "wechseln" (wechseln ist vielleicht etwas übertrieben, da ich gerade erst angefangen habe). Ich bin halt mit Basic = C64 aufgewachsen :D . Gegen Hilfe beim programmieren hab ich natürlich nichts einzuwenden und das fertige Ergebnis kannst du dir auch gerne ansehen (wenn es wirklich mal fertig wird :wink: ). Beim Prozessor wollte ich den ATMEGA16 oder 32 nehmen. Letzeren hab ich auch noch rumliegen. Preislich ist es ja eh alles im harmlosen Bereich. Das Teuerste am ganzen Projekt werden die Leiterplatten sein - zumindest wenn man sie fertigen lässt.
    Kann man bei deinem Softwarekonzept auch relativ einfach verschiedene Ausbaustufen unterstützen (8, 16, 24, 32 Module)? Fürs erste hätte ich jetzt erst mal nur ein 8er Modul aufgebaut, was man dann erweitern kann wenn alles funktioniert.

  • Hi Andy,


    Zitat von "Andy_KEH"

    Mit ISR kann ich z.B. gerade gar nichts anfangen.


    ISR = InterruptServiceRoutine, das Unterprogramm, das aufgerufen wird, wenn ein (hier: Timer-)Interrupt ausgelöst wird.


    Zitat von "Andy_KEH"

    Ich möchte Softwaremäßig eigentlich schon bei Bascom bleiben und nicht zu Assembler "wechseln" (wechseln ist vielleicht etwas übertrieben, da ich gerade erst angefangen habe). Ich bin halt mit Basic = C64 aufgewachsen


    Lustig - bei mir war's das gleiche, allerdings erst der Vorgänger VC20, dann C64, und dann eben dieser in Assembler, weil Basic zu langsam wurde... Das selbe Spiel dann aufm Sinclair QL mit 68008...


    Assembler ist echt nicht schwer, deswegen habe ich hier (AVR) gleich damit angefangen - ich kann's Dir nur empfehlen, grad bei sowas wie diesem Display könnte es mit Bascom von der Rechengeschwindigkeit/Timing her schon Probleme geben...


    Das wichtigste ist eh, sich das Programm erst mal gut zu überlegen, erst so wie oben in Textform, ggfs. noch genauer als Flussdiagramm - ob ich das dann in Assembler oder Bascom reinhacke, macht wenig Unterschied - in Bascom schreibe ich z.B. "Wait 200 ms", in Assembler rufe ich die entsprechende Subroutine auf... Befehle zur Bitmanipultion (And, Or, ...) und Verzweigung sind ähnlich, Schleifen muss man halt per Register-Zählen selbst basteln u.ä.


    Ich habe natürlich am Anfang auch ein paar wirklich dumme Idiotenfehler gemacht, z.B. in die Subroutine nicht mit rcall, sondern rjmp gesprungen und dadurch den Stack ver-saut ;o) (häh?!? - dieses Wort wird hier automatisch zensiert?!?!) oder vergessen, Register zu sichern, so Sachen nimmt Dir Bascom natürlich ab... aber das hat man rehct schnell im Hinterkopf, dass man am Anfang jeder ISR o.ä. einfach alle verwendeten Register auf den Stapel legt usw.


    Zitat von "Andy_KEH"

    Kann man bei deinem Softwarekonzept auch relativ einfach verschiedene Ausbaustufen unterstützen (8, 16, 24, 32 Module)? Fürs erste hätte ich jetzt erst mal nur ein 8er Modul aufgebaut, was man dann erweitern kann wenn alles funktioniert.


    Nicht nur relativ einfach, sondern sogar sehr einfach! - Diese Schleife, die 160 Bits in die SR schiebt, müsste hier halt nur je nachdem (8, 16, 24, 32 Module) auf 40, 80, 120 oder eben 160 Durchläufe angepasst werden (oder auch noch größer, soviel die Rechenleistung hergibt ;o) - Bildschirmspeicher ist dann halt 80, 80, 120 oder 160 Byte groß... und die Routinen, die den Inhalt in den Bildschirmspeicher schreiben, müssen natürlich wissen wie groß der ist...


    mit Mega16/32 habe ich mich noch nicht beschäftigt, dürfte für die Software aber keinen Unterschied machen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hallo Andy und Pesi,


    danke für die Info, das ist genau der Teil vom Datenblatt den ich nicht hatte, zumindest nicht so.
    Also vielen Dank mal dafür, dann könnte ich durchaus meine Widerstände noch ändern, ich
    habe die Matrix gerade für ca. 5mA ausgelegt, das ist absolut auf der sicheren Seite, zu sicher.


    Da ich meine Versuchs Matrix verwende, welche aber sehr gut und Hell funktioniert, bin ich nicht
    an irgendwelche Vorgaben vom Pollin gebunden, es ist immer im Nachhinein alles zum ändern.
    Bei meinem Aufbau geht der 4094 auf die Anode (Spalten) und der ULN auf die Kathode (Zeilen)


    Beim neuen Layout von dem Spaltentreiber sind noch Widerstände auf der Platine vorgesehen,
    hier sind die noch nicht auf der Platine sondern hinten an die LEDs rangelötet.


    Anliegend ein Foto vom Zeilentreiber mit dem ULN2803, den UDN xx hätte ich eh nicht gehabt.
    Sowohl der Spalten als auch der Zeilentreiber sind so aufgebaut, das die Ausgänge direkt in eigene
    Treiberstufen geführt werden können, wenn es Notwendig sein sollte. Alles ist auf Stiftleisten
    geführt und ist dadurch auch Steckbar, ich bevorzuge solche modulare Aufbauten.


    Da ich im Moment keine richtige Anwendung für eine Laufschrift habe mache ich gerade mit der
    8x8 Matrix Versuche mit animierter Grafik, siehe die anliegenden Fotos.
    So eine Matrix verdrahten ist nicht die Welt, auch wenn das Teil noch größer wird geht das auch.
    Wenn man weis wie das am besten geht ist das echt kein Problem, die Leitungen liegen auf 2 Ebenen.


    Die Daten kommen schon jetzt dann gleich aus einem I2C EEPROM, das Herz kann Wackeln und
    der Pfeil kann sich fast schon drehen, da ist noch etwas Fein Tuning angesagt.


    Mit einem Dimmen hätte ich auch kein Problem, da ja jede Zeile derzeit 2ms steht, bevor die nächste
    Zeile kommt, wenn diese Pause geändert wird ergibt das automatisch einen Dimm Effekt.
    Ein Zeitproblem dürfte es auch mit mehreren Modulen nicht so schnell geben,
    im Moment reicht der PIC mit 4 MHz locker aus.
    Wenn die Grafik mal aufwendiger wird werde ich sehen wo die Grenzen liegen.



    MfG Raimund



    Pesi: Die kleine LED Leiste ist die Testleiste für einen µC Port, aber genauso aufgebaut wie Du meinst.
    Da sind 8 Löcher etwas aufgebohrt worden, und die SMD LEDs mit Linse reingesteckt worden, die sind
    dann hinten mit den Anschlussdrähten verlötet worden.
    Für schnelle Testreihen gibt es nichts besseres, besser als jeder Debugger.


    Die Zeilen und Spaltentreiber Platinen sind mit Eagle gemacht, wenn’s einer haben will bitte per PN.

  • Zitat von "RH"

    Hallo Andy und Pesi,
    So eine Matrix verdrahten ist nicht die Welt, auch wenn das Teil noch größer wird geht das auch.
    Wenn man weis wie das am besten geht ist das echt kein Problem, die Leitungen liegen auf 2 Ebenen.


    Saubere Arbeit! - aber das mit 1.280 LEDs zu machen (soviel wären's bei Andys Endausbaustufe), da wird man ja blöd dabei! :wink:


    Zitat von "RH"

    Alles ist auf Stiftleisten
    geführt und ist dadurch auch Steckbar, ich bevorzuge solche modulare Aufbauten.


    Ich auch, das ist echt super - ich nehme aber die Pfostenstecker, die man auf ein Flachbandkabel draufpressen kann, da auch noch zu löten wäre mir schon wieder zu viel Arbeit.. :wink:


    die sind halt zweireihig, aber das macht nichts, geht auf Streifenraster auch, da geht halt jedes Signal über 2 Leitungen, das schließt dann z.B. Wackelkontakte auch schon mal besser aus...


    kleinere Verbindungen (Vcc, Gnd, Einzelsignale) gehen dann einzeln über Lötnägel + Stecker...


    Zitat von "RH"

    Pesi: Die kleine LED Leiste ist die Testleiste für einen µC Port, aber genauso aufgebaut wie Du meinst.
    Da sind 8 Löcher etwas aufgebohrt worden, und die SMD LEDs mit Linse reingesteckt worden, die sind
    dann hinten mit den Anschlussdrähten verlötet worden.
    Für schnelle Testreihen gibt es nichts besseres, besser als jeder Debugger.


    Genial - und sieht gut aus! - Das mach' ich mir glaub ich auch noch, zum schnell mal an den Port ranstecken und schauen, was da passiert - alte Großrechner hatten sowas ja auch, LEDs am Daten- und Adressbus z.B., ich war vor 20 Jahren mal per Schulausflug in ner Zeitungsdruckerei, da hatten die so ein uraltes Ding, da hat man teilweise sogar noch die LEDs flackern und zählen gesehen...


    Zitat von "RH"

    Die Zeilen und Spaltentreiber Platinen sind mit Eagle gemacht, wenn’s einer haben will bitte per PN.


    Hm, Andy und ich arbeiten mit Target - kann man da Eagle importieren, weiß ich grad nicht auswendig...? Ich brauch's eh' nicht, und Andy will ja gleich ne komplette Platine mit allem drauf machen...?


    Übrigens: ätzt Du da so fleißig (Tonermethode?) oder hast Du ne CNC-Fräse, mit der Du die Platinen machst (sieht irgendwie so aus...)? - sowas wäre natürlich genial, um "schnell mal" ein PCB zu machen... ein Freund vonmir hat noch so ein Teil im Keller stehen, er will's schon seit Jahren bei Ebay reinstellen (da gehen diese Dinger so um 2000-3000 Euro weg), ist aber zu faul dafür :shock: - vielleicht kann ich ihn ja mal überreden, dass er sie derweil bei mir "parkt"... :wink:


    EDIT: das ist ja auch gar keine schlechte Idee, auch bedrahtete Teile auf die Kupfer-Seite zu löten und sich dadurch das Bohren (das ist immer das nervigste) zu sparen! - Und, lustig, Du hast da ja auch nen "Null-Ohm-Widerstand" drin, von dem war vorgestern erst die Rede in nem anderen Thread, gell, Andy...?

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hallo Pesi,


    die Testleiste habe ich mehrmals sowohl mit gem. Anode als auch Kathode, damit ist man für
    fast alle Fälle gerüstet, das habe ich schon bei meinem Z80 so gemacht.


    Diese Platinen sind Isoliergefräst, geht am schnellsten bei Prototypen und macht relativ wenig
    Arbeit, das Layout wird ja in jedem Fall benötigt, ob Toner oder Film.
    Ich habe mir dazu mal eine kleine Proxxon MF70 umgebaut, das ging schon super.
    Aber dann wurde mir der Weg zuwenig, die wurde dann gegen eine größere Ersetzt, jetzt reichts.


    Die reine gemischte Top Lagen Bestückung ist durchaus auch im Prototypenaufbau üblich, wo es
    geht spart es viel Zeit. In der letzten Funkschau habe ich sogar gesehen das einer auf Lochraster
    Platinen von der CU Seite her aufbaut, hat sogar ganz gut ausgeschaut, sollte kein Problem geben.


    MfG Raimund

  • Hi Raimund


    Zitat von "RH"

    die Testleiste habe ich mehrmals sowohl mit gem. Anode als auch Kathode, damit ist man für fast alle Fälle gerüstet, das habe ich schon bei meinem Z80 so gemacht.


    Gute Idee! ...Z80, geil! - Habe auch noch nen Sinclair rumliegen, allerdings nen QL, das Teil war ja ein gnadenloser Flop - ich war (und bin's wohl immer noch) damals im Umkreis von ca. 300 km der Einzige, der so einen hatte... ;o)


    Zitat von "RH"

    Diese Platinen sind Isoliergefräst, geht am schnellsten bei Prototypen und macht relativ wenig Arbeit


    ja, dachte ich mir eben, das sieht man ja auch, dass die gefräst sind... das ist schon genial, weil wegen so kleinen Sachen immer mit der Ätz-Suppe rumkochen... uahh - ich muss meinem Kumpel echt mal die Portalfräse abschwatzen...


    Zitat von "RH"

    Ich habe mir dazu mal eine kleine Proxxon MF70 umgebaut, das ging schon super.


    Wie das? - Schrittmotoren an die Handräder...? - War bestimmt ne Menge Arbeit, vor allem dann da auch noch Software dafür entwickeln, Hut ab!


    Und, Andy: sorry für das Off-Topic! - hier noch etwas On-Topic:


    Ich habe mir auf die Schnelle mal das Datenblatt für Mega16/32 angesehen, sooo viel anders sind die ja auch nicht, das dürfte ich schon hinbekommen, da was für zu schreiben...


    Ich kenn' mich mit Bascom nicht aus, aber ist es da auch möglich, in den Code Assembler-Schnipsel bzw. -Routinen einzufügen? - so ähnlich, wie man beim C64 mit "SYS" Maschinensprache-Teile aufrufen konnte? - Weil zumindest die ISR sollte aus Timinggründen schon in Assembler sein, ausserdem geht's mir andersrum als Dir, ich mag nicht Bascom lernen *g*


    Dann könnten wir einen RAM-Bereich vereinbaren, ich mach' Dir die Ausgabe-Routine, und Du musst nur noch deine Grafiken in diesen RAM-Bereich reinschreiben, das kannst Du dann auch in Bascom machen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Zitat von "Pesi"


    Ich kenn' mich mit Bascom nicht aus, aber ist es da auch möglich, in den Code Assembler-Schnipsel bzw. -Routinen einzufügen? - so ähnlich, wie man beim C64 mit "SYS" Maschinensprache-Teile aufrufen konnte? - Weil zumindest die ISR sollte aus Timinggründen schon in Assembler sein, ausserdem geht's mir andersrum als Dir, ich mag nicht Bascom lernen *g*


    ja, geht einfach:
    [code:1]$asm
    <Assemblercode>
    $end Asm[/code:1]

  • Hi Stefan,


    vielen Dank! - eine Frage noch: der Assemblercode dann als Quelltext da rein (da müsste ja Bascom auch noch nen Assembler drinhaben?!?) oder wohl eher den schon kompilierten Code als HEX-Zahlen o.ä...?


    und man kann da schon auch ein Label o.ä. hinmachen, dass man direkt zum Anfang des Assemblercodes springen kann, bzw. die Startadresse in der Interruptvektor-Tabelle eintragen kann?


    Sorry übrigens wegen dem ganzen Widerstand/Zeilen/Spalten-"Streit" ;o) - Ich gebe Dir recht, dass (zum Schutz, und weil's einfach "richtiger" ist, Erklärung folgt gleich), auf jeden Fall Widerstände besser sind als keine... aber unbedingt nötig sind sie nicht, ich habe schon paar so Billig-Displays gesehen, wo keine drin waren...


    Da leuchten natürlich auch alle LEDs, wenn da 5V (minus Treiberverluste) an der Parallelschaltung anliegen und der Zeilentreiber genug Strom liefert, da sagt keine der 160 LEDs nein dazu ;o)


    natürlich wird sich der Strom wegen Toleranzen ungleichmäßig verteilen, daher kommt auch die ungleichmäßige Helligkeit, die man bei solchen Displays beobachten kann.... also ist es auf jeden Fall besser mit WS


    Da muss der Andy jetzt durch mit den 160 Widerlingen! ;o) - er hat sie ja in seinem Schaltplan auch schon richtig eingezeichnet.... andersrum (Spalten multiplexen) geht's echt nicht, da müssten bei dem Ein/Aus-Verhältnis von 1:159 schon 3,2 A Impulsstrom PRO Led fließen, damit sie die selbe Helligkeit hat wie mit 20 mA Dauerstrom - das sollte klar sein, dass das nicht geht...?

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Zitat von "Pesi"


    natürlich wird sich der Strom wegen Toleranzen ungleichmäßig verteilen, daher kommt auch die ungleichmäßige Helligkeit, die man bei solchen Displays beobachten kann.... also ist es auf jeden Fall besser mit WS


    Eben das meinte ich ja... das es leuchtet, ist klar.
    Außerdem könnte jemand auf die Idee kommen, das mit nem Duo-Display zu machen - und das geht dann auf jeden Fall in die Hose!

  • Genau!


    ....und wie war das jetzt mit dem Assembler? - ich nehme an, da muss dann nach $asm der bereits kompilierte Code rein, oder?


    also so in der Art (aus dem .hex-File rauskopiert):


    [code:1]
    $asm
    :100024000FE50DBF02E00EBF01E003BF02E009BF10
    :10003400789400E004BB01E006B9399A3A9A0FEFCC
    :100044000ABB01BB05BB4FEF50E060E0389839D0E4
    :100054004BD0389A53955F3FD0F3389832D044D080
    $end asm
    [/code:1]
    oder als einzelne Bytes:
    [code:1]
    $asm
    24 00 0F E5 0D BF 02 E0
    0E BF 01 E0 03 BF 02 E0
    09 BF 10 FD 0F 33 89 83
    2D 04 4D 08 0F 3A 75 B2
    $end asm
    [/code:1]


    oder kann man auch direkt die Datei per include da einbinden...?


    ...aber das wird der Andy dann schon wissen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • So, ein bischen weiter bin ich inzwischen gekomen. Den Schaltplan für die Steuerung hab ich mit ISP, RS232-Schnittstelle ein paar Tastern, DIL-Schaltern und IR-Empfänger aufgemotzt - man weiß ja nie was man mal braucht :wink: . Schaltplan und Layout hab ich mal angehängt.


    Den Plan für die DOT-Matrix hab ich komplett abgetrennt - soll ja auch eine separate Leiterplatte werden. Ich bin mir nur noch nicht schlüssig, was ich dabei für Zeilentreiber nehmen soll. Wenn die 40 LEDs gleichzeitig getrieben werden müssen wären das bei 20mA schon 800mA. Theoretisch könnte man aber den Strom wegen dem multiplexen erhöhen, ich glaube in diesem Falle bis zum 8-fachen?! Möchte ich zwar nicht machen, aber ich rechne zumindest mal mit 100mA. Das wären dann aber schon 4A pro Zeile. Dazu kommt, dass ich die Matrixplatine (bis auf die Matrixmodule natürlich) komplett mit SMD machen möchte. Kennt jemand da passende Transistoren in SMD?
    Spricht eigentlich was gegen die Dual-Channel Mosfets für den Zweck? Gefühlsmäßig müsste das wohl ein P-Channel sein, oder? Ich hab mit den Dingern noch nie selbst gearbeitet... :oops:
    Die Leiterplatten werde ich wohl doch selber machen müssen. Bei der Größe wird das sonst ziemlich teuer bei diesen riesen :^o Stückzahlen :(
    Mal sehen ob sich dafür besser das Ätzen oder Isolationsfräsen eignet.

  • Zitat von "Andy_KEH"


    Spricht eigentlich was gegen die Dual-Channel Mosfets für den Zweck? Gefühlsmäßig müsste das wohl ein P-Channel sein, oder? Ich hab mit den Dingern noch nie selbst gearbeitet...


    die von Pollin?
    Die sind cool, schalten aber nur gegen Masse (also NPN quasi).
    Und sie haben eine recht hohe Ladung - d.h. man muss nen Pulldown für die Base nutzen, damit man die überhaupt flott aus/an kriegt.
    Ansonsten super - klitzeklein, geringer Verlust und hohe Schaltleistung.

  • Hallo,


    wollte auch mal meinen Senf dazugeben. :D


    Da gibt es vom Maxim so ein schönes IC: MAX7219
    Das IC steuert entweder eine 5x7 Anzeige decodiert oder auch eine 8x8 Matrix-Anzeige undecodiert an. Der Baustein kann kaskadiert werden, so dass theoretisch unbegrenzt viele Anzeigen hintereinander geschaltet werden können.


    Angesteuert wird der MAX 7219 über eine serielle Schnittstelle, ähnlich der SPI-Schnittstelle der Atmels. Die SPI Schnittstelle der Atmels kann dafür verwendet werden.


    Das IC übernimmt die Multiplexsteuerung der Anzeige. Die Helligkeit kann in 16 Schritten variiert werden.


    Gruß
    Udo

  • Hallo Udo1,


    danke für den Senf, Mahlzeit. :-%


    Komisch, das IC hatte ich schon vor längerer Zeit mal im Visier aber
    irgendwie wieder verworfen, weiss nicht mehr warum.


    Habe mir das Datenblatt gerade noch mal angesehen, ist echt nicht
    schlecht, könnte mal ausprobiert werden. Ist leider nicht das billigste.


    Aber ich denke das werde ich doch mal probieren, werde darüber
    berichten wenn es ge- oder missglückt ist.


    MfG Raimund