Forum: Mikrocontroller und Digitale Elektronik Ansteuerungsfrage LED Cube von ELV


von Flo B. (flo_b78)


Angehängte Dateien:

Lesenswert?

Hi,

http://www.elv-downloads.de/downloads/Leseproben/Journal/04-2009/85272_LED_Cube_LC444.pdf


ich habe eine kleine Frage zur Ansteuerung der LEDs im Cube (siehe 
angehängte Leseprobe).

Also wie die Massekontakte 1 bis Massekontakt 16 gesteuert werden ist 
mir klar. Mithilfe der zwei ULN2803 welche hinter 2 8Bit 
Schieberegistern vom uC hängen.

Aber was mir nicht ganz klar ist, wie werden die Ebenenkontakte 1 - 4 
gesteuert.

Die zwei ULN sind ja nur für die MK1-16 da.

"Wird z. B. der Massekontakt MK 1 über den Treiberbaustein
IC 8 mit dem Massepotential verbunden, können nun die
vier übereinanderliegenden LEDs über die Ebenenkontakte
EK 1 bis EK 4 gleichzeitig mit Strom versorgt werden."

Wo findet die Steuerung der Ebenekontakte statt, welcher Baustein macht 
das?

Noch eine weitere Frage hätte ich.

nehmen wir an im Schieberegister ist die Kombination: 0010 0000 | 0000 
0000
Dann kann die nächste Kombinatione auch 0000 1000 | 0000 0000 sein oder?

Also das Bit muss nicht immer nur um 1 nach links oder rechts geschoben 
werden? ich kann da ganze auch öfter verschieben bevor ich es an die 
ULNs weitergeb oder?


Viele Grüße
Florian

von MaWin (Gast)


Lesenswert?

> Wo findet die Steuerung der Ebenekontakte statt, welcher Baustein
> macht das?

Der Microcontroller.

Er hat 4 Ausgänge, die direkt die 4 Konstantstromquellen steuern.

Die Schaltung ist extrem unglücklich auf 1:16 Multiplex strukturiert,
und kommt bei 84mA Gesamtstrom nur auf 5mA LED Strom.

Hätte man Konstantstromsenken (CAT4016, Darisus) verwendet, bräuchte man 
viel weniger Bauteile und nur 4 Schalttransistoren und betriebt im 1:4 
Multiplex je 16 LEDs mit 80mA für 20mA Druchschnittststrom, also 4-fache 
(mögliche) Helligkeit, und 1.3A Gesamtstrom.

von Flo B. (flo_b78)


Lesenswert?

MaWin schrieb:
>> Wo findet die Steuerung der Ebenekontakte statt, welcher Baustein
>> macht das?
>
> Der Microcontroller.
>
> Er hat 4 Ausgänge, die direkt die 4 Konstantstromquellen steuern.
>
> Die Schaltung ist extrem unglücklich auf 1:16 Multiplex strukturiert,
> und kommt bei 84mA Gesamtstrom nur auf 5mA LED Strom.
>
> Hätte man Konstantstromsenken (CAT4016, Darisus) verwendet, bräuchte man
> viel weniger Bauteile und nur 4 Schalttransistoren und betriebt im 1:4
> Multiplex je 16 LEDs mit 80mA für 20mA Druchschnittststrom, also 4-fache
> (mögliche) Helligkeit, und 1.3A Gesamtstrom.


danke für deine schnelle Antwort. Ich habs mittlerweile auch gefunden.

"Die vier NPN-Transistoren wiederum werden direkt vom Mikrocontroller
IC 1 über die vier intern erzeugten PWM-Signale
gesteuert."

kannst du mir noch sagen, ob ich das mit dem Schieberegister richtig 
verstanden habe. Also das Bit wandert während den Durchläufen nicht 
immer um 1 nach rechts/links sondern ich kann das an eine beliebige 
Stelle verschieben und Setze das dann innerhalb einer Zeitspannge auf 
z.B 3 Stellen, damit diese 3 LED dann scheinbar "gleichzeitig" leuchten, 
und diese Intervalle lasse ich dann solange hintereinander weglaufen 
also z.B

