Arduino Forum

International => Deutsch => Topic started by: Gelegenheitsbastler on Jul 18, 2013, 08:17 am

Title: [solved] Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 08:17 am
Ich möchte 4pin LEDs über die digitalen Ausgänge ansteuern. http://bilder.mw-shop.com/bilder/leds/5mm/5mm_leds_4pin.JPG Ich benötige für meine Anwendung nur drei feste Farben, die ich über Vorwiderstände einstelle.

Da es mindestens 2 LEDs sein weden, komme ich über die 40 mA drüber. Daher muss das wohl über Transistoren gelöst werden. Ich muss die LEDs auf Masse anschließen und die einzelnen Pluspole per Transistor schalten.

Ich habe im Buch Arduino Praxiseinstieg gesucht und ein Beispiel gefunden, in dem ein Relais von einem BC546 (NPN) angesteuert wird. Der digitale Ausgang des Arduino geht auf die Basis. Geht dieser Ausgang auf high, schaltet der Transistor die Masse durch und das Relais zieht an.

Ich muss aber den Pluspol schalten. Wie mache ich das und welcher Transistor eignet sich dafür?  

Frank
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: pylon on Jul 18, 2013, 10:53 am
Wenn ich das von wegen Pluspol richtig interpretiere, dann müsstest Du einen PNP-Transistor dafür nehmen. Die Schaltung invertiert dann aber, d.h. bei einem LOW am Arduino-Ausgang ist durchgeschaltet, bei HIGH wird blockiert. Normalerweise werden LEDs aber über NPN-Transistoren geschaltet, also so, wie Du das im Buch gesehen hast. Welchen Grund gibt es, das umzukehren?
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 18, 2013, 11:43 am
hi,

versteh' ich jetzt nicht. Du schreibst von "einzelnen pluspolen schalten", also haben die rgb-leds ein gemeinsames GND.
das sind doch dann genaugenommen nur 6 leds, die Du halt einzeln an 6 pins des arduino anschließt. wo kommst Du da über 40mA?

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 02:28 pm
Also entweder habe ich es nicht vernünftig beschrieben, oder bin gedanklich völlig falsch abgebogen. Schaut euch bitte das Bild in dem Link an. Alle Farben haben eine gemeinsame Masse. Der Verkäufer schreibt:


Technische Daten
   • Leuchtfarbe: RGB
   • Gehäusefarbe: Glasklar
   • Durchmesser: 5mm
   • Spannung:
         ? Rot: 2V - 2,4V
         ? Grün: 3,4V - 3,8V
         ? Blau: 3,4V - 3,8V
   • Strom: 20mA
   • Lebensdauer: 100000 Stunden
   •  4000 - 5000mcd
   • Temperatur: -40°C - +80°C
   • Leuchtwinkel: 25° - 35°

Da ich mehrere der LEDs verbauen werde passt es also nicht mehr mit dem Strom.

Mein Gedanke: Ich klemme LED-Masse an Arduino-Masse. LED Plus kommt an den Transistor. Der muss somit Plus schalten und nicht Minus. Oder denke ich da völlig falsch?

Frank

Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 18, 2013, 02:47 pm
hi,

Du kannst sehr wohl einzelne leds an den arduino hängen, und eine rgb-led sind drei einzelne leds. eingeschränkt bist Du durch die anzahl der pins und den gesamtstrom. ich bin jetzt nicht sicher, ich glaube, gesamt soll es 200 mA nicht überschreiten, also 3 RGB-leds. ein pin einzeln verträgt 40 mA.

für mehr nimm schieberegister wie das 74HC595, damit erschlägst Du auch das problem mit der anzahl der pins.

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 03:08 pm
Danke für die Info. Wenn das so ist, dann hat sich mein Frage erledigt. Ich hatte es so im Ohr, dass pro Pin nicht mehr als 20 mA belastet werden dürfen und insgesamt nicht mehr als 40 mA. Das muss wohl an der Hitze liegen ;)

Bei den Pins bin ich auf 2 RGB LEDs begrenzt. Ansonsten müsste ich auf den Mega ausweichen. Da überlege ich noch, was ich mache. Mit einem Register habe ich mich noch nie beschäftigt. Ich bin froh, wenn ich mit dem Arduino soweit klar komme, da baue ich erstmal (ohne Not) nicht noch weiter an. Trotzdem eine gute Idee.

