Arduino + TLC5940

daMeier:
Narbend,

habe es jetzt endlich mal geschafft, von dem Testaufbau zu einem ersten "Platinen" Aufbau geschafft.

Bei einem weiteren Testaufbau auf Platinen ist mir aufgefallen, dass "AUS" nicht ganz aus schaltet, es fließen weiter ca. 6V

Woran könnte das liegen?

Hab's auf nem breathboard wieder versucht, da hab ich das selbe.

Hat jemand ne Idee?

Wie mißt Du die 6V?
Welche Spannung hast Du zwischen Basis des Transistors und Masse?
Es könnte sein daß diese Spannung bei eingeschalteten TLC-Ausgang nicht unter 1,4V geht (ich nehme an Du verwendest den TIP121). Falls DIe Spannung nicht genügend klein wird damit der Transistor sperrt dann schalte eine Silizium-Diode (zb 1N4148) in Durchlaßrichtung zwischen TLC-Ausgang und Basis Transistor.

Grüße Uwe

Hey,

5V fließen über den 2.2k Widerstand in die Basis oder in den TLC.

Ja ist ein TIP121.

Die 6V habe ich direkt an der LED Strip gemessen, das ist also der Strom den der Transistor wohl mit PWM 4095 noch schaltet.

Also einfach mal den 2,2k Widerstand erhöhen, dann sollte ja weniger zur Basis fließen und nicht mehr schalten.

gruß

Spannung fließt nicht; Strom fließt.

Entschuldige, ist mir erst jetzt aufgefallen.
Das Verhalten ist richtig.
Der Transistor sperrt wenn der TLC den Ausgang "einschaltet" (den Ausgang auf Masse zieht)

Wenn Du das Diagramm auf Seite 13 von http://www.ti.com/lit/ds/symlink/tlc5940.pdf anschaust dann siehst Du daß während des BLANK-Impulses der Ausgang ausschaltet und somit der Transistor leitet und die LED ansteuert. Den BLANK Impuls braucht es damit ein neuer PWM-Zyklus startet. Also wird bei PWM von 100% der Ausgang kurzzeitig ausgeschaltet und somit die LED eingeschaltet.

Abhilfe:

  • Ein zusätzlicher Transistor und 2 Widerstände um das Signal zu invertieren
  • mein PCA9685

Grüße Uwe

Servus,

Ich war die ganze Zeit auf dem falschen weg? Sehr sehr schade und ärgerlich.

Leider verstehe ich beide deine Ansätze nicht ganz.

Wie müsste ich mit weiterem Transistor und Widerstand das Signal invertieren?

Worin unterscheidet sich der PCA9685 zum TLC5940 und wo finde ich ein gutes Tutorial um diesen mit dem arduino anzusteuern?

Kann doch nicht so kompliziert sein, ein paar LED Stripes mit dem Arduino zu schalten, dimmen und mischen.

Gruß

Versuchs mal probeweise mit einem zusätzlichen Transistor und sieh dan weiter:
Nimm einen NPN Transitor und schließ den Emittor auf Masse, die Basis an den AUgang TLC. Ausgang TLC mit 2,2KOHm auf +5V und collektor Transisto auf +5V. Kannst es mit einem TIP121 Versuchen und dann wenns funktioniert mit einem zb BC337 oder anderen NPN Transistor. Notfalls eine Diode in reihe zur Basis.
Basis TIP121 auf Collektor des anderen Transistors.

Der TLC5940 hat Konstantstromsenken als Ausgänge ( Konstantstrom von + Versorgungsspannung über Ausgang gegen Masse) Der PCA9685 ha Totem-Pole Ausgänge ( schaltet auf H und L) und I2C Interface.

Grüße Uwe

Servus Uwe,

wir können auch gerne noch hier etwas weiter Diskutieren, vieleicht kommen wir ja noch auf eine Lösung.

Also, seit unserem letzten Post, habe ich folgendes versucht.

Ich habe den 2,2kOhm Widerstand durch verschiedenste größere Ausgetauscht, in der hoffnung (ich weiß du sagtest das klappt nicht) dass der TLC bei "4095" doch aus schaltet. Das hat leider nicht geklappt.