1000 0000 | 0000 0000
0000 1000 | 0000 0000
0000 0000 | 0000 0001

bis ich andere LEDs ansteuern will? in meinen Beispiel würden also die 
MK1,5,16 so schnell nacheinander anteuern, dass die 3 LEDs solange 
leuchten, bis ich die Schleife verlasse und ein anderes Bitmuster an die 
Schieberegister sende. (natürlich immer nur 1 Bit gesetzt)

LG

von Karl H. (kbuchegg)


Lesenswert?

Flo B. schrieb:

> kannst du mir noch sagen, ob ich das mit dem Schieberegister richtig
> verstanden habe. Also das Bit wandert während den Durchläufen nicht
> immer um 1 nach rechts/links sondern ich kann das an eine beliebige
> Stelle verschieben und Setze das dann innerhalb einer Zeitspannge auf
> z.B 3 Stellen, damit diese 3 LED dann scheinbar "gleichzeitig" leuchten,

Man könnte das so machen, tut man aber nicht.
Tatsächlich läuft das Bit reihum von LED 0 bis zur LED 16 und dann gehts 
wieder von vorne los.

von Flo B. (flo_b78)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Flo B. schrieb:
>
>> kannst du mir noch sagen, ob ich das mit dem Schieberegister richtig
>> verstanden habe. Also das Bit wandert während den Durchläufen nicht
>> immer um 1 nach rechts/links sondern ich kann das an eine beliebige
>> Stelle verschieben und Setze das dann innerhalb einer Zeitspannge auf
>> z.B 3 Stellen, damit diese 3 LED dann scheinbar "gleichzeitig" leuchten,
>
> Man könnte das so machen, tut man aber nicht.
> Tatsächlich läuft das Bit reihum von LED 0 bis zur LED 16 und dann gehts
> wieder von vorne los.


