Go Down

Topic: [solved] Mehrfarbige LEDs über Transistor ansteuern - wie? (Read 5774 times) previous topic - next topic

Gelegenheitsbastler

Jul 18, 2013, 08:17 am Last Edit: Jul 24, 2013, 03:07 pm by Gelegenheitsbastler Reason: 1
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
Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

pylon

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?

Eisebaer

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

Gelegenheitsbastler

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

Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

Eisebaer

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

Gelegenheitsbastler

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
Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

Eisebaer

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.
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

Gelegenheitsbastler

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
Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

michael_x

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.

Serenifly

#9
Jul 18, 2013, 04:07 pm Last Edit: Jul 18, 2013, 04:15 pm by Serenifly Reason: 1

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.

Eisebaer

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

Gelegenheitsbastler

@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

Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

Serenifly

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.

Gelegenheitsbastler

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

Anfänger, der sich am Mega versucht. (Wegen Pin-Mangel bin ich vom Uno auf den Mega umgestiegen) Aktuelles Projekt: http://mfc-wittgenstein.

Eisebaer

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

Go Up