Forum: Mikrocontroller und Digitale Elektronik Konstantstromquelle


von Jan (Gast)


Lesenswert?

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

von Günter König (Gast)


Lesenswert?

Gibt es Vorwiderstände f. die Anzeigen?

Günter

von Jan (Gast)


Lesenswert?

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.

von crazy horse (Gast)


Lesenswert?

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.

von Jan (Gast)


Lesenswert?

@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

von Oliver (Gast)


Lesenswert?

Hallo Jan,

pack einen dicken Elko parallel an den Stromausgang. Der sollte die 
plötzlich auftretenden Stromspitzen versorgen können.

Grüße
Oliver

von Meinrad Götz (Gast)


Angehängte Dateien:

Lesenswert?

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

von Dirk (Gast)


Lesenswert?

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

von Jan (Gast)


Lesenswert?

@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

von Peter D. (peda)


Lesenswert?

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

von Jan (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Meinrad Götz (Gast)


Lesenswert?

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

von Jan (Gast)


Lesenswert?

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...

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.