LED Matrix

#276674
Lesenswert?

Wirf mal ein Auge hier drauf:
http://home.wanadoo.nl/electro1/avr/dotmatrix.htm
Ist zwar auch Mikrocontroller, aber es bringt das Ansteuerprinzip nahe,
denn Zeitmultiplex ist die Lösung.
Ansteuern lässt sich das dann auch mit Zähler und EPROM als
Charakterfontspeicher.
Aber Achtung: In den Reihenleitungen zur LED-Matrix sind Widerstände
notwendig, wenn etwas anderes als ein AT90S2313 zur Ansteuerung
verwendet wird.

Gruss
Jadeclaw.
Gast #276675
Lesenswert?

Vielen Dank für die Hilfe, das Prinzip des Matrixaufbaus habe ich wohl
verstanden nicht aber ganz die ansteuerung jeder sagt was anderes und
ein gutes schema habe ich auch nicht wirklich gefunden.

welchen multiplexer sollte ich denn nehmen und was macht dieser
74HC595?
Als erstes möchte ich mal hinkriegen das alle LED's leuchten und dann
vieleicht mit einem Knopfdruck oder einem Timer irgendwelche effekte
geschehen welche ich dann mit dem PLD bzw. CPLD programmieren möchte.
Gast #276677
Lesenswert?

ja ich mache dieses Projekt in der Firma und da haben wir noch keine uC
aber wir sind jetzt gerade am PLD dran und da wäre es eine gute übung
ich würde es auch lieber mit uC machen. ^^

aber das ist doch nicht zu schwierig oder sonst lasse ich das mit den
efekten weg wenn ich das nicht hinkriege
#276679
Lesenswert?

@Samuel: Der 74HC595 ist ein Schieberegister,
Er nutzt es hier, um die einzelnen Spalten durchzuschalten, indem eine
0 durchgeschoben wird und parallel auf die Reihenleitungen das dazu
passende Datenbyte draufgelegt wird.

Nur - Da du einen PLD nutzt, kannst du dir den Decoder/Schieberegister
programmieren, ebenso den Zähler für die Spaltenauswahl etc.
Ist der PLD gross genug, passt alles in das Teil hinein, inklusive
Charakterfont (falls Zahlen/Buchstaben dargestellt werden sollen).

Gruss
Jadeclaw.
#276681
Lesenswert?

Ein IC, welches eine grosse Anzahl einzelner Gatter und Logikblöcke
enthält, die dann nahezu beliebig untereinander 'verdrahtet' werden
können.
So kann man sich aus diesen einzelnen Teilen die benötigten Funktionen
zusammenbauen. Ein PLD kann je nach Grösse bis zu 200-300 TTL-ICs
ersetzen.
Günstiges Einstiegsteil ist die XC9536-Serie von Xilinx.
Einsteigerkits dafür findet man öfters auf eBay für wenig Geld.

Gruss
Jadeclaw.
#276683
Lesenswert?

Jein. Ein PLD ist genauso flexibel, verlangt allerdings mehr
Gehirnschmalz beim Programmieren. Wo ein Controller oder Mikroprozessor
allerdings nicht mithalten kann, ist die Geschwindigkeit. Bei modernen
PLDs sind feste Durchlaufzeiten für die eingehenden Signale bis diese
an den Ausgängen erscheinen die Normalität. Der Controller, der innert
5 ns auf einen Signalwechsel reagiert, dieses Signal mit einem anderen
verknüpft und das Ergebnis an einem anderen Ausgang bereitstellt muss
erst noch erfunden werden. Und das unabhängig davon, was sonst noch auf
anderen Teilen desselben Chips passiert.

Gruss
Jadeclaw.
Gast #276684
Lesenswert?

@Jadeclaw,

"Ein PLD ist genauso flexibel, verlangt allerdings mehr Gehirnschmalz
beim Programmieren."


Falsch !

Ein µC ist ungleich flexiber. Schon um nur die µC-CPU nachzubilden,
brauchts riesige FPGAs mit Gatteranzahl jehnseits von 100.000.

Für jede einfache Sache verbraucht ein CPLD Macrozellen, Rechnen ist
besonders aufwendig.

Für einen µC ist es dagegen ein Klacks, viele verschiedene Sachen quasi
gleichzeitig zu machen.


Der einzige Vorteil eines CPLD liegt in der Geschwindigkeit, da er ja
alles echt parallel macht (mit verschiedenen Macrozellen).

