Forum: Mikrocontroller und Digitale Elektronik LED Cube so richtig?


von Ilja A. (i_axp9)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe mir vorgenommen einen LED-Cube (6x6x6) zu bauen und bereits
einige Gedanken dazu gemacht. Daher würde ich gerne wissen ob es so
realisierbar wäre.(Kenne mich in diesen Gebieten nicht so gut aus und es
ist mein erstes Projekt)



1.Zum Schaltplan
Mit wurde ein bc337 Transistor geraten. Sollte aber auch mit einem bc547
gehen oder nicht, da ich sie nur als Schalter nutze für die 5v?

Wenn ich eine ganze Ebene zum Leuchten bringe (36 LEDs), dann müsste ich
statt der 6 Transistoren für die Kathoden doch Mosfets benutzen, weil
der Strom für Transistoren zu groß wird?(20ma bzw. 100ma wegen
Multiplexing)

Ich wollte den ATm8a über das myAVR Board MK2 Programmieren und dann auf
die Platine umstecken. Oder sollte ich ihn lieber im Board lassen und
mit den 18 Pins arbeiten, also eine weitere Kaskadierung machen?

Wäre der Schaltplan (abgesehen von den 6 Ebenen/Katoden Transistoren)
richtig?

Wollte das mit Batterie versorgen(wahrscheinlich Falsch)oder sollte ich
ein Netzteil verwenden?Falls ja, welches? Es müsste ja min. 5v hergeben.


2.Widerstände
Weiß leider nicht wie viel Spannung der Schieberegister 74hc595 liefert.
Er bekommt ja durch den Atm8a 4,5-5V, die er weiter überträgt. Aber wenn
ich jetzt alle 8 Ausgänge am Schieberegister "aktiviere", kommen ja 
nicht
aus jedem Ausgang 5v. Daher kenne ich nicht den Basis Widerstand.

Die LEDs wollte ich mit  2,2V und 20ma betreiben daher habe ich ein
Widerstand von 100ohm gewählt.
Aber wenn ich alle 6 LEDs der reihe leuchten lasse reicht der Strom
nicht aus. Sie benötigen dann 120ma. Mit dem Multiplexing könnt ich jede
LED mit 120ma für kurze Zeit blinken lassen. Müsste dann ja ein 22ohm
Widerstand wählen (für 100ma).


3.Bascom
Wollte das ganze mit BASCOM Programmieren und habe mir bereits diese
Seite dazu angeschaut.
(http://www.elv.de/Mikrocontroller-Einstieg-mit-BAS...)
Wollte es über die SOFT-SPI Methode Probieren aber verstehe nicht
ganz wozu der DIN = PINB.4 nötig ist.
Hier der Code:http://www.elv.de/journal_pic.aspx?id=962057&size=
(Config Spi = Soft, DIN=PINB.4?? ,Dout = SER ,Ss = RCK , Clock = SCL
...)

Ich brauch ein Dout, Ss und Clock für jedes Schieberegister oder nicht?
Oder könnte ich den SCL(Reset) weglassen(brauche den ja nicht) um
Ausgänge zu Sparen?


4.Allgemeine Fragen
Wenn ich es mit 100ma Betreibe kann ich nur ein LED, zur selben Zeit, 
pro
Reihe (die 6 LEDS der Anode) blinken lassen und in der Ebene alle 36?
Vieleschreiben das nur 1 pro Eben oder sogar nur 1 im ganzen Cube.


Eventual bilden sich noch weitere Fragen.
Würde mich über Antworten freuen und DANKE in voraus.

: Bearbeitet durch User
von OldMan (Gast)


Lesenswert?

Die Transistoren kannst Du auch mit einem ULN2003 ersetzen, die können 
mehr Strom und brauchen nicht so viel Platz wie die Transistoren, 
Widerstände, usw.
Die Schieberegister steuerst Du falsch an. Die kann man kaskadieren, 
dadurch benötigt man weniger Ports am uC.
Lies Dir das einmal durch:
http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI

von Ilja A. (i_axp9)


Lesenswert?

OldMan schrieb:

> Die Schieberegister steuerst Du falsch an. Die kann man kaskadieren,
> dadurch benötigt man weniger Ports am uC.

.nach bearbeitet.
Solle alle an ein Schieberegister verbinden(48 Bit)?
Dann brauche ich ja nur 3 Ausgänge ma uC.
Oder Aufteilen?

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

muss das passiv erfolgen?

ich würde an RGB LED denken mit WS2812b, entweder als Stripes mit 
Arduino oder von mir aus auch mit Einzel RGB LEDs mit WS2812b 
integriert.

das wäre simpel

FastLED.LIB ein Arduino nach Wahl von nano bis miniPRO mit m328p oder 
den mighty m1284p

oder liebst du das verlöten?

von MaWin (Gast)


Lesenswert?

Ilja A. schrieb:
> Die LEDs wollte ich mit  2,2V und 20ma betreiben daher habe ich ein
> Widerstand von 100ohm gewählt.
> Aber wenn ich alle 6 LEDs der reihe leuchten lasse reicht der Strom
> nicht aus. Sie benötigen dann 120ma. Mit dem Multiplexing könnt ich jede
> LED mit 120ma für kurze Zeit blinken lassen. Müsste dann ja ein 22ohm
> Widerstand wählen (für 100ma).

Wohl kaum.

Bei 36 x 6 kann man nicht alle 6 der Spalte zu einer leuchten lassen, 
man müsste 36 Spalten durcharbeiten,
sondern kann nur alle 36 einer Zeile leuchten lassen und muss die 6 
Zeilenen nacheinander durcharbeiten,,

Wenn du einen mittleren Strom von 20mA haben willst, brauchst du 120mA, 
und T1 muss dann 36*0.12 = 3.6A schalten. Das schafft von der 
Stromverstärkung her kein Bipoolartransistor und kein ULN2803, nimm 
LogicLevel MOSFETs.

von Ilja A. (i_axp9)


Lesenswert?

Joachim B. schrieb:
> muss das passiv erfolgen?
Verstehe die frage leider nicht

 > ich würde an RGB LED denken
Benutze diese LEDs nicht. Hätte ich dazu schreiben sollen am Anfang.

von Ilja A. (i_axp9)


Lesenswert?

MaWin schrieb:

> Wenn du einen mittleren Strom von 20mA haben willst, brauchst du 120mA,
> und T1 muss dann 36*0.12 = 3.6A schalten. Das schafft von der
> Stromverstärkung her kein Bipoolartransistor und kein ULN2803, nimm
> LogicLevel MOSFETs.

Aber ich könnte die ULN2803 für die Spalten benutzen und 6 MOSFETs für 
die Ebenen oder nicht ?

von MaWin (Gast)


Lesenswert?

Ilja A. schrieb:
> Aber ich könnte die ULN2803 für die Spalten benutzen

Eher ungünstig. Falsche Polarität und so viel Spannungsverlust dass man 
mit 5V nicht mehr auskommt. Ein BC337 schafft sogar als ungünstiger 
Emitterfolger 120mA. Eine TLC5916 Konstantstromquellensenke wäre 
natürlich schlauer, spart die Widerstände, da lohnt es sich dann auch, 
die Polarität umzudrehen.

Beitrag "Meine erste Platine"

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Dein XMega Controller hat doch bestimmt auch eine SPI Schnittstelle. 
Wenn Du jetzt alle Schieberegister für Deine Spalten und Zeilen 
kaskadierst und mit der steigenden Flanke von des slave select signals 
die Werte in den Schieberegistern Speichers, dann kommst Du auf 3 Pins, 
die Du dafür bräuchtest.

Die ganze Shifterei kannst Du dann der SPI Hardware überlassen.

Wenn Du Deine 6  6  6 LEDs nicht als 6 * 36 Matrix darstellst, sondern 
als 14,6969 * 14,6969 Matrix kämmest Du sogar mit 4 Schiftregistern aus 
;-)

