TLC9547 ansteuern

Moin Moin,

ich habe meine ersten Schritte mit dem Arduino gemacht und möchte nun nach dem Lernpaket gerne etwas eigenes umsetzen.

Ich möchte 24 LEDs ansteuern, sprich ihre Helligkeit dimmen. Dazu habe ich also einen Arduino Uno und einen TLC5947. Allerdings mangels Verfügbarkeit nicht den von Adafruit angebotenen, sondern einen reinen TLC5947, auf eine Adapterplatine gelötet.

Ich habe mir dann noch diese Bibliothek heruntergeladen und installiert.

Ich habe an Vcc 5V vom Arduino angelegt, GND mit dem gemeinsamen GND verbunden, Sin mit dem pin4, Sclk mit dem Pin5, und Xlat mit dem Pin 6 verbunden. Außerdem habe ich von OUT1(TLC) an eine LED geklemmt, die dann auf GND geht.

Nun habe ich folgenden Code genommen:

#include "Adafruit_TLC5947.h"

#define NUM_TLC5974 1

#define data 4
#define clock 5
#define latch 6
#define oe -1 // set to -1 to not use the enable pin (its optional)

Adafruit_TLC5947 tlc = Adafruit_TLC5947(NUM_TLC5974, clock, data, latch);

void setup() {

Serial.begin(9600);

pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

tlc.begin();

tlc.setPWM(0, 2000);
tlc.write();

}

void loop() {
}

und auf den Arduino geladen.

Jetzt zur großen Frage: Warum leuchtet die LED nicht? :o :sob:

Vielen Dank schonmal für eure Bemühungen und vergebt mir mögliche Anfänger - Fehler, denn wie gesagt: Solange bin ich noch nicht dabei :wink:

Und Widerstand um die Konstantstromquelle einzustellen hast du vergessen?

Seite 13:

Außerdem habe ich von OUT1(TLC) an eine LED geklemmt, die dann auf GND geht.

Das ist auch falsch. Das sind Open-Drain Ausgänge. Der Strom fließt von +Ub in das IC hinein. Siehe erste Seite des Datenblatts

Serenifly:
Und Widerstand um die Konstantstromquelle einzustellen hast du vergessen?

Ja den habe ich tatsächlich vergessen :blush: :blush: Bin irgendwie darauf gekommen, dass man ihn braucht wenn man einen geringeren Strom als 30mA haben möchte - bin ich offensichtlich durcheinander gekommen, denn ich finde auch die Stelle nicht mehr die mich darauf gebracht hat...

Das mit den Open - Drain Ausgängen, habe ich auch falsch verstanden.
Ist es so richtig:

Ich komme von + auf die LED und dann an OUTx...?

Grüße

Philipp

PhilippR:
Ich komme von + auf die LED und dann an OUTx...?

Ja. Das hat den Vorteil dass die Betriebsspannung der LEDs höher als 5V sein kann. Man kann die z.B. mit 12V oder 24V betreiben und mehrere LEDs in Reihe hängen.

Danke für deine Hilfe. Jetzt beantworte mir noch bitte eins:

Ich muss natürlich meine Außenspannung (+) so einstellen, dass ich die richtige LED Spannung genau erreiche ? Da kann der TLC... mir nichts abnehmen oder wie wird das normalerweise gelöst (da ja verschiedene LEDs (Farben) verschiedene Spannungen haben)?

Jeder Ausgang ist eine Konstantstromquelle. Intern stellt sich jeder Ausgang automatisch so ein, dass genau der Strom fließt den du mit dem Widerstand einstellst.
Bei einer LED pro Ausgang versorgst du die einfach mit 5V und gut ist (wobei bei anderen Farben als blau und weiß auch 2 LEDs an 5V gehen sollten).

Allerdings solltest du 24 LEDs nicht mit dem Spannungsregler vom Arduino versorgen! Das geht zwar bei 20mA geradeso (zumindest bei einem 7V Netzteil), aber besser ist es ein 5V Netzteil nehmen und damit auf die 5V des Arduino Boards, den TLC und die LEDs zu gehen.