Frank
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 18, 2013, 03:35 pm
hi,

Du schießt gerne mit kanonen auf spatzen  :) . ein mega nur wegen der pins...
glaub' mir, ich hab' keine ahnung von elektronik, aber sogar ich hab' das hinbekommen. schau mal hier:
http://www.arduino.cc/en/Tutorial/ShiftOut (http://www.arduino.cc/en/Tutorial/ShiftOut).
ist ganz einfach.
nur das löten ist dann so eine sache. Du kannst es auch auf einem steckbrett lassen, dann kannst Du den atmega328-chip aus dem arduino-sockel ziehen, ein quarz dazu und 2 kondesatoren, und einen neuen chip mit bootloader um 3€ nachkaufen.

will Dir aber nix einreden...

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 03:53 pm
Ja, die Geschichte mit den Kanonen und den Spatzen passt wohl. Manchmal gehts gut, manchmal nicht... Aber das ist OT.

Also gut, sollte ich zu wenig Pins haben, werde ich mir das nächer anschauen. Den Link habe ich gespeichert.

Kann man eigentlich Pin0 und Pin1 ganz normal mit nutzen oder sind die in irgend einer Form reserviert? Bisher habe ich die immer gemieden. Denn dann hätte ich 14 Pins, Minus 4 benutzte = 10... ...also drei RGB-LEDs und noch ein Pin frei :)

Andererseits, was mache ich mit meinen Tastern und der Ansteuerung des MCP 4921? Aber damit beschäftige ich mich später. Aber ich sehe schon, es läuft doch auf deine Idee hinaus. Oder doch der Mega? Mhhhh... Mann wird sehen.

Frank
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: michael_x on Jul 18, 2013, 04:02 pm
Quote
Ich benötige für meine Anwendung nur drei feste Farben, die ich über Vorwiderstände einstelle.


Mehr zu meinem Verständnis:
Willst du damit 3 voreingestellte Farben umschalten ( z.B. Rot - Gelb - Grün ) und den Farbton fest (über 3x3 Vorwiderstände) einstellen ?
Dann ist die Zahl der Arduino-Pins und der jeweils fliessende Strom aber mehr oder weniger unabhängig von der Zahr der LED - Pins.

Besser wäre es aber, die 6 PWM Pins des Ardiono UNO zu verwenden, um die gewünschte Farbe per Software einzustellen.
Damit kannst du dann jede beliebige Farbe für jede der beiden LED erzeugen.
Die Vorwiderstände würden dann so angepasst, dass kein Strom > 20mA wird, und evtl. bei 3 * 255 ein mehr oder weniger weisses Licht rauskommt.

Schieberegister haben übrigens mit den 6 UNO Hardware-PWM Pins nichts mehr zu tun. Das wird dann ein anderes Projekt.
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Serenifly on Jul 18, 2013, 04:07 pm

für mehr nimm schieberegister wie das 74HC595, damit erschlägst Du auch das problem mit der anzahl der pins.

Ein Logik-IC treibt aber i.d.R. keinen Strom. Das HC595 macht lediglich 70mA für das ganze IC. Also etwa 8,5mA pro Kanal. Das reicht für 3mm LEDs, aber 5mm LEDs betreibt man i.d.R. mit 10-20mA.

Wenn man das richtig macht, muss da noch ein Treiber dahinter. Da nimmt man meistens etwas aus der ULN Serie. z.B. ULN2803 (8-Kanal Darlington Array für 5V TTL/CMOS)

Oder sowas: http://www.ti.com/lit/ds/symlink/tpic6c595.pdf
Das ist eine Schieberegister das 250mA treibt

Ich halte es für einen großen Fehler, das nicht auf die ShiftOut Seite hinzuschreiben. Das funktioniert gerade so, aber es läuft außerhalb der Spezifikation. Nicht gut wenn man Anfängern so einen Unsinn beibringt. Man sollte sich zumindest über die Problematik im Klaren sein, und wenn man es doch macht, nicht zu weit über die Grenzen gehen.
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 18, 2013, 04:15 pm
hi,

Du kannst 0 und 1 auch nutzen, solltest aber nichts dran hängen haben, während Du einen sketch raufladest.

was wichtiger ist: Du kannst die sechs analogen pins auch normal als digitale benutzen.
Quote
The analog input pins can be used as digital pins, referred to as A0, A1, etc.


