falsche Taste, jetzt darf ich alles wieder Tippen.
Ich habe folgenden Aufbau noch einmal gemacht.
Arduino Mega 2560
TLC5940
1 Blaue LED
12V Stromversorgung
Ich habe den Arduino Mega wie in Bild 1 mit dem TLC und den TLC mit der LED verbunden. Außerdem habe ich wie in Bild 2 die anderen Anschlüsse des Megas im vergleich zum UNO verwendet.
Ich habe alles neu zusammen gesteckt und 5 mal Kontrolliert, es sollte so also stimmen.
Als "Programm Code" habe ich folgendes auf den Arduino geladen.
Die LED blinkt ab und an, mehr nicht.
Liegt es an meiner Schaltung oder an meinem Code? Ich tendiere zum Code, ich weiß er ist sehr spartanisch, aber ich möchte gerade einfach nur verstehen wie es geht und was die befehle sind.
wenn ich das richtig sehe, hast Du die analogen pins (am foto links) genommen. Du mußt aber die PWM-pins mit der gleichen nummer auf der rechten seite nehmen, wenn ich mich recht erinnere. also 9, 11, 12 mit PWM.
suuper! das ist mir garnicht aufgefallen! hab ich gleich mal geändert und den Code habe ich wie folgt geändert.
Was sagst du/ihr zu dem Code? Es passiert so garnichts, eben ging wenigstens nach einer ewigkeit die LED an, jetzt passiert garnichts. Habe ich irgendeinen denkfehler im Code noch?
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?
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.
daMeier:
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.
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?
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.
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
dort geht man vom tlc in den emitter des transistors. ich dachte, man geht in die basis, um einen transistor zu steuern...
Hallo Stefan hallo daMeier
Ich bin kein Elektroniker, ich bin ein Elektrotechniker mit Hang zur Neugier und zur Elektronik
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:
alternativ mit einem PNP Transistor:
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.
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
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!
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.
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.
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!!!
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.