Forum: Mikrocontroller und Digitale Elektronik LED 3D Würfel


von Chris R. (mrgreen)


Angehängte Dateien:

Lesenswert?

Hallo,
warum funktioniert die Schaltung so nicht?
Will ich Page=1 Row=1 Col=1 einschalten, dann leuchtet aber die gesamte 
Spalte auf Ebene 1 (also LEDs 1, 17, 33, 49).

Was ist denn falsch?

Mfg
Mr.Green

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Softwarefehler???

von Falk B. (falk)


Lesenswert?

@ Chris R. (mrgreen)

Deine Ansteuerung der Rows ist sehr unorthodox. Da hast du 
wahrscheinlich was falsch verstanden. Ne Emitterschaltung mit NPNs wäre 
dort wesentlich einfacher und besser. Und einie LED-Matrix mit drei 
Auswahlebenen ist wenig sinnvoll.

>Will ich Page=1 Row=1 Col=1 einschalten, dann leuchtet aber die gesamte
>Spalte auf Ebene 1 (also LEDs 1, 17, 33, 49).

>Was ist denn falsch?

Dein Verständnis einer LED-Matrix. Dabei werden seltenst LEDs 
einzeln angesteuert, sonder immer gruppenweise. Und schau dir einden 
Schaltplan an.

Page=1 Row=1 Col=1

Nur weil Page 2 = 0V ist, heisst das noch lange nicht, dass aus dem 
Emitter von T10, T15 und T20 kein Strom raus kommen kann. Der wird 
nämlich über die Basis geliefert, über Col=1 ;-)

Bau ein LED-Matrix wie der Rest der Welt und es wird funktionieren.

MFG
Falk

von Matthias L. (Gast)


Lesenswert?

>Will ich Page=1 Row=1 Col=1 einschalten, dann leuchtet aber die gesamte
>Spalte auf Ebene 1 (also LEDs 1, 17, 33, 49).

Ich vermute, das die Kaskadierung von Page/Col nicht korrekt arbeitet.
Schmeiß die Page-Tasnsistoren raus und mach das über die Ansteuerung.


>Ne Emitterschaltung mit NPNs wäre dort wesentlich einfacher und besser.

Find ich nicht. Kollektorschaltung anywhere ;-)

Aber du musst beachten, dass bei der pnp-Kollektorschaltung (Row) ein 
LOW ausgegeben werden muss, damit die entsprechende Zeile aktiviert ist.

von Frank B. (frankman)


Lesenswert?

1. Du möchtest PNP-Transistoren die "Rows" schalten, diese schalten aber 
nicht bei "1" sondern bei "0"
2. Die "Colums" und "Pages" möchtest Du mit NPN-Transistoren schalten. 
Diese verwendest du in "Emitter"-Schaltung. Daher das merkwürdige 
Verhalten.

Ich würde es so machen:
Verwende für die "Rows" die NPN-Transistoren, es geht für diesen Zweck 
auch das IC ULN2003 oder ULN2803. Wenn du NPN-Transistoren verwendest, 
lege die Emitter auf Masse. Die Kathode der LED´s schließt du an die 
Kollektoren an.
Dann kommen an die Anode der LED´s die Vorwiderstände.

Nun folgen PNP-Transistoren.
Die Colum und Page-Signale würde ich mit "UND"-Gattern verknüfen und 
dann damit die PNP-Transitoren steuern.

von Falk B. (falk)


Lesenswert?

@ Matthias Lipinsky (lippy)

>Find ich nicht. Kollektorschaltung anywhere ;-)

Klar, damit die Matrix mit ECL-Geschwindigkit muxen kann. . .
Und wieviel Spannungsabfall wollen wir und noch erlauben? Bei blauen 
LEDs wirds jetzt schon eng.

MFG
Falk

von Benedikt K. (benedikt)


Lesenswert?

Berechnet auch mal wieviel Spannung noch für die LEDs bleibt. In der 
Kollektorschaltung fallen etwa 0,8-1V ab, je nach Transistor und Strom. 
Das 3x, und da bleibt nichtmehr viel für die LEDs. Bei einem ULN2803 ist 
es ähnlich, da dieser noch mehr Spannung verbraucht.

