PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RGB-Cube 6x6x6



Neo2oo5
01.11.2015, 16:02
Hallo :)

ich stell mich kurz mal vor. Bin 25 studiere Informatik und komme aus dem Saarland, ich lese hier schon seit längerem mit hatte bis jetzt aber noch nie was gepostet. Da ich nicht wusste wo der Thread am besten aufgehoben ist bitte ich um Verzeihung falls er hier falsch sein sollte.

So nun zu meinem Projekt, ich möchte mir einen 6x6x6 RGB-Cube bauen. Da ich Informatik studiere kann ich gut Programmieren, ein paar Grundkenntnisse der Elektrik sind vorhanden. Wobei ich sagen würde wir gehen im weiteren verlauf davon aus das keine vorhanden sind :)

Ich bräuchte etwas Hilfe beim Schaltplan und bin für alle Tipps dankbar. Ich habe mir einiges durchgelesen und aus den Erkenntnissen habe ich mir dann heute ein Schaltplan gebastelt.

Der Cube wird per Bluetooth(JY-MCU H05) mit meinem Pi verbunden sein. Am Sockel des Cubes werden ein paar Buttons sein um verschiedene Funktionen auf dem Pi auszuführen, umgekehrt soll der Pi verschiedene Animationen auf dem Cube startet und stopen können.

Die Schaltung sollte mit einem Attiny861A-PU umgestzt werden, dieser soll ein paar Schieberegister(74HC595N) steuern die wiederum Transistoren(BC337-40) schalten.
Genaueres seht ihr im angehängten Schaltplan.

Infos zu den LED:

- Size: 5mm (pin length approx. 25mm)
- Emitted Colour : Red / Green / Blue
- Pins sequence: RED/Common cathode(negative terminal)/Green/Blue
- Lens Color : Diffused
- Luminous Intensity: 4000/8000/5000mcd
- Forward Voltage (V) : 2.1~3.4
- View Angle: About 25 degree.



Forward
Dominant
LuMen(LM)
Reverse
Power


Voltage(V)
wavelength(mm)K
current(uA)
Angle (deg)


If=20mA
If=20mA
If=20mA
Vr=5V



Min
Typ
Min
Typ
Min
Typ
Max



Red
2.1
2.4
620
630
3000
4000
10
20-25


Green
3
3.4
520
530
6000
8000
10
20-25


Blue
3
3.4
460
465
4000
5000
10
20-25


- Please test to add current limiting resistor, it will be very easy to burn out the LED resistance of a few hundred to 1000ohm can
- R: wavelength 630-640nm Brightness 1000-1200mcd Voltage 1.8-2.0V
- G: wavelength 515-512nm Brightness 3000-5000mcd Voltage 3.2-3.4V
- B: wavelength 465-475nm Brightness 2000-3000mcd Voltage 3.2-3.4V




Die Led sollen gemultiplext werden, in einer Ebene gibt es 6x6 LED = 36 * 3(da RGB) = 108 -> 14 Schieberegister
Ein Register wird zusätzlich benötigt um die 6 Ebenen zu schalten.

Auf dem Schaltplan sind die Transistoren noch nicht ein gezeichnet. Außerdem Benutze ich das SPI-Modul, da ich gleichzeitig den AVR Flashen will müsste noch irgendwas eingbaut werden so das die Register beim Flashen nicht verrückt spielen. Ich hatte irgendwas in Richtung Jumper gedacht, wobei eine "automatische" Lösung mir lieber wäre.

Die Strom Versorgung soll über ein entsprechendes Netzteil passieren, denke eins mit 3,3V und 1-2A sollte für den Cube reichen. Den genauen Verbrauch werde ich später noch aus rechnen

Falls es wichtig ist: Die Platine wird später geätzt werden.

Wäre toll wenn ihr mal drüber schaut und mir Tipps gibt bzw schaut ob es Fehler im Schaltplan gibt.
Danke im Vorraus

Gruß neo2oo5

