Arduino Forum

International => Deutsch => Topic started by: Domanaik on Oct 08, 2012, 12:02 am

Title: 128 x RGB Tisch
Post by: Domanaik on Oct 08, 2012, 12:02 am
Hallo!

Ich hab vor einen 8 x 16 RGB LED Tisch zu bauen.

erstmal ein paar Infos ^^

Ein Kästchen (wo die LEDs drinnen sind) wird 8 cm x 7 cm sein
Tisch Gesamt: 78 cm x 126 cm
Plexi Gesamt: 64 cm x 112 cm

Als LEDs verwende ich folgende RGB:
5mm, diffus, gemeinsame Anode, Flußspannung 2,2 / 3,3 / 3,4 V, 3 x 20 mA

Gesteuert werden Sie über ein Arduino Mega 2560 + 24 x TLC5940 (3 Stück pro Reihe, jeder macht nur eine Farbe für 2 Reihen)

Bilder und Skizzen werden bald folgen.


Das einzige Problem was ich habe, ist die Stromversorgung der LED. Wie bewerkstellige ich das am besten?
Wenn alle LEDs an sind, sind das 128 RGB LEDs.. Das Mega Board würde allerdings nur 12 V zur Verfügung stellen.

Irgendwelche Tipps für mich?

Liebe Grüße und bis bald
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 08, 2012, 12:14 am
Du nimmst ein 5V Netzteil mit mindestens 8A. Brauchst Du wirklich die volle Helligkeit?
Achtung: bei der Ansteuerung der 24 TLC mußt Du beachten, daß die Steuersignale die paralell an alle TLCs gehen verstärkt werden müssen da ein Arduino-Ausgang alleine nicht stark genug ist. Wenn Du CMOS Treiber 1x kaskadierst müßte es keine Probleme geben (Jeder Ausgang sollte 5 Eingänge versorgen).
Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 08, 2012, 05:57 pm

Du nimmst ein 5V Netzteil mit mindestens 8A. Brauchst Du wirklich die volle Helligkeit?


Ja, brauch ich.

