Pages: 1 [2] 3 4 ... 6   Go Down
Author Topic: Arduino + TLC5940  (Read 8811 times)
0 Members and 1 Guest are viewing this topic.
Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Jetzt noch 2 Fragen.

- die LED Intensität wird von 0 - 4095 eingestellt. (Ist das richtig und fix?)
- kann man das irgendwie in RGB Werte umrechnen um Farben aus der RGB Farbpalette mit RGB LEDs zu mischen?

Gruß

-Ja
- annäherungsgemäß: Farbwert pro Farbe * 16.  ( diese Rechnung beachtet nicht unterschiede in der Farbe der einzelnen Grundfarben)

Grüße Uwe
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Z.B.:

Code:
Blue = map(ColorValue, 0, 255, 0, 4095);

Wenn jeder Wert der RGB-Palette durch ein Byte dargestellt wird, also Zahlen von 1 - 255 anehmen kann dann wie im Beispiel oben.

http://arduino.cc/en/Reference/Map
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, jetzt wo das endlich läuft, zum nächsten ausbauschritt:

ich möchte mehrere LED Strips, teilweise recht lange, so getrennt steuern. Bin mir nicht sicher, was der TLC5940 an Strom verträgt, aber denke mit 1A dürfte er überlastet sein?

Also würde ich gerne mit einer Transisotrschaltung arbeiten.

Ich habe schon Arduino PWM ausgänge mit Transistor genutzt um LED Strips zu steuern, das hat geklappt. Aber der Arduino gibt mir ja +5V die dann den Transisotr auf GND schalten und auch das +12V der LED Strips auf GND legen. (komisch ausgedrückt, aber ich hoffe ihr versteht das).

Der TLC5940 schaltet aber wenn ich das richtig verstehe doch -5V quasi. also genau anders herum als der Arduino.

Welchen Transistor TYP brauche ich dann NPN oder PNP?
Geht das überhaupt so, wie ich es mir grade vorstelle?
Der Transisot benötigt normalerweise ja auch einen "Vorwiderstand" damit nicht zu viel Spannung vom Arduino gezogen wird. Das blockt der TLC5940 aber doch schon mit seinem Widerstand, ja?

gruß
Logged

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1895
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

Quote
Ich muss also nach jedem Befehl Tlc.update eingeben, dachte nur einmal am Schluss, was ein Aufwand zum Programmieren.

...ist in die falsche richtung gedacht. Du mußt es weder nach jedem befehl(set, setAll...) eingeben, noch nur eimal am schluß, sondern wenn Du willst, daß alle änderungen, die Du gemacht hast, tatsächlich am tlc gesetzt werden.
das scheint nur in Deinem beispiel aufwendig, weil Du ja nur einen kanal benutzt, aber stell Dir vor, Du verwendest achzig kanäle. so wie ein schieberegister funktioniert, müssen IMMER ALLE kanäle auf einmal gesetzt werden, auch wenn sie sich nicht verändern.

gruß stefan
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, jetzt wo das endlich läuft, zum nächsten ausbauschritt:

ich möchte mehrere LED Strips, teilweise recht lange, so getrennt steuern. Bin mir nicht sicher, was der TLC5940 an Strom verträgt, aber denke mit 1A dürfte er überlastet sein?

Also würde ich gerne mit einer Transisotrschaltung arbeiten.

Ich habe schon Arduino PWM ausgänge mit Transistor genutzt um LED Strips zu steuern, das hat geklappt. Aber der Arduino gibt mir ja +5V die dann den Transisotr auf GND schalten und auch das +12V der LED Strips auf GND legen. (komisch ausgedrückt, aber ich hoffe ihr versteht das).

Der TLC5940 schaltet aber wenn ich das richtig verstehe doch -5V quasi. also genau anders herum als der Arduino.

Welchen Transistor TYP brauche ich dann NPN oder PNP?
Geht das überhaupt so, wie ich es mir grade vorstelle?
Der Transisot benötigt normalerweise ja auch einen "Vorwiderstand" damit nicht zu viel Spannung vom Arduino gezogen wird. Das blockt der TLC5940 aber doch schon mit seinem Widerstand, ja?

gruß

Die Ausgänge des TLC sind Konstantstromsenken (sie halten den Strom der von +Pol über die LED in den Ausgang gegen Masse fließt).