also wieder sechs mehr...

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 04:47 pm
@Stefan: Die analogen Pins brauche ich fast alle für analoge Signale und I²C.

@sSerenifly: Gut dass du das sagst, daran hätte ich nicht gedacht.

@Michael: Im Prinzip hast du das genau so verstanden, wie ich es vorhabe. Feste Widerstände stellen die Farben (grün, orange, rot) ein und werden direkt an die I/O Pins angeschlossen. Damit soll die Temperatur und die Last farblich dargestellt werden.

Spätestens mit deiner Info ist klar, dass ich um den Mega nicht drum rum komme. Denn ich habe an drei der PWM-Ausgänge schon Ventilatoren angeschlossen. Das müsste doch dann von der Programmierung her in etwa so sein wie eine Dimmfunktion, nur halt mit fixem Wert. Ich glaube in dem Buch "Arduino Praxiseinstieg" ist ein Beispiel. Das werde ich mir mal anschauen. Das tolle an deiner Idee wäre, dass ich die Farben vielleicht sogar fließend wechseln könnte, ohne "hart" umschalten zu müssen. Ob das dann noch den Zweck erfüllt, müsste man ausprobieren.

Frank

Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Serenifly on Jul 18, 2013, 05:14 pm
Eine 5000mCd LED ist übrigens sehr hell. Wenn du das nur als Status-Anzeige nimmst, kannst du probieren ob 10 oder 15mA auch ausreichen. Sonst blendet das nur wenn man drauf schaut.
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 18, 2013, 05:20 pm
Ja, das habe ich mir auch schon überlegt. Ich werde da wohl ein wenig tüfteln müssen, um eine brauchbare Lösung zu bekommen. Vielleicht klappts am kommenden Wochenende.

Frank

Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 18, 2013, 05:22 pm
hi,

das mit dem 74HC595 war mir klar, aber das beispiel wurde wahrscheinlich deshalb nicht geändert, weil noch niemand probleme damit hatte...

aber egal: eine alternative wären WS2812 RGB-leds, da kanst Du auch tausend mir einem pin des arduino (insgesamt 1 pin) in jeder farbe ansteuern. mit der dazugehörigen library ein kinderspiel.
die leds sind normalerweise auf strips, die man auseinandertrennt, wo man will, gibts aber auch einzeln.
die auf strips sind leichter zu händeln, weil große lötflächen. 60  stk etwa 25 euro

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: michael_x on Jul 18, 2013, 05:50 pm
Quote
Im Prinzip hast du das genau so verstanden, wie ich es vorhabe. Feste Widerstände stellen die Farben (grün, orange, rot) ein und werden direkt an die I/O Pins angeschlossen. Damit soll die Temperatur und die Last farblich dargestellt werden.

Spätestens mit deiner Info ist klar, dass ich um den Mega nicht drum rum komme. Denn ich habe an drei der PWM-Ausgänge schon Ventilatoren angeschlossen.


Nein, mit deiner Antwort ist mir klar, dass du gar keine PWM brauchst, um deine RGB LED anzusteuern.

Probier mal, ob du nicht im einfachsten Fall mit nur 2 beliebigen Pins pro LED auskommst.

Bei einer Common Cathode RGB:
        Pin A  Pin B
------+----------------
Rot      HIGH   LOW
Grün     LOW    HIGH
Orange   HIGH   HIGH
Aus      LOW    LOW

Einen Blaustich kriegst du leicht dazu, um das Orange dunkler zu kriegen, brauchst du doch 3 Pins.



Und die ganzen Shiftregister-Diskussionen, passen auch, für diesen Nicht-PWM Fall...
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Serenifly on Jul 18, 2013, 05:55 pm
Das kommt darauf wie viele Abstufungen er will, oder? Wenn er nur von blau (kalt) auf rot (heiß) umschalten will, ist PWM natürlich unnötig. Aber wenn da entsprechend der Temperatur Mittelwerte farblich dargestellt werden sollen ist das was anderes.
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: michael_x on Jul 18, 2013, 06:21 pm
Quote
Das kommt darauf wie viele Abstufungen er will

Ich hab ihn so verstanden, dass er nur 3 Stufen will:   grün, orange, rot ( "aus" als 4. Möglichkeit hat er noch nicht mal erwähnt ).

( mit 3 Pins -- und 9 widerständen und 3 Dioden -- ) kriegt er max 7 Stufen (+aus) hin,