Was hälst du von folgendem Netzteil?
SNT MW40-05 :: Schaltnetzteil, geschlossen, 5V / 8,0A / 40W (http://www.reichelt.de/Schaltnetzteile-Case-geschlossen/SNT-MW40-05/3/index.html?;ACTION=3;LA=2;ARTICLE=57470;GROUPID=4959;artnr=SNT+MW40-05;SID=11UFWuFH8AAAIAACKgg1Q69623d36a1caaa251ccf87a184f8a0dd)


Achtung: bei der Ansteuerung der 24 TLC mußt Du beachten, daß die Steuersignale die paralell an alle TLCs gehen verstärkt werden müssen da ein Arduino-Ausgang alleine nicht stark genug ist.


Da bin ich noch am überlegen. Sollte ich lieber jedes TLC an einen seperaten Pin des Mega's hängen oder in Reihe schalten?

Wieviele TLCs kann ich maximal in Reihe schalten?

Liebe Grüße
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 08, 2012, 06:23 pm
Quote
Da bin ich noch am überlegen. Sollte ich lieber jedes TLC an einen seperaten Pin des Mega's hängen ...

Das kannst Du nicht, Du mußt sie in Reihe schalten.

   Mega pin 51 (MOSI) -> SIN (Tlc pin 26)
Sout kommt auf den Sin des nächsten. Also kein Problem.

alle anderan Pin müssen paralell auf alle TLCs geschaltet werden:   
    Mega pin 52 (SCK) -> SCLK (Tlc pin 25)
    Mega pin 11 (OC1A) -> XLAT (Tlc pin 24)
    Mega pin 12 (OC1B) -> BLANK (Tlc pin 23)
    Mega pin 9 (OC2B) -> GSCLK (Tlc pin 18)

GSCLK und BLANK sind Timergesteuert. Die kannst Du nicht so einfach ändern.

Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 08, 2012, 08:23 pm

Das kannst Du nicht, Du mußt sie in Reihe schalten.

   Mega pin 51 (MOSI) -> SIN (Tlc pin 26)
Sout kommt auf den Sin des nächsten. Also kein Problem.

alle anderan Pin müssen paralell auf alle TLCs geschaltet werden:   
    Mega pin 52 (SCK) -> SCLK (Tlc pin 25)
    Mega pin 11 (OC1A) -> XLAT (Tlc pin 24)
    Mega pin 12 (OC1B) -> BLANK (Tlc pin 23)
    Mega pin 9 (OC2B) -> GSCLK (Tlc pin 18)


Also muss ich alle 24 TLCs in Reihe schalten?

Kann ich Pin 52 vom Mega dann an den ersten TLCs klemmen, und von ihm aus weiter an den zweiten TLC oder sollte ich lieber Pin 52 auf einem separaten Breadboard anklemmen und das dort zentral verwalten?

Danke für deine Hilfe
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 08, 2012, 08:40 pm
Ich sagte bereits, daß ein Ausgang des Arduino nicht 24 Eingänge bedienen kann, weil er zuwenig Strom liefert. Du brauchst einen Treiber.
Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 08, 2012, 08:57 pm

Ich sagte bereits, daß ein Ausgang des Arduino nicht 24 Eingänge bedienen kann, weil er zuwenig Strom liefert. Du brauchst einen Treiber.
Grüße Uwe



Ich war mal wieder zu schnell :/
Weißt du wieviele ein Arduino Mega 2560 ca leisten kann? Und wieviele Treiber brauche ich dann? (ich weiß leider nicht, wie man das ausrechnen kann, evtl. kannst du mir helfen?)

Danke
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 08, 2012, 09:13 pm
Hab Dir etwas kryptisch geantwortet weil ich selbst nachschaun mußte.

http://www.ureader.de/msg/144831784.aspx

Also Benutze einen nicht invertierenden Treiber oder Bustreiber der 74HC Familie zB:
74HC4050, 74HC541 ecc

Aber die Ausgänge nicht paralellschalten. Vom Arduino auf 5 Eingänge und jeden Ausgang auf 5 TLC Eingänge ( 1 bleibt übrig) Wahrscheinlich funktioniert auch Arduino - 4 Treiber-Eingänge und 1 Ausgang an 6 TLC-Eingänge. Bei Oktal-Bustreibern brauchst Du nur 2 ICs.

Grüße  Uwe
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 09, 2012, 10:48 pm
Hab noch eine Frage zu den Kabeln, welche ich brauche um die LEDs mit den TLCs zu verbinden.
Gehen da folgende?

20m LED RGB Kabel 4-adrig Strip Anschlußkabel Verlängerungskabel Verbindung B5 (http://www.ebay.de/itm/251070986743?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649)

gehen da 5V, 8A, 40W durch? Bzw. auf was muss ich da aufpassen?

Liebe Grüße
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 09, 2012, 11:14 pm
Durch jede LED fließen nur 20mA darum würde ich zwischen LED und TLC Flachbandkabel nehmen (zb Laufwerkskabel aus alten PCs)
Die TLC würd ich sowieso in der Nähe der LED plazieren und diese auch nicht zu weit weg vom Steuerarduino.

Grüße Uwe 
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 14, 2012, 03:29 pm

Hab Dir etwas kryptisch geantwortet weil ich selbst nachschaun mußte.

http://www.ureader.de/msg/144831784.aspx

Also Benutze einen nicht invertierenden Treiber oder Bustreiber der 74HC Familie zB:
74HC4050, 74HC541 ecc

Aber die Ausgänge nicht paralellschalten. Vom Arduino auf 5 Eingänge und jeden Ausgang auf 5 TLC Eingänge ( 1 bleibt übrig) Wahrscheinlich funktioniert auch Arduino - 4 Treiber-Eingänge und 1 Ausgang an 6 TLC-Eingänge. Bei Oktal-Bustreibern brauchst Du nur 2 ICs.

Grüße  Uwe


Jetzt musst du mir nochmal helfen^^

Angenommen ich nehme 5x 74HC4050. ( http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A240%252F74HC4049_74HC4050_SMDHC4049_SMDHC4050%2523STM.pdf;SID=10UGcJSn8AAAIAACcvcTE7f0d534c793b229a2d1924d97b6230c2 (http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A240%252F74HC4049_74HC4050_SMDHC4049_SMDHC4050%2523STM.pdf;SID=10UGcJSn8AAAIAACcvcTE7f0d534c793b229a2d1924d97b6230c2) )

Vom Arduino Mega pin 51 (MOSI) gehe ich in 5 verschiedene 74HC4050 in 5 Eingangspin. Von jedem Ausgang dann zu einem TLC5940?

Also:

Arduino -> 1A - 74HC4050 - 1Y -> TLC5940
           -> 2A - 74HC4050 - 2Y -> TLC5940
           -> 3A - 74HC4050 - 3Y -> TLC5940
           -> 4A - 74HC4050 - 4Y -> TLC5940
           -> 5A - 74HC4050 - 5Y -> TLC5940

und das 5 mal? (Beim 5ten halt nur mit 4?)

Oder bringe ich jetzt da etwas komplett durcheinander?

Vielen Dank
Domi

PS: Was ist den der unterschied zwischen: "The M54/75HC4049 is an inverting buffer, while the M54/74HC4050 is a non-inverting buffer." ?
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 14, 2012, 09:25 pm
inverting buffer:
1A  1Y
0    1
1    0

not inverting buffer
1A  1Y
0    0
1    1


den MOSI braucht Du nicht zu verstärken da dieser auf den SIN des ersten TLC geht und der SOUT des ersten TLS auf den in des 2. TLC ecc. Im Bild die orange Verbindung.
(http://tlc5940arduino.googlecode.com/svn/wiki/images/breadboard-arduino-tlc5940.png)

Du mußt die anderen 4 Signale vertärken, die paralell an alle TLC gehen.
zb: pin 13 des Arduino auf A1, A2, A3,  A4,  A5 des 74HC4050 und dann Y1 auf die SCLK-Eingänge von 5 TLCs. das gleiche mit den Ausgängen Y2 bis Y5.

zum besseren Versträndnis:
(http://www.hackerboard.de/saved_tutorials/netzwerkstrukturen/Baum.PNG)

Grüße Uwe




Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 14, 2012, 10:28 pm
Wow, vielen lieben Dank für diese sehr hilfreiche Antwort. Hammererklärung!

Aber dann müssten ja 4 x 74HC4050 reichen oder? Ich muss ja nur 4 Signale verstärken (SIN, BLANK, XLAT, SCLK)

Vielen lieben Dank soweit
Domi
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 14, 2012, 11:16 pm
Fast.
GSCLK, BLANK, XLAT, SCLK

SIN geht ja nur auf den ersten TLC.

Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 14, 2012, 11:19 pm
Ah meinte ich ja, hab nur die obersten 4 abgetippt. Sry, ok gut. Supi. Dann werd ich das mal testen und mich wieder melden, sobald ich mehr weiß bzw. wieder Hilfe brauche.

Vielen lieben Dank Uwe! :-))
Title: Re: 128 x RGB Tisch
Post by: Jomelo on Oct 15, 2012, 09:59 am
Was haltet ihr den von diesen LED Streifen,  jede RGB LED lässt sich einzeln ansteuern.

http://www.watterott.com/de/Digital-Addressable-RGB-LED?x4cfdf=504ea970cba3606d65381676e06a70d2

Man braucht nur ein Netzteil und 2 Anschlüsse des Arduinos.

[edit]
3, wenn man GND als Anschluss bezeichnet
[/edit]
Title: Re: 128 x RGB Tisch
Post by: mkl0815 on Oct 15, 2012, 11:27 am
Aufpassen musst du nur, weil je 2 LEDs an einem der LPD8806 Controller hängen. Die sind zwar beide getrennt steuerbar, aber Du hast beide LEDs in einem Segement und kannst die nicht trennen.
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 15, 2012, 09:44 pm
So, stehe schon vor dem nächsten Problem:

Wenn ich das später per Ethernet steuern will hab ich ein Problem: Ich kann etweder TLC5940 oder das Ethernet-Shield.

Wie bekomme ich beides parallel angeschlossen? Hab zwar was gelesen mit, dass man die Boards modifizieren kann, aber funktioniert das dann auch sauber?

Mal gespannt, ob ihr hierfür auch eine Lösung wisst ;D

Liebe Grüße
Domi
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 16, 2012, 03:49 pm
Hallo,

Ich kann dir zwar nicht die Antwort geben aber mit einem  gewissen technischen Verständnis solltest du dir dies selbst überlegen können: Welche Pins werden für den TLC verwendet und werden diese Pins gleichzeitig auch für das Ethernet shield  verwendet?
Die Pins für die serielle Ausgabe dürfen nicht von dem ethernet shield verwendet werden, alle anderen Pins kann man umkonfigurieren.

Ich hoffe das hilft weiter,
Gruß
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 16, 2012, 09:31 pm
ja, und wenn sich was überschneidet!?

Laut google, müsste man den Pin 10 abschneiden und wo anderst hinführen und lib's ändern etc..

Geht das nicht einfacher??
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 16, 2012, 10:09 pm
Hallo,

an Pin10 hängt Blank und an Pin 9 XLat. Beide Pins gehören zu Timer1.
Diese Pins könntest du z.b. auf Timer4 verlegen, also dann Pin 6 und 7.
dann mußt du in der Library überall OC1A durch OC4A ersetzen und OC1B durch OC4B.
Du kannst auch jeden anderen Timer verwenden , wichtig ist nur, dass beide
pins zum gleichen Timer gehören, da es einen wichtigen Zusammenhang zwischen dem Blank und dem Xlat Puls gibt.

Gruß Andreas
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 16, 2012, 10:41 pm
Blank und Xlat hängen nicht zusammen.
Eine Synchronisation braucht es zwischen GSCLK und BLANK. Ein BLANK-Impuls alle 4096 GSCLK Impulse.
Darum können die Pin 3 und 10 nicht getauscht werden.
Pin 10 am Ethernet ist das CS signal. Das kann ohne größere Probleme auf ein anderes Pin gelegt werden.
Des weiteren kann der TLC über die SPI Schnittstelle angeschlossen werden oder über andere Pins. Beides ist möglich aber andere pins sind einfacher. Über SPI muß ein CS über ein zusätzliches AND-Gatter emuliert werden.

Also GSCLK und BLANK müssen auf 3 und 10 bleiben, (Timer für PWM Signale)
SIN, SCLK und XLAT können auf x-beliebige pins. (serielle übertragung Daten)

Ethernet 11,12 und 13 müssen bleiben, 10 muß umgelötet und auf ein x-beliebiges Pin geleitet werden.

http://blog.andrewwei.mu/?p=19
http://blog.derouineau.fr/2011/07/tlc5940-library-ethernet-shield-arduino-mega/
http://code.google.com/p/homeduino/wiki/EthernetShieldTLC5940

Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 16, 2012, 11:07 pm
Hallo Uwe,

XLAT ist der kurze Puls, der im langen BLANK Puls liegt. Daher sind auch beide an einem Timer.
Die Sync zwischen GSCLK und XLAT und BLANK ergibt sich durch die Timerkonfig von T1 und T2.
Insofern verstehe ich deine Aussage nicht ganz..

Gruß Andreas
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 17, 2012, 12:03 am
Beim H-Pegel des XLAT wird die Daten vom Eingangsregister auf die GS bzw DC Register übernommen. Die Datenübertragung ins Eingangsregister kann während eines PWM-Zyklus erfolgen, die Übernahme ins GS oder DC Register aber nicht. Ein BLANK Impuls stoppt den PWM Zyklus. Daum sollte XLAT mit Blank synchronisiert sein, benötigt aber bein besonderes timing.

Lies Dir mal die Links durch , die ich vorgeschlagen habe.

Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 17, 2012, 08:07 am
Hallo Uwe,

die von dir genannten Vorschläge zielen darauf ab den Pin 10 des Ethernet Shiels  zu verlegen.
Ich habe mal meinen Unterlagen nachgeschaut, ich habe alle Pins in die Ecke verlegt, wo auch die seriellen Pins (SCLK,SIN) zu finden sind. Pin48 ist XLAT, Pin45 ist GSCLK, PIn 49 ist BLANK. Ich
arbeite also mit Timer 5. Dies wäre ein Vorschlag, der ohne Lötkolben auskommt.
Dazu muss man allerdings die Library ändern.
Falls gewünscht kann ich den Code gerne mal posten.

Gruß Andreas
Title: Re: 128 x RGB Tisch
Post by: uwefed on Oct 17, 2012, 08:17 am
Meine Hilfestellungen beziehen sich auf einem Arduino mit ATmega328.
Und da habe ich etwas überlesen, daß Domanaik eine MEGA 2560 benutzen will.
Grüße Uwe
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 17, 2012, 08:36 am
Hallo Uwe,

Ich zitiere aus dem aller ersten Eintrag:
Gesteuert werden Sie über ein Arduino Mega 2560 + 24 x TLC5940 (3 Stück pro Reihe, jeder macht nur eine Farbe für 2 Reihen)

Gruß Andreas
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 17, 2012, 08:51 am

Hallo Uwe,

die von dir genannten Vorschläge zielen darauf ab den Pin 10 des Ethernet Shiels  zu verlegen.
Ich habe mal meinen Unterlagen nachgeschaut, ich habe alle Pins in die Ecke verlegt, wo auch die seriellen Pins (SCLK,SIN) zu finden sind. Pin48 ist XLAT, Pin45 ist GSCLK, PIn 49 ist BLANK. Ich
arbeite also mit Timer 5. Dies wäre ein Vorschlag, der ohne Lötkolben auskommt.
Dazu muss man allerdings die Library ändern.
Falls gewünscht kann ich den Code gerne mal posten.

Gruß Andreas


Wenn ich die Library einmal änder, müsste das ja dann für alle Projekte gehen oder?

Über den Code und wie du es nun genau angeschlossen hast würde ich mich sehr freuen. :)

@Uwe: Ja, ich benutze einen Mega 2560.
Title: Re: 128 x RGB Tisch
Post by: odysee_2002 on Oct 18, 2012, 11:11 pm
Hallo Dominik,

ich habe die Files geschickt.
Hier nochmal ein paar Beispiele für alle anderen, wie man so etwas machen kann:

Code: [Select]
#if TLC_TIMER5 == 0    
   GSCLK_DDR |= _BV(GSCLK_PIN);  // alter Code
#else    
   GSCLK2_DDR |= _BV(GSCLK2_PIN);  // Pin 45 ist OCR5B neuer Code !!
#endif
Anstatt GSCLK_DDR verwende ich GSCLK2:
/** OC2B (Mega pin 9) -> GSCLK (TLC pin 18) */
#define GSCLK_PIN    PH6
#define GSCLK_PORT   PORTH
#define GSCLK_DDR    DDRH

/** OC5B (Mega pin 45) -> GSCLK (TLC pin 18) */
#define GSCLK2_PIN    PL4
#define GSCLK2_PORT   PORTL
#define GSCLK2_DDR    DDRL

Wichtig ist die Konfiguration des Timer5 selbst:
#if TLC_TIMER5 == 0
   /* Timer 2 - GSCLK */

   TCCR2A = _BV(COM2B1)      // set on BOTTOM, clear on OCR2A (non-inverting),
                                         // output on OC2B
               | _BV(WGM21)       // Fast pwm with OCR2A top
               | _BV(WGM20);      // Fast pwm with OCR2A top
   TCCR2B = _BV(WGM22);      // Fast pwm with OCR2A top
   OCR2B = 0;                // duty factor (as short a pulse as possible)
   OCR2A = TLC_GSCLK_PERIOD; // see tlc_config.h
   TCCR2B |= _BV(CS20);      // no prescale, (start pwm output)
#else
      /* Timer 5 - GSCLK */

   TCCR5A = _BV(COM5B1)      // set on BOTTOM, clear on OCR5A (non-inverting),
                                         // output on OC2B
              | _BV(WGM51)       // Fast pwm with OCR5A top
              | _BV(WGM50);      // Fast pwm with OCR5A top
    TCCR5B = _BV(WGM52)       // Fast pwm with OCR5A top
               | _BV(WGM53);      // Fast pwm with OCR5A top    /* This line is new to get Timer 5 in same Mode like Timer2 */
      OCR5B = 0;                // duty factor (as short a pulse as possible)
      OCR5A = TLC_GSCLK_PERIOD; // see tlc_config.h
      TCCR5B |= _BV(CS50);      // no prescale, (start pwm output)
#endif    

Die Library zu ändern ist kein Hexenwerk, da diese auch nur aus C-Code besteht.
Wenn man genauer verstehen will, was passiert, sollte man das Prozessorhandbuch dazu legen.
Timer 5 muß so konfiguruert werden, das seine Betriebsart der von Timer2 entspricht.
Aber auch dies ist im Prozessorhandbuch gut beschrieben.

Gruß
Title: Re: 128 x RGB Tisch
Post by: Domanaik on Oct 21, 2012, 01:53 pm
So,

nochmal eine Frage zum Netzteil:

Ich habe nun 128 RGB-LEDs, sowie 128 IR-Sender und -Empänger.
Ich verwende dazu 24 TLC5940 und 4 74HC4050

Alleine die LEDs brauchen 14,47A
-----
128 RGB-LEDs : 128 x 3 x 20mA = 7,68A
128 IR-Sender: 128 x 50mA = 6,4A
128 IR-Empfänger: 128 x 3,12mA = 0,39936A
-----

An den TLC und 74HCs wird auch noch etwas abfallen. (Oder?)

Nun meine Frage:

Reicht ein 5V / 12,0A / 60W? Es werden ja eh nicht alle LEDs leuchten (meine IR müssen aber immer vollen Strom haben!!)

oder dann lieber gleich 5V / 20,0A / 100W? (btw, geht da auch ein altes PC-Netzteil?)

Wie werde ich die überschüssigen 5A los?


@Andreas: Vielen Dank, ich werde es mir bei Gelegenheit anschauen und testen. :)

Vielen Dank für eure Hilfe
Domi
Title: Re: 128 x RGB Tisch
Post by: mkl0815 on Oct 22, 2012, 12:21 pm

Wie werde ich die überschüssigen 5A los?

Du mußt keinen Strom "los werden" :-)
Die Angabe der 20A des Netzteils beziehen sich darauf, was das Netzteil maximal liefern kann. Deine Schaltung bestimmt am Ende wieviel Strom genau fliesst.
Das 100W Netzteil sollte also durchaus besser geeignet sein, da Du zu den schon vermuteten 15A nochmal Reserven hast. Zumal man Netzteile nicht dauerhaft an der Leistungsgrenze betreiben sollte.