Damit Du einen Transistor ansteuern kannst mußt Du am Ausgang einen Widerstand von ca 2kOhm auf +5V schalten und die Basis des NPN Transistors auf den Ausgang des TLC. Den Emittor auf Masse und - Pol der LED-Strips auf den Kollektor. Den Pluspol des Strips auf + Pol der Spannungsversorgung. Die LED konnen mit 12 V versorgt werden, die Masse müssen zusammengeschaltet werden.

Grüße Uwe 
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey,

boa, ich steh total auf em schlauch ...

Die +5V nehem ich vom Arduino ausgang, (stimmt das)
gebe die, mit 2kOhm auf den Transistor,
gebe dann den Transistor auf den TLC Channel,
nehme dann 12V auf die LED Strip und gebe deren "Ausgang" ebenfalls auf den Transistor.
Dann bringe ich die GNDs zusammen (wo?)

Fließen dann nicht die 12V und xxA von den LEDs durch den TLC? ist das nicht genau falsch?

oder hab ich (mal wieder) nen denkfehler?

gruß


Logged

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1895
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

natürlich hast Du einen denkfehler. Du denkst nämlich, daß leute wie wir jemals einen elektroniker verstehen können. glaub mir, das geht nicht. sie sind nett, sie meinens gut, aber sie reden in einer fremdsprache.
Quote
mußt Du am Ausgang einen Widerstand von ca 2kOhm auf +5V schalten
verstehe ich auch nicht. wird der strom für die steuerung des transistors nicht schon durch den widerstand am tlc geregelt?
und völlig durcheinander komm ich mit
http://www.ti.com/lit/an/slva280/slva280.pdf
dort geht man vom tlc in den emitter des transistors. ich dachte, man geht in die basis, um einen transistor zu steuern...

gruß stefan
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nabend,

ja bin nur ein IT Systemelektroniker! smiley

Aber alles wird gut! smiley

Kann uns jemand erleuchten?

danke!
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Stefan hallo daMeier
Ich bin kein Elektroniker, ich bin ein Elektrotechniker mit Hang zur Neugier und zur Elektronik  smiley-wink smiley-wink

http://www.ti.com/lit/an/slva280/slva280.pdf
Ist um die Maximalspannung des Ausgangs zu erhöhen (limit des TLC ist 17V) und so mehr LED in Reihe schalten zu können. Der Strom fließt immer in den TLC hinein.

Der Ausgang des TLC ist ein open collektor und hält den Strom konstant. Der Wert wird mit dem Widerstand an Pin Iref eingestellt.

Der TLC kann max 120mA bringen.

Ich meinte das mit dem Transistor so:
http://arduino.cc/forum/index.php/topic,15087.msg110828.html#msg110828

alternativ mit einem PNP Transistor:
http://arduino.cc/forum/index.php/topic,94262.msg708452.html#msg708452

oder so wobei der L317 als Konstantstromquelle verwendet wird und durch einen Widerstand ersetzt werden kann. Bei einer 12V LED Strips sind die Widerstände eingebaut und es braucht keine zusätzliche Strombegrenzung. Den 10kOhm Widerstand würde ich aber kleiner machen.


Grüße Uwe


 
« Last Edit: November 09, 2012, 04:01:19 pm by uwefed » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Um eine Transistor zu treiben ist der PCA9685 besser geeignet da dieser Totem Pole Ausgänge besitzt (schaltet auf 0 und +5V).
Ansonsten ist er ähnlich. Ansteuerung über I2C.
http://www.nxp.com/documents/data_sheet/PCA9685.pdf

Der PCA ist nicht im DIL-Gehäuse erhältlich.
Eine Platine findest Du unter:
http://www.adafruit.com/products/815 in Deutschland: http://www.watterott.com/index.php?page=search&page_action=query&desc=on&sdesc=on&keywords=9685&x=0&y=0
Bibliothek:
https://github.com/kasperskaarhoj/PCA9685-Arduino-Library
Grüße Uwe
« Last Edit: November 09, 2012, 04:14:55 pm by uwefed » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Ich verstehe es nicht. Aber nun gut. :-)

Hab es aber mal nachgebaut und getestet, es geht leider nicht.