mfg Torsten

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Torsten Robitzki schrieb:
> Dein XMega Controller hat doch bestimmt auch eine SPI Schnittstelle.

Und dort kann er gleich Konststrom-Schieberegister-ICs (Shift Register 
LED Driver) anschließen, dann spart er die Vorwiderstände und viele 
Transistoren und hat weniger Arbeit beim Aufbau.

Man könnte auch einen oder mehrere Colorduino nehmen.

Wobei der dort eingebaute unnötig teure DM163 PWM macht, das wäre aber 
gar nicht nötig. PWM kann der XMega auch selbst machen.

http://blog.iteadstudio.com/colorduino-schematic-and-demo-code/
-> Colorduino Schematic (26.3 KiB)

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?


von Martin S. (led_martin)


Lesenswert?

Da Du ja genügend Portpins hast, kannst Du die Dateneingänge der 
Schieberegister duraus, einzeln, direkt auf Portpins führen, Clock, und 
Register-Clock trotzdem zusammenfassen. Wenn Du alle Dateneingänge der 
Schieberegister, und den Schieberegister-Clock auf einen Port führst, 
kann man die Zustände der Ausgänge sehr schnell setzen (Wenn man in 
Assembler programmiert, schneller als mit der, hier schon 
angesprochenen, SPI-lösung).

Deine Ebenen-Transistoren sind auf jeden Fall zu schwach, da solltest Du 
den Tip mit den Logic-Level-MOSFETs annehmen. Mit den 
Säulen-Transistoren als Emitterfolger könnte es spannungsmäßig knapp 
werden, wenn Du grüne oder blaue LEDs verwendest, bei Roten, Orangenen, 
oder Gelben sollte es reichen.

Du solltest dafür sorgen, daß die LEDs aus sind, wenn der 
Mikrocontroller im Reset ist, z.B. indem der Reset, oder der OE, der 
Schieberegister angesteuert wird. Dabei Pull-Up oder Pull-Down nicht 
vergessen, der zugehörige Port-Pin ist ein Eingang, wärend der 
Controller im Reset ist. Das ist besonders wichtig, wenn Du die 
Vorwiderstände der LEDs auf Impulsstrom berechnest, dann muß immer 
sichergestellt werden, daß nicht zu lange Strom durch eine LED fließt. 
Da muß man auch bei der Sortwareentwicklung und den dazugehörenden 
Softwaretests sehr aufpassen, kaputte LEDs innen im Cube sind gar nicht 
lustig ...

Betrieb mit Batterien kann man machen, die sind aber schnell 
leergesaugt, dann aber mindestens C- (Baby-) Zellen, oder den Cube auf 
weniger Helligkeit auslegen, z.B. 20mA pro Säule. Dann macht er aber nur 
noch am Abend Spaß, man hat dann auch nicht Gefahr, LEDs durch zu lange 
Bestromung zu zerstören.

Das von Jemandem der schon einen Cube gebaut hat.

Mit freundlichen Grüßen - Martin

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.