von Matthias L. (Gast)


Lesenswert?

>das IC ULN2003 oder ULN2803.

iiiiiiiiih


>Diese verwendest du in "Emitter"-Schaltung.

Sechs Setzen.

Lass die Kollektorschaltung!


>Klar, damit die Matrix mit ECL-Geschwindigkit muxen kann. . .
24,56789MHz Ausgabefrequenz muss schon sein.
Warum? Weil wirs können ;-)

>Bei blauen LEDs wirds jetzt schon eng.

Davon steht nix da. Zweimal Kollektorschaltung sind 1,2..1,4V weg, 
ergibt 3,6V, bleiben 0,3V für den Vorwiderstand ;-)

Ist eng, aber eng ist gut ;-)

von Falk B. (falk)


Lesenswert?

@ Matthias Lipinsky (lippy)

>24,56789MHz Ausgabefrequenz muss schon sein.
>Warum? Weil wirs können ;-)

"Meiner" ist auch so gross genug . . .

>Ist eng, aber eng ist gut ;-)

Eng ist ein dehnbarer Begriff . . .

;-)

von Chris R. (mrgreen)


Lesenswert?

Falk Brunner wrote:
> @ Chris R. (mrgreen)
>
> Deine Ansteuerung der Rows ist sehr unorthodox. Da hast du
> wahrscheinlich was falsch verstanden. Ne Emitterschaltung mit NPNs wäre
> dort wesentlich einfacher und besser. Und einie LED-Matrix mit drei
> Auswahlebenen ist wenig sinnvoll.
>
>>Will ich Page=1 Row=1 Col=1 einschalten, dann leuchtet aber die gesamte
>>Spalte auf Ebene 1 (also LEDs 1, 17, 33, 49).
>
>>Was ist denn falsch?
>
> Dein Verständnis einer LED-Matrix. Dabei werden seltenst LEDs
> einzeln angesteuert, sonder immer gruppenweise. Und schau dir einden
> Schaltplan an.

Den von der LED-Matrix? Ich kann doch aber nicht 64 LEDs nebeneinander 
als Matrix verschalten und sie dann hinterher durch die Ansteuerung 
(Maskieren im Schieberegister meinetwegen) "stapeln"??
Ist das der Sinn dahinter?

Und warum scheint das hier zu funktionieren:
http://www.bralug.de/wiki-common/images/f/f7/Cube_matrix_schaltung.png

MfG
Mr.Green

von Falk B. (falk)


Lesenswert?

@ Chris R. (mrgreen)

>Den von der LED-Matrix? Ich kann doch aber nicht 64 LEDs nebeneinander
>als Matrix verschalten und sie dann hinterher durch die Ansteuerung
>(Maskieren im Schieberegister meinetwegen) "stapeln"??

Warum nicht? Die ELEKTRISCH Verschaltung sagt doch rein GAR NICHTS über 
die MECHANSICHE Anordnung aus.

>Ist das der Sinn dahinter?

Ja.

>Und warum scheint das hier zu funktionieren:
>http://www.bralug.de/wiki-common/images/f/f7/Cube_...

Weil das ne "echte" LED-matrix ist mir nur zwei Auswahlebenen.
Q1..3 schalten die Ebenen (Digits), die restlichen Transitoren das 
Muster der 9 LEDs. Klassischer 3:1 MUX mit 9 Segmenten pro Digit.

MFG
Falk

von Falk B. (falk)


Lesenswert?

Nachtrag. Die Schaltung ist aber auch nicht wirklich schön. Die 
Widerstände zur Strombegrenzung sitzen an der falschen Stelle.

MfG
Falk

von Uwe B. (boerge) Benutzerseite


Lesenswert?

Falk Brunner wrote:
> Nachtrag. Die Schaltung ist aber auch nicht wirklich schön. Die
> Widerstände zur Strombegrenzung sitzen an der falschen Stelle.
>
mag sein, hat deshalb auch ein kleines Manko (ist auf der Seite 
beschrieben), wurde auch hier schon mal diskutiert, funktioniert aber 
trotzdem so wie ich es mir vorgestellt hatte...