Ich habe +5V mit 8200 Ohm (du meintest ja ich soll den 10k kleiner machen und 8200 hatte ich noch) mit einem Channel vom TLC.

Dann habe ich +12V mit der LED Stripe verbunden und (zum Test) nur den GND der Blauen LED an de Collektor des Transistor.

Den Emitter vom Transistor habe ich mit dem GND der 12V verbunden, soweit auch alles klar und normal. Was die Ansteuerung des Transistor betrifft.

Aber normalerweise muss die Basis des Transistor doch mit + bedient werden und alles Strom fließt dann über den Emitter ab.

In diesem fall habe ich aber wie in der Zeichnung die Basis mit dem "buddig" am TLC Channel verbunden.

Fazit: geht nitt!

Aus meinem verständnis heraus kann's ja auch nicht gehen.

Achja, der Transistor ist ein BD243 (NPN).


Der PCA9685 schaltet also +5V dann kann ich mit dem also ohne Probleme die Basis des Transistors ansteuern.

PLatine ist nich wichtig, würde mir bei RS Elektronik den Chip bestellen. Kann ich hiervon auch 2 oder 3 am Arduino anschließen wie es beim TLC möglich ist. Und hat jemand ein Bildmoder eine Zuordnung, welche Arduino Pins ich mit welchen PCA Pins verbinden muss?

Danke für eure Hilfe.

Was ich selbst schon geschafft habe, ist den Arduino Mega durch einen Nano zu ersetzen! :-)

Gruß
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast Du den minus-Pol des 12V Netzteils mit der Masse des Arduino zusammengeschlossen?

Der BD243 ist keine gute Wahl. Er hat, wie alle Leistungstransistoren, eine relativ kleine Stromverstärkung von typischerweise 60 bis 100 je nach Collektor-Strom.
Bei 1A LED-Strippe sind das mindestens ca 16,7mA (hfe =60) Basistrom damit der Transistor in Sättigung geht. Bei 5V sind das maximal ein Widerstand von ca 250 Ohm. Also sind 8200 Ohm viel zu viel. Außerdem mußt Du den Konstantstrom des TLC auf ca 20mA stellen.

Lösung: nimm einen TIP120. Das ist ein Darlingtontransistor mit hfe von 1000 und durch die doppelte Diodenstrecke zwischen Basis und Emitter ist er auch leichter abzuschalten.

Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

Verstehe nur noch Bahnhof! ;-)

Das übersteigt wohl doch meine Kenntnisse! Habe Gehoft, es wäre einfacher.

Was sagst du zu dem PCA9685, würde der meine Probleme vereinfachen?

Kann man dem TLC nicht einfach + ausgeben lassen? :-)

Ich versteh einfach nicht, wie - Ausgabe vom TLC die Basis ansteuern kann.

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe,

Verstehe nur noch Bahnhof! ;-)
Das übersteigt wohl doch meine Kenntnisse! Habe Gehoft, es wäre einfacher.
Was sagst du zu dem PCA9685, würde der meine Probleme vereinfachen?
Nein, nicht wirklich significant.
Er verbraucht weniger Strom und da er den Ausgang auf HGH schalten kann brauchst Du keinen Pullupwiderstand der Strom verbraucht wenn die LED ausgeschaltet sein sollen.

Quote from: daMeier
Kann man dem TLC nicht einfach + ausgeben lassen? :-)
Nein.
Der TLC kann nur einen gewissen Strom auf Masse fließen lassen. ZB so wie ein ULN2803 nur mit zusätzlicher Strombegrenzung = Konstantstromsenke.

Also kann der TLC kein HIGH-Signal ausgeben!!!

Quote from: daMeier
Ich versteh einfach nicht, wie - Ausgabe vom TLC die Basis ansteuern kann.
Das HIGH-Signal muß vom Pullupwiderstand kommen.
Dieser muß genügend Strom liefern damit der Transsitor durchschaltet.

Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, versuche ich mal mein Verständnis Glück wenn ich es verstehe kann ich es vielleicht besser umsetzen.

Solange der TLC nicht schaltet, wird der 5V Strom vom 10k Ohm Widerstand vernichtet?

Aber was passiert wenn der TLC schaltet, dann fließt der Strom doch auch durch den Widerstand in den TLC.

Oder?
Logged

Pages: 1 [2] 3 4 ... 6   Go Up
Jump to: