Forum: Mikrocontroller und Digitale Elektronik LED-Matrix-Ansteuerung über LPT


von Patrick Hercegfi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe vor eine ältere 3-farbige (rot, grün, rot+grün=orange)
Laufschrift-Anzeige (Sigma ASC 333) so umzubauen, dass ich sie per LPT
ansteuern kann und beliebige LEDs darauf an- und ausschalten kann.

Ich hab mir also die Datenblätter von den Schieberegister-ICs, mit
denen die Spalten angesteuert werden besorgt und es nach einer Weile
auch geschafft diese mit dem PC anzusteuern, siehe Anhang.

Die Eingänge für die Farben und die Reihe (2 Farben x 7 Reihen = 14
Eingänge) kann ich allerdings noch nicht mit dem PC ansteuern, und
genau da ist mein Problem:

Ich habe mir bei Conrad heute ein paar ICs gekauft, mit denen ich
Zugriff auf genau diese Ausgänge haben will.
Allerdings scheitere ich bei der Verschaltung.

--> Als erstes 2 4-fach-Optokoppler (LTV847), um den LPT-Port vor
Kurzschlüssen zu schützen.

--> Dahinter soll ein 4-zu-16-bit-Decoder (CD4514BE) vier von den
LPT-Ausgängen aufteilen auf 16 Ausgänge (nur 14 werden benutzt).
Die Ausgänge werden schnell nacheinander angesprochen, sodass jede
LED-Reihe mal drankommt und der Effekt ensteht, als ob das ganze
Display auf einmal leuchtet. (bzw. die gewünschten Grafiken, Texte,
usw.)

--> Da die Ausgänge ja noch verstärkt werden müssen (an jeder Reihe
hängt bis zu 1A bei 5V) habe ich mir zwei 4er-Darlington-Arrays gekauft
(ULN2003A), bei denen ich um den Strom aufzuteilen jeweils zwei ein- und
ausgänge paaren will. Dummerweise hab ich nicht genau hingeschaut und
wenn ich das jetzt richtig seh, sind die invertiert, sprich alle Reihen
würden auf einmal leuchten, nur nicht die, die ich ansprechen will.

Jetzt hab ich mir gedacht, halbsoschlimm, da setz ich einfach nochmal
ein paar Inverter davor... hab jetzt nach einigem stöbern auch ein paar
in meiner IC-Kiste gefunden (6-bit HEX-Inverter: DM7404N) und auch
gleich mal in einer kleinen Testschaltung ausprobiert. Aber das hat
nich ganz so funktioniert wie ich das wollte: Der Ausgang war
unabhängig von Eingang immer auf High. Außerdem war der IC nach ein
paar Sekunden schon recht heiß.
Ich geh mal davon aus, dass das an meinen nicht so ausgezeichneten
Kenntnissen von der digitalen Elektronik liegt.
Ich erklär mal kurz wie ich den IC angeschlossen hab:

GND an Minuspol vom Netzgerät
Vcc an Pluspol  vom Netzgerät (5V)
Input1 durch Taster von GND getrennt
LED mit 390 Ohm Vorwiderstand an GND und Output1

und wie gesagt, die LED hat immer geleuchtet...

Nach diesem kleinen "Experiment" bin ich jetzt doch etwas
vorsichtiger geworden, auch was die Verschaltung der anderen
Bauelemente anbetrifft.

*******************
So, und da das jetzt so eine lange Vorgeschichte war, hier nochmal die
essentiellen Probleme:
*******************
1. Wie genau schließe ich einen Inverter zwischen einem Ausgang des
Decoders und einem Darlington an?

2. Wie sieht es mit den Optokopplern aus, muss ich da irgendwas
verstärken oder kann ich direkt die 5V durch die Fototransistoren in
den Decodereingang schleusen?

3. Am besten wärs natürlich, wenn einer von euch mal von vorne bis
hinten die Schaltung durchdenkt und mir sagt, auf was ich achten muss.


Bitte lasst mich nicht hängen! Ich bin grade noch völlig am Anfang
meiner "Elektronikkarriere" und könnte ein bischen Starthilfe sehr
gut gebrauchen!!

von crazy horse (Gast)


Lesenswert?

ich ich versuche, mir das alles vor meinem geistigen AUge aufzubauen -
stell doch mal die Schaltung ein.

von Patrick Hercegfi (Gast)


Angehängte Dateien:

Lesenswert?

So, hat jetzt eine weile gedauert, weil sich target 3001 anfangs noch
etwas gewehrt hat ;)