Ja das mit der Versorgung vom Arduino sollte nur zu Testzwecken mit einer LED sein.

Okay, das heißt also auf die LED - Spannung "kommt es nicht so ganz drauf an"...? Sprich ich <könnte> auch 12V an eine LED hängen und er würde sich so einstellen, dass der Strom passt und gut?

Ja. Die Versorgungsspannung der LEDs kann max. 30V sein.

EDIT:
d.h. du könntest ein 12V Netzteil nehmen. Das an Vin anschließen. Dann von da an die LEDs. Und von 5V auf den TLC.

Danke für deine Hilfe. Selten so schnelle und kompetente Hilfe in einem Forum bekommen!
:sunglasses: :smiley: :slight_smile:

Nachtrag.
Die Ausgänge des TLC5947 sind Stromsenken. Der Strom fließt hinein Richtung Masse, Keine Stromquellen wo der Strom gegen Masse herausfließt.

Die max Versorgungsspannung der LED ist durch die max Verlustleistung des TLC5947 begrenzt. Ich nehme an Du hast den TLC im HTSSOP-Gehäuse gekauft nicht im mikrigen 5x5mm QFN Gehäuse. Das HTSSOP-Gehäuse hat auf der Unterseite eine Kühlfläche. Diese müßte auf Kupfer gelötet werden und mittel Durchkontaktierungen auf ddie Kupferfläche auf der anderen Seite die Wärme abführen.
Die max Verlustleistung ist bei verlötetem Kühlfläche und 25°C Lufttemperatur 5,3W. In Deinem Fall nehme ich an daß Du die Kühlfläche nicht verlütet hast und darum der TLC max 2,8W Verlustleistung verträgt. Bei Überschreiten der Verlustleistung schaltet eine Temperaturkontrolle den TLC ab solange bis er wieder kalt ist.

Die Verlustleistung ist hauptsächlich durch die Konstantstromsenken gegeben. Ein bißchen heizt auch die restliche Elektronik im TLC adbe vernachlässigen wir das mal.
Die Verlustleistung pro Ausgang ist die Versorgungspannung der LEd minus der Durchlaßspannung mal dem Konstantstrommal Duty-Cycle der PWM Ansteuerung. ZB 12V bei einer blauen LED mit 20mA auf halb gedimmt betrieben ergibt (12V- 3,4V)20mA0,5 = 86 mW.
Nehmen wir mal den Maximalwert: 24 rote Led mit 100% PWM:
(12V-1,4V)201*24= 5,088W
Das ist für Deinen TLC zu viel.

Lösung. Die Versorgungsspannung sollte nicht zu hoch gewählt werden. Bei einzelnen LED ( Nicht mehrere in Serie) an den Ausgängen reicht je nach Farbe 3,3V bis 5V vollens aus.
Bei 5V und 24 roten LED mit 100% Ansteuerung ergibt das 1,7W Verlustleistug. Da wird der Ziemlich heiß (Achtung Brandblasen) aber er funktioniert zuverlässig.

Grüße Uwe

Danke für den Hinweis.
Ja ich habe den TLC im HTSSOP Gehäuse gekauft und auf einen HTSSOP Adapter gelötet um damit einigermaßen gut "experimentieren zu können.

An den Kühlkörper habe ich nichts gelötet - für anfängliche Tests mit 1-2 LEDs sollte das also noch gehen, wie du schreibst...

Ich habe nun folgendes Problem: Ich habe eine Konstantstromquelle mit +5V. Der Arduino wird über den PC mit Energie versorgt.

Ich habe jetzt einen Widerstand für Iref eingesetzt. Den TLC habe ich wie oben beschrieben mit dem Arduino verbunden, - der Konstantstromquelle habe ich mit GND verbunden und +5V mit der LED Anode, die Kathode der LED habe ich mit dem TLC Ausgang 0 verbunden.

Das Problem ist nun folgendes: Es passiert immernoch nichts. Habe ich möglicherweise den TLC zerstört? Kann ich das testen?

Philipp