Dann habe ich gedacht, nungut, wenn er bei "4095" irgend ein komisches Signal mit schickt, weswegen die LED Stripes noch glimmt, versuch es mal mit "4094". Das hab ich dann auch mit "4090" - "4094" gemacht, da haben die LED Stripes ebenfalls noch geglimmt.

Das mit dem Zusätzlichen Transisotr habe ich leider absolut nicht verstanden, wäre es zu viel "verlangt" ein kleines Schaltbild zu zeichnen und mir zu zeigen, dann versuche ich das auch gerne nach zu bauen.

In dem anderen Post, sagst du etwas von anderen Controllern, was hats damit auf sich?

Nun noch für mich zum Verständnis, warum glimmt die LED Stripe bei "4095"?

gruß Sven

Da das PWM-Signal am Ausgang auch bei 100% PWM on (= 4095) wegen des BLANK-Impulses immer kurzzeitig augeschaltet wird haben wir den ausgang der nicht dauernd eingeschaltet ist (= auf LOW gezogen wird) ist sondern kurzzeitig Ausgeschaltet wird. Durche den 2,2kOhm Pullup-Widerstand wird darum das Signal kurzzeitig HIGH und der Transistor schaltet Durch und kurzzeitig leuchtet die LEDs auf.

Abhilfe schafft ein zusätzliches negieren des Signals. Das amcht schon einmal der Transistor. Ein 2.Transistor macht das nochmal und alles ist in ordnung. Du hast 100% aus aber nicht mehr 100% ein sondern nur mehr 99,5% aber das sieht man nicht.

Schalte einen 2. Transistor mit JP1 an TLC-Ausgang mit 2,2kOhm Pullupwiderstand und die Basis des Transistors der die LED ansteuert an JP2.

Hab kein besseres Schaltbild gefunden:


Die LED mit Vorwiderstände hängen statt R4 am Transistor. Auch braucht es keine 2 Verschiedenen Versorgungspannungen.

Grüße Uwe

Servus Uwe,

hab mal versucht das nach zu "Zeichnen" damit ich es auch verstehe.

Kommt das hin? Welchen Widerstand sollte ich da nutzen? 2.2kOhm?

gruß

glaube die zeichnung war falsch, hier die neu.

passt das so?

ach noch zur info. die pins des transistor von rechts nach links 1, 2, 3 | 1 = Base, 2 = Collector, 3 = Emitter. Ist ein TIP121 immernoch.

gruß

Es fehlt der Widerstand vom Ausgang TLC auf +5V und zur Vollständigkeit bevor jemand auf falsche Ideen kommt der Vorwiderstand des LEDs.
Beispiel für Transistorwahl:
T1 ein BC337
T2 der TIP121
ps: Die Pinbelegung der Transistoren hab ich nicht kontrolliert.
Grüße Uwe

Ok,

aber ich verstehe nicht, wie das gehen soll, so ist der Ausgang des TLC mit widerstand an der Base des Transistors, ich dachte aber dort müsste man + auflegen, der Ausgang des TLC ist aber doch -. Aber wenn ich den widerstand von +5v an den Ausgang des TLC baue, dann ist es doch so wie bei der "alten" Schaltung, oder?

Auch weiß ich nicht, was diese Schaltung an meinem Problem ändert. Ich dachte so würde "an, 4095" auch an bei der LED bedeuten, aber ich sehe es nicht :frowning: im Prinzip ist das doch die selbe Schaltung wie vorher, nur das ich anstelle der LED Stripes einen Transistor schalte, der wiederum eine LED Stripe schaltet, mein Problem bleibt aber doch, oder?

Keiner aus der Nachbarschaft der mir helfen könnte da? :frowning:

Wo hängt mein Verständnis nun wieder? :slight_smile:

Der 2. Transistor invertiert das Signal.
Aus H wir L und umgekehrt.
Jetzt ist 4095 hell und 0 dunkel (wirklich dunkel).
Grüße Uwe

Ich check nicht wie oder warum oder wo, aber nun gut.

auch mein Schaltbild kommt mir nicht richtig vor, hier nochmal mit dem widerstand von +5V auf den Ausgang des TLC.

Stimmt das so? werde es dann morgen Abend versuchen aufs steckbrett zu bringen.