White_Fox
02.11.2015, 20:45
Da hast du dir ein recht anspruchsvolles Projekt rausgesucht für deinen ersten Würfel. 6x6x6 ist an sich kein Hexenwerk, aber mit RGB wird das schon etwas Salat. Glaub ich zumindest. Wenn du eh schon einen AVR verwendest, der hat doch noch ein paar EA-Pins. Das muß nicht alles über die SPI laufen, zumindest das Bitmuster für eine Ebene würde ich im Portregister machen. Vor allem Farben mit PWM werden über Schieberegister stelle ich mir schwierig vor. Aber vielleicht unterschätze ich auch einfach nur 16MHz.


Auf dem Schaltplan sind die Transistoren noch nicht ein gezeichnet. Außerdem Benutze ich das SPI-Modul, da ich gleichzeitig den AVR Flashen will müsste noch irgendwas eingbaut werden so das die Register beim Flashen nicht verrückt spielen. Ich hatte irgendwas in Richtung Jumper gedacht, wobei eine "automatische" Lösung mir lieber wäre.
Wie wäre es mit einer UND-Verknüpfung von MOSI bzw. CSL und Reset in Hardware?

Peter(TOO)
06.11.2015, 03:22
Hallo neo2oo5,

Die Strom Versorgung soll über ein entsprechendes Netzteil passieren, denke eins mit 3,3V und 1-2A sollte für den Cube reichen. Den genauen Verbrauch werde ich später noch aus rechnen

3,3V reicht nicht!
Die Blaue LED, braucht schon 3.4V (Worst Case?), dann kommen noch der Spannungsabfall für den Treiber und den Strombegrenzungswiderstand dazu.

Die LEDs sind bei 20mA spezifiziert. Zeitlich gleichzeitig können 108 LEDs an sein, das wären 2.16A, ohne µC und Treiber.
Da du 6 Ebenen hast, Leuchtet eine LED aber nur 1/6 der Zeit, du hast also durch das Multiplexen schon eine PWM mit maximal 16.6% Einschaltdauer.
Um jetzt die selbe Helligkeit wie bei 20mA zu haben, musst du die LEDs mit etwa 100mA pulsen, macht dann gute 10A fürs Netzteil, wenn alle LEDs mit 100% leuchten sollen.

Du hast jetzt 15*8 = 120 Bit zu schieben.

/OE der Schieberegister solltest du über eine Art Wach Dog ansteuern, damit bei einem Reset oder wenn das Programm abstürzt nicht einzelne LEDs dauernd mit dem ganzen Strom betrieben werden und abrauchen!
Daber bedenken, dass der Watch Dog nur auf die Flanken reagiert, also bei Dauer 0 oder 1 abschaltet!
Mit dem Watch Dog hast du auch das Problem beim Programmieren gelöst.

Die Auswahl der Ebenen würde ich mit einem 74HC138 machen, damit ist sichergestellt, dass immer nur eine Ebene angesteuert werden kann, mit dem Schieberegister alleine können alle Ebenen gleichzeitig eingeschaltet werden!

Zwischen IC2 und IC3 fehlt die Verbindung für SCK.

MfG Peter(TOO)

Neo2oo5
11.11.2015, 11:12
Erst einmal Danke für eure Anmerkungen.




3,3V reicht nicht!
Die Blaue LED, braucht schon 3.4V (Worst Case?), dann kommen noch der Spannungsabfall für den Treiber und den Strombegrenzungswiderstand dazu.


Ich hatte 3,3V gewählt wegen dem Bluetooth-Modul, im Internet hatte ich gelesen das es keine 5V verträgt. Das Problem ist das es von diesen Modulen viele Versionen gibt, nach einigen Test scheine ich aber eine Version zu haben die 5V verträgt.


Um jetzt die selbe Helligkeit wie bei 20mA zu haben, musst du die LEDs mit etwa 100mA pulsen, macht dann gute 10A fürs Netzteil, wenn alle LEDs mit 100% leuchten sollen.