Während dem Zeichnen ist mir noch aufgefallen, dass so, wie ich das
ganze angeschlossen habe, die LEDs im Endeffekt sowohl an Anode als
auch an Kathode ein Potential von +5V hätten (ach ja, die Widerstände
hab ich jetzt vergessen, denkt sie euch einfach dazu). Würde das
bedeuten, dass wenn die Schieberegister-Outputs auf Low (=0V) stehen,
dann die LEDs leuchten - denn damit könnte ich leben. Oder muss ich da
die Schaltung abändern?

Die Inverter habe ich inzwischen über den Haufen geworfen, da ich ja
auch einfach per Software die Inputs vom Decoder invertiert ansteuern
kann.

Und jetzt noch was: Wenn die Software noch nicht läuft (und die
LPT-Ausgänge noch nicht resettet wurden) und ich dann auf die Schaltung
Strom gebe... dann würde doch mehr als nur eine LED-Reihe leuchten, was
zur Folge hätte, dass die Schieberegister überfordert werden und
abfackeln!?! Hat da noch jemand eine Idee wie man das umgehen könnte?

von Patrick Hercegfi (Gast)


Lesenswert?

Oh, als ich grad gesagt hab, dass ich die Widerstände vergessen hab, hab
ich nur die vor den LEDs gemeint, falls wo anders noch welche hinmüssen,
bitte unbedingt Bescheid sagen!

von Robert Polin (Gast)


Lesenswert?

Hallo Patrick,

Ich bin auf der Suche nach genaueren Daten/Funktion der Sigma ASC333,
find aber nichts am Netz (Hersteller usw.).
Hast du einen Link, oder weisst du wie die angeblich erhältliche PC
Schnittstelle/Software funktioniert.
Ich möchte diese Anzeige ab einer voreinstellbaren Zahl im
veränderlichen Takt (xx sec) hochzählen lassen, geht das?
Vielen Dank Robert

von rahul (Gast)


Lesenswert?

Die Optokoppler-LED brauchen natürlich auch einen Vorwiderstand (daher
also der Kurzschluß).

von Patrick Hercegfi (Gast)


Angehängte Dateien:

Lesenswert?

Also was die original-PC-Schnittstelle angeht bin ich nicht informiert,
es gibt nur eine Buchse die in Betracht kommt und die ist laut
Anleitung eine "Buchse ohne Funktion" (sieht aus wie eine
Telefondose) tatsächlich gehen jedoch ein paar Leitungen von dort aus
auf die Platine, ich hab jedoch auch keine Informationen über die
Ansteuerung.

Ich habe seit dem obigen Schaltplan doch noch einiges abgeändert, u.a.
auch diese Vorwiderstände eingebaut, unabhängig von rahuls Vorschlag,
Danke trotzdem ;-)

Jetzt aber mal was zum aktuellen Stand:
ich habe das Display schon seit längerer Zeit fertig umgebaut und kann
jetzt mit meiner Software quasi jeden Pixel seperat ansteuern, und
nicht nur das, durch PWM kann ich beliebige Mischfarben und
Helligkeiten aus rot und grün erzeugen. Ich hatte das Display schon auf
Parties im Einsatz und es kam echt gut an :D
ach ja, ich hab zum Spaß mal Pong und Snake (jeweils für 2 Spieler)
dafür programmiert...

Vor einer Weile habe ich die Schaltung noch einmal überarbeitet und
habe jetzt 6 Paralelle Datenleitungen (die jeweils 2 (bzw. 1)
Schieberegister versorgen; die Leiterbahnen die sie ursprünglich
verbunden hatten habe ich aufgetrennt), was mir im Endeffekt etwa 5x
höhere Geschwindigkeit bei der Ansteuerung bringt, dadurch habe ich
entweder weniger Prozessorauslastung (LPT-Ansteuerung brauchte 100% bei
180 fps, jetzt kriege ich mit der selben Auslastung 1100 fps)
oder ich kann flüssigere Farbverläufe anzeigen (vorher waren 4
bit-Farben drin, 8-bit mit leichtem Flackern, jetzt kann ich locker auf
16 bit oder mehr gehen, wobei ab dann die Übergänge flüssig genug sind)

Ich hab mal ein Video vom Pong-"Ladescreen" angehängt, ist allerdings
noch von der langsamen Ansteuerung, mit etwa 22fps (jeder frame hat 8
unter-frames für die Farbmischung)

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
Noch kein Account? Hier anmelden.