Ok dann habe ich die Schaltung doch nicht verstanden :(.

Wie wird denn dann bei dem LED Cube gemultiplexed? Ich dachte die MK1-16 
sind Steuerleitungen. Aber wenn man die garnicht ansteuern kann, bleiben 
ja nur noch die 4 Ebenenkontakte übrig um Einfluss darauf zu nehmen 
welche Kombination aus EK und MK mit Strom versorgt wird.

1.  1000 0000 | 0000 0000
2.  0100 0000 | 0000 0000
3.  0010 0000 | 0000 0000
...
...
...
15. 0000 0000 | 0000 0010
16. 0000 0000 | 0000 0001


ok ich probiere es nochmal.

Wenn ich also 3 Bestimmte LEDs gleichzeitig leuchten lassen will.

Dann lasse ich das Schieberegister also einfach durchlaufen und setze 
dann nur zB bei 2. 3. und 16. die entsprechenden Ebenenkontakte auf 
durchschalten (Ebene unter Strom) und bei den anderen MK Kombinationen, 
lasse ich meine 4 Ebenen einfach aus?

Brauche das Grundverständnis für eine Studienarbeit. Der eigentlich 
Hauptteil befasst sich mit einem JavaProgramm...


LG und Danke

von Karl H. (kbuchegg)


Lesenswert?

Flo B. schrieb:

> Wie wird denn dann bei dem LED Cube gemultiplexed? Ich dachte die MK1-16
> sind Steuerleitungen. Aber wenn man die garnicht ansteuern kann,

Das man die 'gar nicht' ansteuern kann, hab ich nicht gesagt.

> ja nur noch die 4 Ebenenkontakte übrig um Einfluss darauf zu nehmen
> welche Kombination aus EK und MK mit Strom versorgt wird.

So wie das verschaltet ist und so wie sich die Macher die PWM zur 
Helligkeitssteuerung gedacht haben, kann es nur so gehen:

Mit dem MK1-16 wird eine komplette Säule ausgewählt. Über die anderen 4 
Steuerleitungen (die, die mit einer PWM beaufschlagt werden können) 
werden die 4 übereinander liegenden LED je nach Helligkeit eine zeitlang 
brennen gelassen. Danach gehts weiter zur nächsten Säule.

> Wenn ich also 3 Bestimmte LEDs gleichzeitig leuchten lassen will.

Dein Gedankenfehler ist, dass du denkst, das würde irgendwas aussagen 
oder ändern ob du jetzt 3 oder 4 oder 15 oder 34 LED brennen lassen 
willst.

Dem ist nicht so!

Der Multiplexmechanismus ist immer derselbe, egal wieviele LED 
eingeschaltet bzw. mit bestimmter Helligkeit brennen sollen. Der 
Multiplex-Machanismus muss auch dann noch klar kommen, wenn alle 64 LED 
eingeschaltet sind. Dem ist es im Grunde völlig egal, wieviele LED da 
brennen und wieviele nicht, das ändert nichts am Verfahren, wie der die 
LED reihum durchgeht und eine gewisse Zeit lang brennen lässt.

Ob da 3 oder 4 oder 33 LED brennen ist eine reine Sache dessen, wieviele 
und welche Bits in den internen Datenstrukturen, welche das am Cube 
sichtbare Abbild beschreiben, auf 0 oder 1 gesetzt sind. Der 
Multiplexmachanismus wertet das nur noch insofern aus, als er die 
jeweils zugehörige PWM auf einen bestimmten Wert setzt, wenn er reihum 
Säule für Säule durchgeht. Für den unterscheidet sich eine 
ausgeschaltete LED nur dadurch von einer eingeschalteten, dass er in dem 
einen Fall die PWM auf 0 und im anderen Fall auf 255 setzt, wenn gerade 
die Säule in der diese LED enthalten ist mit ihrer Anzeigen-Zeitscheibe 
drann ist.

von Flo B. (flo_b78)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ob da 3 oder 4 oder 33 LED brennen ist eine reine Sache dessen, wieviele
> und welche Bits in den internen Datenstrukturen, welche das am Cube
> sichtbare Abbild beschreiben, auf 0 oder 1 gesetzt sind. Der
> Multiplexmachanismus wertet das nur noch insofern aus, als er die
> jeweils zugehörige PWM auf einen bestimmten Wert setzt, wenn er reihum
> Säule für Säule durchgeht. Für den unterscheidet sich eine
> ausgeschaltete LED nur dadurch von einer eingeschalteten, dass er in dem
> einen Fall die PWM auf 0 und im anderen Fall auf 255 setzt, wenn gerade
> die Säule in der diese LED enthalten ist mit ihrer Anzeigen-Zeitscheibe
> drann ist.

Genau so habe ich es ja dann versucht zu erklären.

es werden die Säulen durchgeschalten:

1.  1000 0000 | 0000 0000
...
...
16. 0000 0000 | 0000 0001


Und immer bei der jeweiligen LED die ich in einem Zeitfenster 
aufleuchten lassen will, setze ich die entsprechenden EK1-4 auf "1".


natürlich macht es keinen unterscheid ob ich für 1 sek. 1 LED oder 64 
LED leuchten lassen will, dann setze ich einfach EK1-4 auf "1". Und in 
dieser 1 sek sind die Säulen ja schon tausendfach (genauen Wert müsste 
ich jetzt ausrechen mithilfe der Taktfrequenz) und es leuchten alle. 
Schalte ich für 0.5sek EK 1 und in den nächsten 0.5 sek EK4 auf "1" 
leuchten die 16 unteren und dann die 16 oberen.

möchte ich nur eine Säule zum leuchten bringen, muss ich alle EK1-4 
gleichzeitig setzen aber nur in einem Zyklus des Schieberegisters.

An das PWM habe ich mich bis jetzt noch nicht rangetraut, müsste aber 
meines Verständnis nach für das Multiplexen unrelevant sein. Durch die 
PWM wird ja nur die Leuchtkraft reguliert.

Gibt btw nur 0-F Möglichkeiten bei diesem Würfel.

Danke nochmal für deine Zeit und Mühe mir das zu erklären.

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.