Grüße Uwe

von Master S. (snowman)


Angehängte Dateien:

Lesenswert?

ich habe einen 6x6x6-cube gebastelt und mit SPI angesteuert. 
funktioniert wunderbar und ist simpel. siehe attachment (ok, ist nicht 
gerade toll gemacht, aber egal). der würfel ist so aufgebaut, dass alle 
'minus' der LEDs auf einer ebene zusammengeschlossen sind und jeweils an 
ein Pad1..6 gehen, und alle 'plus' der übereinanderliegenden LEDs an ein 
gemeinsamer Con1..36 gehen. also, an Con1..36 wird das bild für die 36 
LEDs einer ebene angelegt und mit Pad1..6 wird eine ebene 
durchgeschaltet. bezüglich shiftregister schaust dir am besten den 
artikel auf dieser seite an.

in meinem fall müsste man folgendes durch den SPI-bus jagen:
Send_SPI([6 bytes für die 1. ebene] [0x01]);
wait(2ms);
Send_SPI([6 bytes für die 2. ebene] [0x02]);
wait(2ms);
Send_SPI([6 bytes für die 3. ebene] [0x03]);
wait(2ms);
Send_SPI([6 bytes für die 4. ebene] [0x04]);
wait(2ms);
Send_SPI([6 bytes für die 5. ebene] [0x05]);
wait(2ms);
Send_SPI([6 bytes für die 6. ebene] [0x06]);
wait(2ms);

ich weiss, nicht ob das offiziell so richtig ist und auch so gemacht 
wird, aber so funktioniert meiner mit lediglich 3 leitungen und braucht 
bei einem PIC18 etwa 2% ressourcen für die anzeige (interruptgesteuert).

von Master S. (snowman)


Angehängte Dateien:

Lesenswert?

hier mal ein 5sec-demo ;) ...bin immernoch am programmieren

von Matthias L. (Gast)


Lesenswert?

mp4 geht bei mir irgendwie nicht

>ich weiss, nicht ob das offiziell so richtig ist und auch so gemacht
>wird,

EIn offizielles richtig/falsch gibt es nur in BWL oder Jura ;-)

Wenn es funktioniert kann es zumindest nicht falsch sein. Höchstens 
nicht optimal.

Das delay() sollte raus...

von Master S. (snowman)


Lesenswert?

> mp4 geht bei mir irgendwie nicht
VLC installieren und du wirst 99% der videos abspielen können ;)

naja, das 'wait()' sollte nur symbolisieren, dass eine ebenen etwa 2ms 
angezeigt werden soll bevor die nächste ebene angezeigt wird 
(refresh-rate der LEDs sollte ca. 80x/sec sein)

edit: das ebenen-ein/ausschalten würde noch ein bisschen schöner sein 
mit einer BAT-diode zwischen basis und collector des transistors ;)

von Matthias L. (Gast)


Lesenswert?

>VLC installieren und du wirst 99% der videos abspielen können ;)

yo. sieht gut aus..


>naja, das 'wait()' sollte nur symbolisieren,

Timer...


>edit: die transistoren würden noch ein

Kollektorschaltung.. spart auch die Basiswiderstände

von Dominique G. (dgoersch)


Lesenswert?

Ich find so 'nen LED-Cube irgendwie irre sexy, und wollte auch schon 
immer mal mich daran machen. Wie verdrahtet ihr die Dinger? Lackdraht? 
Nehmt ihr normale LEDs? Und woher die Stabilität? In Acryl gefasst? 
Würde mal gerne ein Bild bei Licht sehen, wo man den Verdrahtungswust 
sieht.

Danke und Gruß
Dominique Görsch

von master snowman (Gast)


Lesenswert?


von Dominique G. (dgoersch)


Lesenswert?

master snowman wrote:
> meiner:

Danke, sehr schön. Die Querverbindungen in den einzelnen Ebenen dienen 
(bis auf je eine) ausschliesslich der Stabilität?

Gruß
Dominique Görsch

von Uwe B. (boerge) Benutzerseite


Lesenswert?

