Hallo !
Ich hab nach einigem hin und her jetzt meine LED-Matrix Anzeigen am AVR
angekorkt. Zum Testen hab ich erstmal 2 5x7 Matrizen genommen, wobei ich
die Columns mit nem 4-zu-16 Dec. anspreche und die Rows mit nem 3-zu-8
(wegen der Anzahl der Ports und Kabel :-))
Nun ist es ja so, wenn ich die LEDs im Multiplexbetrieb ansteure, sie
nur für eine Bruchteil einer Sekunde leuchten (genau 5ms), daher brauche
ich ja auch den vielfachen Strom. Habe mir da ne Formel für rausgesucht
und komm auf ca. 50mA pro LED.
Habe versucht, den Strom mit Transistoren zu erhöhen, aber zuckt alles
nicht wirklich. Auch mit Darlington-Arrays, sprich nem uln2803 zur
Strombegrenzung steig ich da nicht durch.
Kann mir da einer n Rat geben, wie ich das schalten muß, damit auch bei
Ansteuerung aller LEDs die Helligkeit wie bei 0Hz ist.
Danke und Gruß
Jan
Nein, die sind direkt an die decoder angekorkt. wenn nur eine LED
angesteuert wird, ist die Helligkeit genau richtig, daher habe ich die
Widerstände letztendlich weggelassen.
du kannst nicht beidseitig mit 1 aus n-Dekoder arbeiten, in dem Fall
kannst du immer nur eine einzige LED zur gleichen Zeit einschalten, was
bei 2x5x7-Matrix ein Tastverhältnis von 1:70 bedeuten würde.
Wenn du auf den rows mit Dekoder arbeitest, mußt du die columns parallel
anlegen, ist zwar immer noch ein Tastverhältnis von 1:14, das geht aber.
Ich versuche meist, mit max. 1:8 auszukommen.
Die Stromstärke lässt sich nicht beliebig steigern, auch ist der
Zusammenhang zwischen integraler Stromstärke und Leuchtkraft nicht
linear.
Ansonsten wirst du auch ein Problem mit der Spannung haben, der
Spannungsabfall an den LEDS steigt mit der Stromstärke und an den
Treibern fällt auch einiges ab, so dass der Strom auch ohne Widerstände
einfach nicht höher werden kann. Dazu kommt, dass viele Matrix-Anzeigen
lausige LEDs drin haben, besonders mit Kingbright habe ich da schlechte
Erfahrungen gemacht.
@crazy horse:
Hmm, ich dachte, ich könnte jetzt zwischen den Ausgängen der Dekoder und
den LEDs die Schaltung, sprich "Stromverstärkung" bauen. Wenn ich die
Columns parallel ankorke, gehen mir ja ne Menge Ports flöten. Das ist
mit dem Testboard und nem 8515 noch egal, aber das ganze soll nachher
nen 2313 oder kleiner machen. Aber selbst wenn ich sie parallel
anstöpsel, muß ich sie ja dennoch im "Multiplex-Betrieb" ansprechen,
sprich ich komme wieder auf meine 5 ms Leuchtdauer pro LED. Und dafür
benötige ich eben den Strom :)
Ich hab zur Zeit 2 Kingbrights drinne :)
Kannst Du mir noch nen Tip geben? Wie gesagt, je schneller ich sie
ansteuer, desto dunkler werden sie, hehe. is ja logisch...
Danke
Jan
Hallo Jan,
kenne deine Schaltung natürlich nicht genau. Habe daher mal eine kleine
Zeichnung angehängt wie man es vielleicht machen kann. Die wesentlichen
Problempunkte sind in den obigen Antworten ja schon aufgeführt. Ich
denke dein Problem ist im wesentlichen das, dass du den erforderlichen
Strom gar nicht zustande bringst. Vielleicht hilft dir da die Zeichnung.
Man muss sich im klaren sein, dass man in der Spaltenleitung bis zu 350
mA schalten muss (wenn durch eine LED 50 mA fließen sollen). Dafür
braucht man schon einen etwas stärkeren Transistor oder besser eine
Darlingtonstufe. Dann muss man auch noch zurückrechnen ob der treibende
Port oder Dekoderpin den Basistrom liefern kann
(Kollektorstrom/Stromverstärkung). Für die Zeilenansteuerung würde ich
ein Latch oder Schieberegister (spart Pins) verwenden. Sowohl für die
Spalten wie für die Zeilen einen 1 aus n Dekoder zu verwenden macht echt
keinen Sinn. (steht aber ja schon oben sehr ausführlich). Für die
Zeilentransistoren werden normale Transistoren reichen, da diese ja nur
50 mA schalten müssen.
Hier aber mal noch ne Frage: 50 mA verteilt auf 14 Spalten gibt einen
mittleren Strom von (50mA/14) 3,5 mA. Das müssen dann schon recht gute
LEDs sein. Wenn es mehr Strom sein soll wird halt alles noch etwas
härter, aber da solltest du dir auch aus diesem Grund überlegen, ob du
ein Multiplex mit 1:8 überschreiten möchtest. Je höher die Multiplexrate
um so höher die notwendigen Stromimpulse und die machen dann irgend wann
echt Ärger.
Gruß
Meinrad
Hi,
ich hatte die gleichen Probleme und habe es nachher nicht weiter
verfolgt weil fuer mich der Aufwand zugross war. Ich habe mir dann
lieber ein 16x1 Lcd gekauft. Somit brauchte ich nur 6 I/o Ports. In
einem Beitrag war mal hier ein schoener Link zu einer Bastlerseite fuer
7 Segment Anzeigen ... Ich hoffe jemand weiss welche ich meine. Ich muss
mal zu Hause schaun ob ich sie noch habe .... Aber vom Kostenaufwand
(Demultiplexer usw) kommt man eigentlich auf den gleichen Preis wie fuer
ein 16x1 Lcd.
Mfg Dirk
@Meinrad
Hallo Meinrad,
vielen Dank für Deine ausführliche Hilfe und Deine Zeichnung.
Ich wollte für die Zeilen auch nen Schieberegister wie den 74HC595
nehmen, allerdings kenn ich mit mit der Programmierung so gut wie nicht
aus, da ich das STK500-Board seit ner Woche hab und bis jetzt nur weiß,
wie man Ports schaltet, hehe. Dementsprechend besteht mein Code auch nur
aus "An" und "Aus" der einzelnen Pins; und das in zeitlicher schneller
Reihenfolge. Solange nur eine Funzel leuchtet ist ja auch alles gut :-)
Wenn Du mir sagen kannst, wie ich so'n Schieberegister ansteuere, würde
mir das sehr weiterhelfen. Ich hab das ganze Zeugs in Bascom
geschrieben.
Nochmal zur Schaltung:
Ich habe jetzt nen 4514 4-16 Dekoder für die Columns und nen 74HC138 3-8
Dekoder für die Rows genommen (der invertiert). Am Ende hab ich dann
also 7 Leitungen, wobei ich die Columns, also den 4514 an portc und die
rows an porta angeknotet habe.
Ziel ist eigentlich, auf einer Matrix beliebiger Größe verschiedene
Muster, Figuren, was auch immer darstellen zu können. Und um evtl.
Fragen vorzubeugen: Ich möchte das nicht mit nem LCD machen :-)
Danke
Jan
Wenn ich das richtig verstehe, hast Du 2 Dekoder, d.h. Du mußt mit einem
Tastverhältnis 1/70 multiplexen.
Das dürfte kaum gehen.
Üblich ist es, die Spalten z.B. über ein Schieberegister parallel
anzusteuern und nur die Reihen zu multiplexen. Damit ist das
Tastverhältnis dann nur 1/7, d.h. beherrschbar und die Helligkeit
ausreichend.
Peter
Hallo Peter!
Danke für Deinen Beitrag. Wenn einer von Euch mir jetzt noch sagen kann,
wie ich son Schieberegister ansteuere?! Ich hab mir mal die Truth Table
von so nem Teil angeschaut, weiß aber nicht, wie ich es genau
programmieren bzw. anschließen soll.
Hatte mir auch noch überlegt, einfach ne Handvoll Flip-Flops zu nehmen,
z.B. 74 493er, die ich mit nem Clock schalte. Ist das so was ähnliches?
Sorry für die dämlichen Fragen, bin halt nicht so fit in Digitaltechnik,
hehe . . .
Jan
Ein Schieberegister sind mehrere D-FFs hintereinander mit gemeinsamen
Takt.
Man kann einfache Schieberegister (z.B. 74HC164) nehmen, muß dann aber
beim Schieben dunkeltasten.
Oder man nimmt Schieberegister mit Latch (z.B. 74HC595), da kann man die
neuen Daten schon reinschieben, während die alten noch angezeigt werden
und dann alles mit einem einzigen Takt ins Latch übernehmen.
In meinem Beispiel findest Du die Ansteuerung eines 74HC164:
http://www.mikrocontroller.net/forum/read-4-32158.html
Wenn Dein MC aber ne Hardware-SPI hat, gehts darüber einfacher.
Peter
Hallo Jan,
Wenn ich dein Projekt richtig einschätze gibt das ja so eine mächtig
große Stadionsanzeige.
Da wird dir wohl nichts anderes übrig bleiben, als diese in mehrere
elektrisch eigenständige Module aufzubauen und diese über einen BUS
(serielle oder paralle) anzusteuern. Eine einfache Matrix mit 1000
Spalten x 1000 Zeilen geht ganz sicher nicht (auch nicht wenns nur 100
sind), denn erstens taugt die Multiplexrate nichts mehr und zweitens
sind die Impulsströme theoretisch viel zu hoch (praktisch werden sie die
Dioden nicht verkraften).
Die Ansteuerung eines Schieberegisters ist eigentlich nicht so die Welt.
Aber da steht oben ja schon wie es geht.
Solltest du dich mit einer Modulbauweise, sagen wir mal pro Modul eine
Matrix mit 8 * 8 (sind ja dann schon 80 LEDs) anfreunden, dann übernimmt
die Steuerung solch eines Moduls am besten wieder ein kleiner Controller
über zwei 8 bit Ports, ohne viel weitere digitaler Hardware. Die Module
kommunizieren dann am besten über einen Bus mit einem Host der die Daten
für die einzelnen Module bereit hält.
Gruß
Meinrad
Hab mir nochmal n paar Datenblätter angesehen und werde das jetzt mal
mit nem 4093 Schieberegister probieren.
@Meinrad
Soooo groß sollte das auch nicht werden :-) Hatte so an max. 18 Module,
sprich 6x3 = 630 LEDs gedacht. Das Ganze ist auch nur so just for Fun,
da ich mal Lust hatte, sowas zu machen. Später hatte ich dann vor, per
Taster o.ä. Texte bzw. Figuren darzustellen.
Dann kann ich ja auch Deine Schaltung mit den Transen von oben nehmen?!
Mein Netzteil liefert bis 12A bei 5V, also Strom is da, hehehe...