Ist schon richtig (unter der Annahme daß beide Transistoren BCE in dieser Reihenfolge haben).
Grüße Uwe

Hey,

in dem letzten Post zeigt er mir das Schaltbild nicht an, deswegen hier nochmal das Schaltbild, bevor ich es heute abend mal teste, wäre toll, wenn ihr mir kurz sagt ob das passt.

Hab mir das Datenblatt vom TIP121 mal angeschaut 1=B, 2=C und 3=E. Also passt.

werds heute abend mal testen.

gruß

Schaltung.JPG

Nabend,

es geht! Die 2 Transistoren Invertieren ihr Signal und Aus ist Aus (ganz Aus) und An ist An!!! :slight_smile:

Endlich, danke!

Verstehe zwar noch nicht ganz genau warum, aber es geht!

Nun noch 2 Fragen, wie muss ich die 4 verwendeten Widerstände berechnen oder geht das alles mit 2,2k Ohm?
Warum soll ich für den 1. Transistor einen anderen als den TIP121 nehmen, kann ich nicht alles mit dem TIP121 bauen? Wo ist der Unterschied zu dem BC337?

nochmals vielen dank!!!

Warum soll ich für den 1. Transistor einen anderen als den TIP121 nehmen, kann ich nicht alles mit dem TIP121 bauen? Wo ist der Unterschied zu dem BC337?

Schau sie dir z.B. bei Reichelt an: Wer was ist, kriegst du selbst raus.

Leistungstransistor 0,35 EUR
Ausführung:NPN-Darlington
Gehäuse:TO-220
Uces: 80 V
Ic: 5 A
Ptot: 65 W

Kleinleistungstransistor 0,04 EUR
Gehäuse TO-92
Ausführung NPN
Uces: 45 V
Ic: 500 mA
Ptot: 625 mW

Zwei TIP121 kannst du schon nehmen. Das ist wie mit einem 7.5t LKW Brötchen holen fahren. Geht nicht wirklich besser als mit einem 750 kg Polo. Aber es geht.

BC337 ist übrigens nur ein Beispiel. Kannst du durch *jeden NPN * Transistor ersetzen, der in deiner Bastelkiste rumfliegt. Einen BC337-40 kannst du auch an die 24V (statt 12V) anschließen, wenn du willst.

Wie schon michael_x sagte weilder BC337/40 kleiner und billiger ist. Du braucht beim 1. Transistor keine so hohe Verstärkung.
Der BC337 ist ein Standarttransistor mit guter Verstärkung und höherem Strom (500mA bzw 800mA je nach Datenblatt.)
Grüße Uwe

OK, schau ich also was mein händler um die ecke da hat damit ich es mal bauen kann.

wie siehts mit den Widerständen aus? alles mit 2,2k Ohm?

gruß

Hallo Liebe Community,

ich hoffe mein Problem passt hier in dieses Topic.
Ich versuche jetzt seit geraumer Zeit eine 7-Segment anzeige zum laufen/blinken zu bekommen. Dazu verwende ich den ebenfalls den TLC5940 in Verbindung mit dem Teensy 3.1 und der passenden Libary von folgender Homepage: Google Code Archive - Long-term storage for Google Code Project Hosting.

Zu meiner Problembeschreibung:

Ich will eigentlich nur dass Standardprogramm laufen lassen, indem die LED's, in meinem Fall die 7-Segmente in der Helligkeit varrieren und durchlaufen. Wenn ich versuche die Segmente mit dem Befehl Tlc.set() zu verändern hat das keinen Einfluss auf die Helligkeit, sprich egal welchen Wert ich einstelle (1-4095) die Segmente bleiben gleich dunkel. Nur wenn ich den befehl Tlc.setall() verwende kann ich die Helligkeit varrieren, aber eben nur von allen.

Zudem ist die Helligkeit bei Tlc.set(x, 4095) sehr dunkel, wobei bei Tlc.setall(4095) die Segmente kräftig leuchten, so wie es sein sollte.

Meine Verdrahtung hab ich auch schon einige Male kontrolliert und keinen Fehler finden können, so langsam bin ich am verzweifeln.

Ich hoffe Ihr könnt mir einen Tipp oder Hinweis geben.

Liebe Grüße