Dominique Görsch wrote:
> Wie verdrahtet ihr die Dinger? Lackdraht?
> Nehmt ihr normale LEDs? Und woher die Stabilität? In Acryl gefasst?
> Würde mal gerne ein Bild bei Licht sehen, wo man den Verdrahtungswust
> sieht.
>
http://bralug.de/wiki/3D-LED-Display#LED-Matrix

schaue dir die Bilder an, ich denke da erkennt man es ganz gut. Ich habe 
für meine 8x8x-Matrix 1mm-Silberdraht verwendet. Die LED-Kathoden einer 
Ebene sind alle miteinander verbunden. Die 8 Ebenen "stehen" auf 64 
Säulen in denen jeweils 8 übereinander liegende Anoden verbunden sind. 
Dieses Kontrukt ist erstaunlicherweise sehr stabil. Mittlerweile hängt 
mein Würfel um 90Grad gedreht an der Wand...

Als LEDs habe ich ganz normale superhelle mit gängigen Abstrahlwinkel 
genommen, es gibt aber mit Sicherheit optimalere Bauformen, die einen 
größeren Abstrahlwinkel haben (ist auch eine Sache des Geldes).

Im Gegensatz zu snowmans Würfel werden die Animationen bei mir auf einem 
PC generiert und via Ethernet online zum Würfel übertragen, also ein 
echtes Client-/Server-System, in dem die Matrix der "Anzeigeserver" ist. 
Dazu existiert auch, ähnlich wie bei snowman, ein (TCL-)Programm 
(Client), mit dem man Animationen erstellen und zum Würfel senden kann. 
Aber auch jede andere Anwendung, die sich an das definierte Protokoll 
hält, kann Bilder übertragen.

Ich hatte auch mal angefangen im MC ein paar autonome Animationen zu 
generieren, bin aber an Speichergrenzen gestossen. Es existiert 
mittlerweile eine speichersparende Firmware, mit der man soetwas wieder 
machen könnte...

Grüße Uwe

von kommutator (Gast)


Lesenswert?

Sieh mal beim "Labor" vorbei - da gibt es massig Tipps zum Aufbau, 
Schaltung, Software:

http://www.das-labor.org/wiki/Blinken_Borgs

von reflection (Gast)


Lesenswert?

Hier eine reichlich bebilderte Ausführung von meinem 8x8x8 Cube

http://www.ledstyles.de/ftopic5762.html

Gruss reflection

von Dominique G. (dgoersch)


Lesenswert?

Sehr schick, sehr schick. Hab grad auf YouTube ein Video von einem 
16x16x16 RGB-Cube gefunden, auch sehr geil ;)

OK, RGB scheidet ersteinmal allein aus Kostengründen aus, ich überlege 
gerade ob ich auch 8x8x8 nehme oder gleich 10x10x10, wobei das halt 
schon fast doppelt so viele LEDs sind... nunja, mal schauen.

Danke für die Anregungen, echt tolle Projekte!

Gruß
Dominique Görsch

von Chris R. (mrgreen)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
kann das so klappen?
Die ShiftRegs füttern je eine Ebene, die dann durch Row ausgewählt wird.
Meinem Verständnis nach sollte die Kollektorschaltung richtig sein,
oder?

Wie muss die Dimensionierung der Widerstände ausschauen? Eigentlich
treiben die Ausgangsstufen max. 20 mA; kann man einen höheren Pulsstrom
entnehmen?

Bei 20mA wäre es 100 Ohm; kann ich kleiner nehmen, ohne mir die 595 zu
braten?

MfG
Mr.Green

von Dominique G. (dgoersch)


Lesenswert?

Was spricht eigentlich dagegen, so einen 8x8x8-Cube aus 8 Matrizen mit 
8x8 LEDs an einem MAX7219 oder MAX7221 zu betreiben? Das war so meine 
erste Idee... da spart man sich das Gehampel mit Transistoren und 
Vorwiderständen doch.

Gruß
Dominique Görsch

von Master S. (snowman)


Lesenswert?

@Chris R.: sieht fast gut aus! :) nimm NPN-transitoren anstelle der PNPs