Hat jemand eine Idee wie ich den Cube mit so einer Leistung versorgen kann ohne ein externes Netzteil zu benutzen? Wenn mir nichts anderes übrig bleibt wollte ich ein PC-Netzteil (http://www.pollin.de/shop/dt/MDY1ODQ2OTk-/Computer_und_Zubehoer/Hardware/Netzteile/ATX2_0_Computer_Schaltnetzteil_HM_650.html) nutzen, wobei das alles andere als schön wäre.


/OE der Schieberegister solltest du über eine Art Wach Dog ansteuern, damit bei einem Reset oder wenn das Programm abstürzt nicht einzelne LEDs dauernd mit dem ganzen Strom betrieben werden und abrauchen!
Daber bedenken, dass der Watch Dog nur auf die Flanken reagiert, also bei Dauer 0 oder 1 abschaltet!
Mit dem Watch Dog hast du auch das Problem beim Programmieren gelöst.

Gute Idee werde ich einbauen.


Die Auswahl der Ebenen würde ich mit einem 74HC138 machen, damit ist sichergestellt, dass immer nur eine Ebene angesteuert werden kann, mit dem Schieberegister alleine können alle Ebenen gleichzeitig eingeschaltet werden!

Da ich die bestellen müsste würde ich anstelle der 74HC138 lieber die 74HC238 nehmen da die mir direkt ein High liefern für die BC337-40. Oder verstehe ich da was Falsch?


Zwischen IC2 und IC3 fehlt die Verbindung für SCK.

Der Plan ist veraltet, da ich mir überlegt habe daraus mehrere Platinen zu machen. Wenn ich später den Cube erweitern will kann ich dann einfach die Registerplatine umstecken...


Nochmals Danke

Gruß neo

Peter(TOO)
13.11.2015, 02:58
Hallo neo,

Ich hatte 3,3V gewählt wegen dem Bluetooth-Modul, im Internet hatte ich gelesen das es keine 5V verträgt. Das Problem ist das es von diesen Modulen viele Versionen gibt, nach einigen Test scheine ich aber eine Version zu haben die 5V verträgt.
Du kannst auch unterschiedliche Spannungen für die Logik und die LEDs verwenden, aber mit den 3.3V für die LEDs kommst du nicht aus.


Hat jemand eine Idee wie ich den Cube mit so einer Leistung versorgen kann ohne ein externes Netzteil zu benutzen? Wenn mir nichts anderes übrig bleibt wollte ich ein PC-Netzteil (http://www.pollin.de/shop/dt/MDY1ODQ2OTk-/Computer_und_Zubehoer/Hardware/Netzteile/ATX2_0_Computer_Schaltnetzteil_HM_650.html) nutzen, wobei das alles andere als schön wäre.
Tja, die Physik kannst du nicht wirklich überlisten.
Du hast nun mal 6*6*6*3 = 648 LEDs.
Auch wenn du jede parallel mit 10mA betreibst, sind das 6.5A!
Mit dem Strom kommst du nur runter, wenn du teure LEDs nimmst, welche einen kleineren Strom benötigen um eine brauchbare Helligkeit zu erzeugen.
Wenn man verhindern kann, dass nie alle LEDs gleichzeitig leuchten, kann man auch mit dem maximalen Strom runter kommen, dann geht aber ein komplett weisser Würfel nicht. Falls doch mal alle LEDs angeschaltet werden, bricht dir im besten Fall einfach nur die Spannung zusammen, im schlechtesten brennt das Netzteil durch!

Die (PC-)Schaltnetzteile haben gewisse Nachteile. Einerseits benötigen sie eine Grundlast, was im PC kein Problem ist und andererseits mögen sie keine zu grossen Lastsprünge! In beiden Fällen spricht dann gerne die Schutzschaltung an.
Wenn dein Würfel ganz aus ist, braucht nur der µC ein bisschen Strom. Schaltest du dann den Würfel komplett auf weiss, springt der Strom auf Volllast.


Da ich die bestellen müsste würde ich anstelle der 74HC138 lieber die 74HC238 nehmen da die mir direkt ein High liefern für die BC337-40. Oder verstehe ich da was Falsch?
Ist egal was du nimmst, so lange es die passende Funktion hat, kannst du auch mit Dioden und Transistoren aufbauen. Den '138 habe ich nur angegeben, damit die Funktion klar ist.


Der Plan ist veraltet, da ich mir überlegt habe daraus mehrere Platinen zu machen. Wenn ich später den Cube erweitern will kann ich dann einfach die Registerplatine umstecken...
Den Strom für die LEDs nicht vergessen :-)

MfG Peter(TOO)