ohne PWM
[Nachtrag:] ... aber mit ein bisschen Mathe und einem Gleichungssystem mit 9 Unbekannten
  ( hoffentlich haben alle das gleiche Vorzeichen, sonst muss man negative Widerstände kaufen gehen ) ;)
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 19, 2013, 06:31 am
Um das Rätsel zu lösen schreibe ich auch mal was dazu.

Ursprünglich wollte ich wirklich nur die drei Farben (grün, orange, rot) für die verschiedenen Temperaturbereiche darstellen. Die Idee mit PWM ist wirklich gut, aber ich denke inzwischen, dass es für den Zweck doch nicht so gut geeignet ist, da der Übergang optisch keine so große Warnwirkung hat wie das Umspringen von einer Farbe auf die andere.

Daher werde ich doch wieder zu meiner ursprünglichen Idee zurück kehren und die drei Farben über Vorwiderstände ansteuern. Die Knobellösung mit den 9 Variablen werde ich nicht nutzen. Mir reichen 3 Farben aus. Letztlich sehe ich die Vitalwerte des Gerätes ja auf dem Display. Aber so eine Warnleuchte hat doch auch was ;) Über den vierten Zustand "aus" habe ich auch kurz nachgedacht. Den könnte ich wählen wenn das Gerät zwar eingeschaltet ist, aber letztlich nichts tut. Ich denke das wird sich dann in der Praxis zeigen ob es sinnvoll ist oder nicht. Ich werde einen USB-Anschluss in die Front integrieren, so dass ich immer mal "auf die Schnelle" den Sketch ändern kann. Aber zuerst muss klar sein, welche Hardware noch in die Front soll - und das wird mit den vielen Möglichkeiten des Arduino irgendwie immer mehr ;)

Ich hatte mir die Tage für 13,99 einen Mega Clon aus der ebucht (390622216821 mittlerweile teurer) bestellt. Der ist inzwischen angekommen. Zu meinem Erstaunen sieht der nicht so aus wie abgebildet sondern genau so wie ein Arduino Mega. Ich kann nicht erkennen, ob das jetzt ein Original oder eine Fälschung ist. Den habe ich nun angeschlossen und den Sketch (mit inzwischen fast 16 KB) aufgespielt. Das läuft genau so einwandfrei wie vorher, nur dass ich mir um Pins und Speicher vorerst keine Gedanken mehr machen muss :)

Frank
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Eisebaer on Jul 19, 2013, 10:58 am
hi,

ein "gefälscht" in dem sinn gibt es nicht. jeder darf einen arduino nachbauen ubd auch verkaufen.

was man nicht darf, ist vortäuschen, daß es ein arduino ist. wenn ich dazuschreibe, daß er kompatibel zum arduino ist, ist das ok. das arduino-zeichen darf natürlich auch nicht drauf sein, und auf dem foto ist es ja auch nicht.
wenn's jetzt auf Deinem doch drauf ist, ist das immer noch besser, als es wird dem kunden auf der ebay-seite vorgemacht.
von der qualität her ist es halt immer ein risiko, aber wenn's läuft, ok.
ein "echter" arduino ist es zu dem preis auf keinen fall, deswegen werden weitere fragen von Dir hier im forum natürlich nicht mehr beantwortet.   :) :) :)

gruß stefan
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 19, 2013, 11:30 am
Dann klemme ich (mindestens) ein Bauteil ab, damits mit den Pins passt, nehme wieder den Uno und bekomme doch noch Antworten ;)

Übrigens beim Uno war es das selbe. Ich habe einen "echten" über amazon bestellt und einen "kompatiblen" aus China. Die sahen exakt gleich aus. Gleiche Logos an gleicher Stelle, etc. Der vermeintliche Original-Uno von amazon hat aber nur genau 1 x flashen ausgehalten. Beim zweiten Versuch wurde er nicht mehr erkannt und die LED für das Senden der Daten blinkte auch nicht mehr. Der war wohl hin, also ging es retour. Der kompatible läuft immer noch.

Frank

Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: uwefed on Jul 19, 2013, 01:01 pm

Ich hatte mir die Tage für 13,99 einen Mega Clon aus der ebucht (3906222168xx mittlerweile teurer) bestellt. Der ist inzwischen angekommen. Zu meinem Erstaunen sieht der nicht so aus wie abgebildet sondern genau so wie ein Arduino Mega. Ich kann nicht erkennen, ob das jetzt ein Original oder eine Fälschung ist. Den habe ich nun angeschlossen und den Sketch (mit inzwischen fast 16 KB) aufgespielt. Das läuft genau so einwandfrei wie vorher, nur dass ich mir um Pins und Speicher vorerst keine Gedanken mehr machen muss :)
Frank


