Forum: Mikrocontroller und Digitale Elektronik LED-Cube, Verständnissproblem


von üpsilon D. (ydubon)


Lesenswert?

Hallo,
ich habe vor mir einen LED-Cube nach folgender Anleitung zu bauen:

http://www.mikrocontroller.net/articles/LED_cube

Jedoch verstehe ich nicht wie genau das mit dem Ansteuern der Zeilen 
funktionieren soll.

Was ich bis jetzt verstanden habe ist, das die Ebenen über die Ports 
PD0-PD7 geschaltet werden, jedoch verstehe ich nicht, wie die einzelnen 
Zeilen dargestellt werden, da hierfür nur die Ports PC0-PC7 vorgesehen 
sind.

Ich währe euch sehr dankbar, wenn mir jemmand dies erklären könnte :).

PS: Da ich mir bereits zum Testen einen LED-Cube (3x3x3) gebaut habe, 
verstehe ich das Prinzip schon.

von Java 6 Programmier­handbuch (Gast)


Lesenswert?

Ohne den Artikel vollständig gelesen zu haben: Weißt du, was ein 
Schieberegister ist, und was Multiplexing ist? Dann solltest du 
eigentlich dahinter kommen.

LG, Björn

von üpsilon Dubon (Gast)


Lesenswert?

Hallo,
ersteinmald anke für die schnelle Antwort.

Zu deinen Fragen:
Das Multiplexing beschreibt das durchschalten der 8 Ebenen, da niemals 
alle Gleichzeitig leuchten können. Dies liegt an der Ansteuerung. 
Dadurch, das dies aber sehr schnell passiert, sieht es wie ein Bild 
aus....Ich hoffe, dass ich das soweit richtige interpretiere :)

Ein Schieberegister verstehe ich bis jetzt so:
Ein Bit wird reingeschoben, da es das Erste ist, an die erste Stelle.
SObald ein zweites Bit hinzukommt oder besser gesagt "rein feschoben 
wird" rutscht das erste Bit von eben einen weiter.

Ich glaube mein Fehler liegt daran, das ich das
74HC573
nicht ganz verstehe..

von Ich (Gast)


Lesenswert?

Ich hoffe, ich hab den Schaltplan auf die Schnelle jetzt richtig 
verstanden.
Nicht PortD, sondern PortC schaltet die Ebenen ein/aus.
Seite 1 von http://www.mikrocontroller.net/part/74HC573 sagt dir, was 
der 74HC573-Chip macht.
An PortD werden die Daten für einen der 573s angelegt und dann mit der 
richtigen Leitung aus PortA in den richtigen Chip übernommen. Nachdem 
alle Chips geladen sind, wird das Ergebnis auf einer der Ebenen mit 
PortC dargestellt.
Danach die nächste Ebene, usw. siehe Multiplexing.

von andy (Gast)


Lesenswert?

Hallo,hab hier meinen 8x8x8 Cube am laufen,tolle sache.
Also ich habe hier 8 Schieberegister hintereinander geschaltet.Jede 
Ebene besteht aus 8 reihen.Wenn du weisst,wie die unterste Ebene 
aussehen soll,schiebst du die 8 Bits in die Schieberegister(erstes 
reingeschobenes bit ist zum schluss im 8 Register.Nun wird die komplette 
Ebene je nachdem wie du es verschaltest hast nach GND oder VCC 
geschaltet.Ergebniss ist das die unterste Ebene das gewünschte Muster 
anzeigt.Dann ausschalten,8 bits der zweiten ebene 
reinschieben,anzeigen,ausschalten usw.Das ganze mache ich mit knapp 61 
Hertz,sprich der Cube wird pro Sekunde 61 durchlaufen.
Hoffe du verstehst das Prinzip so wie ich es erklärt habe.

gruss

andy

von üpsilon D. (ydubon)


Lesenswert?

Hallo,

So langsam komme ich dahinter wie das ganze funktioniert, wenn man alles 
richtig macht.

Zu meinem Verständnisproblem bezüglich des 74HC573 :
Wenn ich das jetzt richtig gelesen und übersetzt habe passiert 
folgendes:

Wenn "Latch Enable" dauerhaft auf High währe, würden die Eingangssignale 
1:1
auf die Ausgänge gelegt.
Wenn nun aber der "Latch Enable" zu Beginn auf Low gesetzt ist, werden 
die Eingangssignale gespeichert und erst auf die Ausgänge gelegt, wenn
"Latch Enable" auf High gesetzt wird.
Ich hoffe, das ich das nun richtig verstanden habe :)

Abschließend hätte ich noch eine Frage:

>Ich habe den kompletten Cube in einem uint8_t 8x8 Array organisiert,
>die 8 Bits jedes Elements sind die 3. Achse.
>In Verbindung mit dem Controller können so die Variablen direkt
>auf den entsprechendne Port gelegt werden

Den Punkt mit den 3-Achsen kann ich irgentwie nicht verstehen... :(


Ich hoffe, das mir jemand diese Fragen beantworten bzw. bestätigen kann.

von Achim M. (minifloat)


Lesenswert?

üpsilon Dubon schrieb:
> Wenn "Latch Enable" dauerhaft auf High währe, würden die Eingangssignale
> 1:1
> auf die Ausgänge gelegt.
> Wenn nun aber der "Latch Enable" zu Beginn auf Low gesetzt ist, werden
> die Eingangssignale gespeichert und erst auf die Ausgänge gelegt, wenn
> "Latch Enable" auf High gesetzt wird.
> Ich hoffe, das ich das nun richtig verstanden habe :)

Ist der Latch Enable wirklich Pegelsensitiv?
Oder reagiert der auf Flanken?
mfg mf

von Seltener Gast (Gast)


Lesenswert?

Mini Float schrieb:

> Ist der Latch Enable wirklich Pegelsensitiv?
> Oder reagiert der auf Flanken?

Bei einem Latch ist er tatsächlich pegelsensitiv. Das ist der 
Unterschied zwischen einem Latch und einem Flipflop (vergleiche einmal 
den 74HC573 mit 74HC574).

von Nobody (Gast)


Lesenswert?

Dann kann ich jetzt ja anfagen mir den Würfel zu bauen, aber wie meint 
er das mit den 3 Achsen ?

>Ich habe den kompletten Cube in einem uint8_t 8x8 Array organisiert,
>die 8 Bits jedes Elements sind die 3. Achse.
>In Verbindung mit dem Controller können so die Variablen direkt
>auf den entsprechendne Port gelegt werden

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.