Hallo ich möchte gerne eine LED Matrix aufbauen (11x11) und dann diese mit PLD ansteuern ich möchte aber nicht 121 Widerstände benutzen wen das geht. nun meine Frage wie muss ich diese LED Matrix aufbauen? und wie kann ich die dann ansteuern (ohne uC)?
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.
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.
Darf ich mal ganz dumm fragen, warum ein PLD, aber kein µC eingesetzt werden soll? Das Letztere ist doch wesentlich unkomplizierter (zumindest aus meiner Sicht).
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
Naja, wenn Du das mit den Effekten weglässt ist auch eine Ansteuerung sinnlos. Dann legt halt alle über FETs an ein entsprechendes PWM Signal. 3N
@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.
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.
Und warum nimmt man dafür keinen µC her? Ist man damitnicht einfacher, schneller, und vorallem flexibler unterwegs?
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.
@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
...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
@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
siehe anhang. du brauchst nur 11R's, wenn du multiplex ansteuerst ist ja immer nur 1 zeile aktiv... bei fragen fragen!
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 ;-)
ach ja noch was das mit den strömen und den Widerständen ist dann da auch wieder so ne sache ich dachte ich verdrahte die roten alle parallel und dann an einen Transistor um sie anzusteuern
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.
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
am Beispiel http://home.wanadoo.nl/electro1/avr/dotmatrix.htm sollte das heißen, hatte den Link vergessen
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.