Du hast Zweifel, daß ein Board das 1/3 des Orginals kostet keine Fälschung ist?
Grüße Uwe
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 22, 2013, 07:56 pm
@Uwe: Wahrscheinlich hast du Recht und es ist ein Nachbau. Aber er läuft (bisher).

Die LEDs sind inzwischen mit Vorwiderstand an die PWM-Pins 2-4 und 5-7 angeklemmt. Die Ansteuerung der einzelnen LED-Farben ist in meinen inzwischen recht umfangreichen Sketch eingebaut worden und funktioniert. Die LED-Farben leuchten beim Überschreiten der vorgegebenen Temperatur- und Prozentwerte. Nun würde ich aus blau gerne orange machen. Welches Mischverhältnis muss ich dafür nehmen? Ich finde keine passenden Infos dazu. Daher habe ich mit Gimp rumprobiert. Wäre 240, 150, 50 ein orange? Schaut man in die LED, sieht man zwar von jeder Farbe etwas, aber ein orange ist das nicht.

Ich fürchte ich muss mich doch mit der Farbkombination blau - grün - rot abfinden :( Denn das funktioniert zumindest.

Frank
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: uwefed on Jul 22, 2013, 08:18 pm

@Uwe: Wahrscheinlich hast du Recht und es ist ein Nachbau. Aber er läuft (bisher).
...
Wäre 240, 150, 50 ein orange? Schaut man in die LED, sieht man zwar von jeder Farbe etwas, aber ein orange ist das nicht.
...

Nicht nur wahrscheinlich sondern sicher....  ;) ;)

Zu den RGB-Werten der verschiedenen Farben zB: http://www.javascripter.net/faq/rgbtohex.htm

Grüße Uwe
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: michael_x on Jul 23, 2013, 10:23 am
Quote
Wäre 240, 150, 50 ein orange?

Mal abgesehen davon, dass das auf die LED ankommt, und dass orange / hellbraun  etc. generell schwierig ist,
würde ich das Blau rausnehmen und je nach gewünschter Helligkeit das gelb (255,255,0) dunkler und mit weniger weniger grün als rot, bis etwa bei (240, 90, 0) etwas schönes rauskommt.

Quote
Schaut man in die LED, sieht man zwar von jeder Farbe etwas, aber ein orange ist das nicht.

Klare Farben ( Rot / Grün / Blau ) sind natürlich klarer ;)
Mischfarben sieht man hinter etwas Mattem besser. (Zur Not mit feinstem Schmirgelpapier die LED "polieren" )
Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 23, 2013, 10:37 am
Ich habe heute in aller Frühe mal etwas mit den Farbzusammenstellungen gespielt. Aber das Ergebnis ist noch nicht zufriedenstellend. Bisher habe ich nur klare LEDs verwendet. Dass die Farbmischung etwas besser "durchgemischt" wird, wenn das Licht gebrochen wird, habe ich mir auch schon überlegt und daher gleich nach dem Test eine Handvoll der gleichen LEDs in der diffusen Version bestellt. Zuerst hatte ich überlegt, die LED von hinten an die Front zu kleben und eine Folie oder ähnliches vor das Loch in der Front als Diffusor zu verwenden. Aber die Lösung sagte mir nicht zu.

Die von Uwe verlinkte Seite ist im Prinzip genau das, was ich gesucht habe. Jede Menge Farben mit passendem RGB Wert. Danke dafür!

Frank

Title: Re: Mehrfarbige LEDs über Transistor ansteuern - wie?
Post by: Gelegenheitsbastler on Jul 24, 2013, 03:07 pm
Kleiner Nachtrag:

Respekt an den Versender und die Post. Heute kamen die diffusen LEDs schon an. Das ist etwas völlig anderes und entspricht schon viel eher einem Orangeton. Wenn man ganz genau hinschaut, kann man noch etwas grün erkennen, aber beim normalen Hinschauen ist es ein Orangeton. Ich werde noch ein wenig mit den Vorwiderständen und der Farbmischung experimentieren. Dann werde ich auch meine drei Farben bekommen, nehme ich an.

Frank