und als kleiner tip würde ich alle emitors der NPN-transistoren auf 
einen gemeinsamen NPN-transitor, welcher grundsätzlich immer 
durchschaltet - bzw. genau dann nicht, wenn du die reset-taste drückst. 
beim reset-tasten-drücken bleibt das bild in der ebene stehen und da du 
wegen impulsschaltung mehr strom durch die LEDs lässt, könnte es sonst 
sein, dass die LEDs zu viel strom abkriegen. der zusätzliche transistor 
(ev. MOSFET) (mit einem widerstand zwischen basis und ground) öffnet, 
wenn der uC ge-resetet wird und somit erköschen alle LEDs im 
reset-zustand.

edit: http://www.mikrocontroller.net/articles/Transistor

von reflection (Gast)


Lesenswert?

Ja das ist ja genau das was ich oben eigentlich schreiben wollte. Mein 
8x8x8 Cube ist ja mit MAX7221 aufgebaut :o)

Es hat unter dem bereits geposteten Link auch SCM's.

Gruss reflection

von Dominique G. (dgoersch)


Lesenswert?

Hab von beiden mal Samples angefordert und werd mich mit den Dingern mal 
beschäftigen...

Gruß
Dominique Görsch

von Chris R. (mrgreen)


Lesenswert?

@snowman: Mit dem Reset hast du Recht, daran hab ich mal wieder nicht 
gedacht :/
Ich wollte PNPs nehmen, damit ich mir den Widerstand am Emitter (bei nem 
NPN) spare.

Können die 595s denn auch Pulsströme von z.B. 40-50mA ab?

MfG
Mr.Green

von Falk B. (falk)


Lesenswert?

@  Chris R. (mrgreen)

>Können die 595s denn auch Pulsströme von z.B. 40-50mA ab?

Nicht wirklich.

MFG
Falk

von Master S. (snowman)


Lesenswert?

> Mit dem Reset hast du Recht, daran hab ich mal
> wieder nicht gedacht :/
ich bei meinem eben auch nicht.. :(

von Chris R. (mrgreen)


Angehängte Dateien:

Lesenswert?

Hallo,
der (hoffentlich) letzte Post zu einem eigentlich trivialen Bau.

Klappt das so? Oder hab ich wieder was vergessen?

Wie habt ihr eigentlich den Einstieg in die Elektronik bekommen? Ich 
bastel nun seit einiger Zeit rum, aber es hapert vorne und hinten :/

MfG
Mr.Green

von Matthias L. (Gast)


Lesenswert?

>Klappt das so? Oder hab ich wieder was vergessen?

Die Schieberegister noch an Betriebsspannung legen, Abblockkondensatoren 
einbauen, und am Besten direkt über die Matrix, also direkt zwischen den 
Plus- und Minuspolen an den Transistoren noch paar Block-Cs.

>Ich wollte PNPs nehmen, damit ich mir den Widerstand am Emitter (bei nem
>NPN) spare.

Warum hast du das nicht gelassen?

von Chris R. (mrgreen)


Lesenswert?

Matthias Lipinsky wrote:
>
> Warum hast du das nicht gelassen?

WEil snowman recht hat; geht mein µC Ausgang auf Null, brennt mir alles 
durch. Außer ich baue mir ein zusätzlich NOT ein...

von Matthias L. (Gast)


Lesenswert?

Du musst aber folgendes Bedenken:

Auch eine Kollektorschaltung schaltet nur, wenn Basisstrom fließt.

Im Resetzustand wird zwar "nichts" ausgegeben, aber die Pins sind in 
High-Z, nicht in aktiv-Low.

Aber ist ok.

von Master S. (snowman)


Lesenswert?

kann man aber mit einem grossen widerstand zwischen basis und ground 
lösen ;)

von Chris R. (mrgreen)


Lesenswert?

Matthias Lipinsky wrote:
> Du musst aber folgendes Bedenken:
>
> Auch eine Kollektorschaltung schaltet nur, wenn Basisstrom fließt.
>
> Im Resetzustand wird zwar "nichts" ausgegeben, aber die Pins sind in
> High-Z, nicht in aktiv-Low.
>
> Aber ist ok.

AChso, also hätte ich die PNPs doch lassen können?? Oder hat das einen 
anderen Nachteil?

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.