Diese wird hier aber überhaupt nicht benötigt, LED-Multiplex macht
jeder µC spielend so nebenbei im Timerinterrupt.

Im Gegenteil, LEDs im MHz-Bereich zu multiplexen erfordert schweinische
Schaltleistungen (hohe Umladeströme) und stört wie Sau.


Peter
Gast #276685
Lesenswert?

...womit ihr hier mal wieder, wie so oft, voll von der eigentlichen
frage abgewichen seit, und leute die den thread lesen, einen haufen
sachen lesen, die garnicht die eigentliche Frage beantworten.

samuel fragt schon lang nicht mehr, und ich denke geholfen ist ihm
immer noch nicht wirklich...

wenn jemand wissen will worin der Unterschied zwischen einem uc und
einem pld liegt, warum macht er dann nicht einen neuen thread mit genau
dieser fragestellung als überschrift auf!? so findet man doch auch die
lösungen zu seinen problemem viel schneller!

stattdessen sind hier threads mit 100derten von einträgen über gott und
die welt, alles ein durcheinander... ok, zumindest manchmal....

sorry aber das musste mal sein.

Jonny
Gast #276686
Lesenswert?

@Jonny

"samuel fragt schon lang nicht mehr, und ich denke geholfen ist ihm
immer noch nicht wirklich..."


Im Prinzip ist die Antwort ja schon gegeben:

Ein CPLD ist der erheblich umständlichere Weg, ein µC ist wesentlich
besser geeignet.


Peter
Gast #276688
Lesenswert?

Ja hallo danke für die Hilfe habe jetzt eine konkrete idee das ich die
Matrix mit einem PWL ansteuere ich habe da drin rote und weisse LED's
dann kann ich irgendwie die roten und die weissen verknüpfen das die
die roten und die weissen immer dimmen also zuerst die roten ein und in
der zeit die weissen aus usw. und dann zwischendurch leuchten alle (wenn
das geht). Ich bin jetzt noch auf der suche wie ich das realisieren kann
mit meinen (C)PLD's ;-)
#276690
Lesenswert?

Grundsätzlich gilt, dass pro Reihenleitung eine LED an ist.
Bei 20mA und 2 Volt Spannungsabfall an der LED sind 150 Ohm richtig.
(Uges - Uled)/Iled = R; R in Ohm, U in Volt, I in Ampere.
High Efficiency-LEDs brauchen weniger Strom,
680 Ohm bis 1kOhm sind da Ok.
Die Widerstände kommen immer in die Leitungen, auf die das Bitmuster
ausgegeben wird.

Gruss
Jadeclaw.
Gast #529171
Lesenswert?

Hallo,

habe eine 5x7 DOT Matrix TC07 von Kingbright verwendet, nutze den 
PIC18F452, habe die 5 Spalten über Vorwiderstände an den Ausgängen des 
74HC595 angeschlossen, die 7 Zeilen sind direkt an Port D angeschlossen, 
siehe include.

Die drei Steuerleitungen SHCP, STCP und DS habe ich an dem Port C 
angeschlossen.

Soweit so gut, das angehängte Programm müßte normalerweise einen DOT in 
Zeile 1 von rechts nach links wandern lassen, jedoch ist die Zeile 1 
dauerhaft an. Habe vermutet, es handelt sich hierbei um ein Zeitproblem, 
habe jedoch schon den Datentyp der Zählvariable auf double umgeändert 
und es ändert sich rein garnichts.

Zum Programmablauf

1) Ich lege die Zeile 1 mit dem zugehörigen Portpin auf 5v+ Potential
2) Ich lasse eine for Schleife von 7 an rückwärts zählen
3) Ich hole mir das letzte Element aus dem Feld per zählvariable 7
4) rufe die Fkt Schiebregister auf, Übergabe letztes Feldelement

5) Schiebe den Wert seriell in den HC595
6) Schalte den Wert auf die Ausgänge des HC595
7) Warteroutine
8) Schritt 1 usw usw

Die seriell to parallel Wandlung sollte richtig sein, ich habe keine 
idee, woran es liegen könnte, dass die Zeile 1 dauerhaft leuchtet


Ich hoffe, das jemand meinen bzw meine Fehler im Quellcode oder evtl in 
der Hardwarebeschreibung findet. Ich habe mich an dem Beispiel
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren