Partyraumbeleuchtung - Ansteuerung der LED-"Cluster"

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Antworten
Benutzeravatar
LONy-TOOn
User
User
Beiträge: 24
Registriert: Do, 23.10.08, 14:49

So, 09.11.08, 23:39

Hi,
es geht um die geplante Beleuchtung die in diesem Thread diskutiert wurde:
viewtopic.php?f=28&t=5788

Ich möchte jetzt insgesammt 14 dieser "Cluster" (ein Cluster besteht je aus 3 roten, grünen und blauen 4-Chip SuperFlux LEDs) in dem Partyraum unterbringen. Jeder Cluster soll individuell in der Farbe angesteuert werden. Vom Prinzip her möchte ich das ganze so machen:
Prinzipschaltung.jpg
Die Transistoren (T rot, T blau, T grün) müssten maximal jeweils ca. 1,1A schalten und das auch noch sehr schnell. Wären da FETs besser geeignet? Leider kenn ich mich auf dem Gebiet überhaupt nicht aus :oops:
Die Vorwiderstände bei den LEDs haben noch keine Angabe, da ich nicht weiß wie hoch der Spannungsabfall an den Transistoren ist. Jeweils 0,7V also 1,4V... somit hätte ich dann 10,6V an den LEDs?

Gibt es eine art Schieberegister mit einem Eingang und mindestens 14 Ausgängen, so dass ich T1, T2, T3, ... T14 nicht alle extra an einen Ausgang des Mikrocontroller hängen muss, sondern nur noch einen Ausgang benötige, der dann das Schieberegister die 14 Ausgänge nacheinander duchschalten lässt. Weil somit könnte ich mit nur 4 Ausgängen meine 14 Cluster ansteuern :lol:

Vielen dank schonmal für eure Hilfe :)
Benutzeravatar
CRI 93+ / Ra 93+
Auserwählter
Auserwählter
Beiträge: 2801
Registriert: So, 19.10.08, 23:56
Wohnort: Hannover

Mo, 10.11.08, 00:06

1,1 A sind für bipolare Transistoren noch kein Problem (passender Typ vorausgesetzt). Wenn Du MOSFETs nimmt, solltest Du sog. Logic-Level-MOSFETS nehmen, d.h. solche die ab spätestens 4,5V am Gate voll durchschalten. Denn üblich sind eher 10V am Gate für den angegebenen R_DS_on (Drain-Source-Widerstand wenn eingeschaltet).
Logic-Level-MOSFETs kannst Du direkt an den Controller anschließen. Um ein unkontrolliertes Flackern bei unprogrammiertem Controller zu verhindern noch 10 kOhm Pull-Down vorsehen. (Oder Pull-Up, falls Du P-Channel-MOSFETS nimmst)

Bei bipolaren Transistoren fällt zwischen B und E immer ca. 0,6 V ab, aber zwischen C und E ist es i.d.R. weniger, z.T. weit unter 100 mV (das kommt aber stark auf den Typen an, ein so geringer Spannungsabfall ist eher selten, die SMD-Transitoren BCX 53 (NPN) oder BCX 56 kommt z.B. bei geringer Belastung soweit runter.) Üblich sind aber schon 0,3 bis 1V.

Um viele Module einzeln zu steuern, könnte man z.B. I2C-Chips von Philips nehmen, die einfache Ein-/Ausgänge bieten. Du müsstest dann nur +, - und 2 Signalleitungen einmal durch alle Module verlegen. CodeVisionAVR ist für Projekte bis 4 kB Größe kostenlos udn hat die low-level-Routinen für I2C bereits integriert. Programmiersprache wäre C.

Ich würde evtl. aber versuchen Gruppen zu bilden, die dann einzeln per Software-PWM dimmbar sind (Hardwaremäßig gehen nur 2, bzw. 3 PWM-Kanäle je nach Atmel-Typ. Ich empfehle den ATMega88V/ATmega88P (mit 8 kB Flash). Gibt als ATmega168 oder ATmega328 auch mit 16 oder 32 kB. Mit dem V oder P am Ende des Namens geht er zwar nur bis 10 MHz, braucht aber dafür sehr wenig Strom und arbeitet von 1,8 bis 5,5 V (max 4 MHz) oder 2,7 bis 5,5V (max. 10 MHz). Ein AVR mit 10 MHz ist ca. so schnell wie ein PIC mit 40 MHz.

Grundlagen zu Transistorenfindest Du hier http://www.elektronik-kompendium.de
Benutzeravatar
LONy-TOOn
User
User
Beiträge: 24
Registriert: Do, 23.10.08, 14:49

Di, 11.11.08, 00:49

Hi,
erstmal danke für deine ausführliche Antwort :D
Als Controller wollte ich den ATMega16 verwenden.. hab davon schon 2 Stück hier rum liegen. Ich hab schonmal einen kleinen Roboter gebaut der über einen ATMEGA8 gesteuert wurde, an dem hieng auch ein kleines Display usw. Damals hab ich den in C Programmiert und die Motoren konnte ich durch PWM in ihrer Drehzahl steuern... von der Programmierung her hab ich denk ich keine Probleme. Ich wollte das ganze mit Software-PWM machen ;)
Meine Denkblokade ist jetzt hier, dass ich vor und nach meinem Verbraucher (den LEDs) die Spannung ein- und ausschalten will. Bei so ziemlich allen Beispielen/Schaltplänen die ich gefunden hab wird immer nur nach dem Verbraucher die Masse sozusagen geschalten.
MOSFET Endstufe.jpg
MOSFET Endstufe.jpg (32.08 KiB) 5083 mal betrachtet
Würde es so gehn mit MOSFETs?

Ich hab hier ne tolle Übersicht gefunden: http://www.mikrocontroller.net/articles ... -Übersicht
Könnte ich da dann für meinen zweck einen IRL530 verwenden? Bei dem steht was von UGS 2V... ist das dann ein Logic Level MOSFET? Der kann 100V und 15A.. also selbst wenn er bei 5V noch nicht ganz durchgeschalten hätte würde es mir ja reichen?!

Noch ne Frage: Wenn ich jetzt die Cluster ganz schnell nacheinander durch schalte und dann jedem immer einen Farbwert zuweise dann ist bei 14 Cluster ja jeder schonmal maximal 1/14 der Zeitdauer eingeschaltet.. würde also sozusagen nur auf 7% PWM dauer laufen was aber dann der vollen Leuchtkraft, also 100% entspricht. Um jetzt aber trozdem wieder auf die ursprüngliche Leuchtkraft der LEDs zu kommen müsste ich den Strom erhöhen. Gibt es da Informationen wie weit ich den Strom erhöhen darf (wenn die LED wie gesagt nur maximal 7% eingeschaltet ist und die restliche Zeit kein Strom durch sie fließt)?
Ich will ja die 4-Chip Superflux LEDs verwenden. Der typische Betriebsstrom beträgt 80mA. Wenn ich jetzt davon ausgeh, dass die LED bei einem Strom von 80mA nur zu 7% leuchtet müsste ich ja rein Rechnerisch einen Strom von 1,1A fließen lassen um wieder auf meine 100% leuchtkraft zu kommen. Hat das schonmal jemand Probiert oder weiß da jemand näheres?
Ich hoffe ich hab mich halbwegs verständlich ausgedrückt und ihr versteht was ich mit meinen 7% usw. gemeint habe ;)

Wenn das mit der Stromerhöhung (Ok, 1,1A ist vermutlich ein bischen viel :lol: ) nicht klappen sollte, muss ich mir wohl oder übel eine andere möglichkeit ausdenken wie ich meine Cluster ansteuer. Wenn ich jeden einzeln Schalte bräuchte ich pro Cluster 3 Ausgänge (und 3 MOSFETS) was dann 42 benötigte Ausgänge macht. Also entweder weniger Cluster oder 2 Mikrocontroller über I2C oder ähnliches zusammen geschaltet und das wiederum klingt nach viel Programmieraufwand (hab noch nie was mit einem BUS gemacht, außer Profibus bei ner SPS auf der Arbeit, aber das ist ja was völlig anderes)
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 11.11.08, 10:29

1. Die 'beste' Mosfet Übersicht ist IMHO eigentlich beim Hersteller: http://www.irf.com/product-info/hexfet/
2. Für den Zweck (Dein Schaltbild) brauchst Du P-Channel MosFets (Ersatz für einen NPN Transistor=N-Channel MosFet; Ersatz für einen PNP Transistor=P-Channel MosFet). Weil der Chip aber nur 5V (oder 0V) ausgeben kann, musst Du den P-Channel MosFet über einen zusätzlichen NPN-Transistor steuern (im Prinzip ähnlich wie die PNP Transistoren in Deinen Schaltplan vom ersten Post)
3. Multiplexen mit Stromerhöhung: Möglich (meist wird bei den absolut Max. Ratings ein Faktor von 4-5 zum Nennstrom verwendet, 1/10 duty cycle und Pulslänge <0.1ms - siehe z.B. hier: http://www.soselectronic.com/a_info/res ... csec-h.pdf ). Insgesamt verlierst Du aber auf alle Fälle Leistung und Lebensdauer.
=> Besser (wie auch schon von CRI 93+ / Ra 93+ angesprochen) pro Cluster einen Chip der die ganze PWM steuert und seinen Sollwert per I2C von einem Master erhält. Da gibt es viele Code-Beispiele im Netz, ist nicht soo schwierig. Dann reichen auch billige N-Channel Mosfets (oder sogar einfache BC337 Transistoren), weil Du die '+Leitung' nicht schalten musst.
Benutzeravatar
LONy-TOOn
User
User
Beiträge: 24
Registriert: Do, 23.10.08, 14:49

Di, 11.11.08, 19:54

Hi,
danke für die Antwort.
Dann mach ich das Ganze denk ich so: Hab ich da noch irgend welche Denkfehler drin?
Cluster.jpg
Die Vorwiderstände kann ich dann einfach so berechnen als ob 11,4V anliegen (Also wegen den ca. 0,6V Spannungsabfall an dem Transistor). Ich nehm eh den nächstgrößeren in der Reihe.. da dürften ein paar 100mV die der Spannungsabfall über den Transistor schwankt denke ich nichts ausmachen?
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mi, 12.11.08, 12:20

Genau so. Bzgl. Widerstand berechnen... Ich würde den Wert ausprobieren/messen. Der Widerstand zwischen Basis und Emitter ist IMHO nicht erforderlich (außer es ist Dir sehr wichtig, dass beim Ein/Ausschalten des Controllers nichts 'flackert').
Weil es eigentlich nicht viel teurer ist und auch nicht soo ein großer Aufwand, würde ich eine Konstantstromschaltung verwenden, dann ist es auch egal welche LEDs (R oder G oder B) dran hängen. Für kleine Ströme (bis etwa 200mA) reichen problemlos zwei BC337. Falls Du gerne einen genaueren Schaltplan hättest, sag Bescheid.
Benutzeravatar
LONy-TOOn
User
User
Beiträge: 24
Registriert: Do, 23.10.08, 14:49

Mi, 12.11.08, 22:48

hi borax,
ich hab den thread von der konstantstromschaltung mal überflogen und teilweise gelesen.. nur ich versteh den schaltplan nicht ganz... wenn man eine KSQ hat schaltet man doch normalerweise alle LEDs in reihe oder? Weil wenn man die LEDs parallel schaltet ver-x-facht sicht ja der strom.. in dem beispiel mit 3 LEDs wären es dann statt 20mA 60mA. Aber wenn jetzt eine LED kaputt geht dann liegen ja an den andern beiden LEDs 30mA an -> sie gehn auch schnell kaputt. Oder bin ich jetzt total verkehrt dran?! Hab nen langen tag hinter mir ;)

Wenns dir nicht zu viel arbeit macht wäre es nett wenn du mir einen genaueren schaltplan gibst. Ich hab jede menge (je ca. 100 stück) 10k 4,7k 1k und 330 ohm widerstände da und irgendwelche 0815 NPN-Transistoren (BC 547C ca. 50 stück) hier... Also wenn ich davon irgendwas später verwenden könnte wärs nicht schlecht, alles andere wird einfach noch bestellt :)

achja, ich hab die schaltung so wie ich sie mir gedacht hab und oben gepostet hab mal zusammengelötet... die roten und blauen LEDs leuchten super wenn ich 5V an die basis von dem transistor anlege (über den 10k widerstand) allerdings die grünen glimmen nur leicht... wenn ich da allerdings einen 4,7k vorwiderstand nehme statt dem 10k dann leuchten sie auch schön hell...

sorry das ich keine groß/kleinschreibung verwendet habe aber ich wollt jetzt nur noch schnell antworten und dann ins bett ;) also danke und gn8
Benutzeravatar
CRI 93+ / Ra 93+
Auserwählter
Auserwählter
Beiträge: 2801
Registriert: So, 19.10.08, 23:56
Wohnort: Hannover

Do, 13.11.08, 17:55

Hallo LONy-TOOn,
welche NPN-Transistoren hast Du denn Benutzt? Der hier oft erwähnte BC337 möchte z.B. 50 mA an der Basis sehen, damit er Anständig durchschaltet, die 10 k und auch die 4k7 sind da viel zuviel. 220 Ohm oder weniger sollten es schon sein. Er dürfte dann auch deutlich kühler bleiben.
Die Atmel AVRs können 40 mA pro Port und so ca. zwischen 140 und 200 mA gesamt (d.h. man kann die 40 mA nicht aus allen Ports gleichzeitig ausgeben).

5,0-0,6V=4,4V/220R=exakt 20 mA ! Ich denke, das ist ein guter Wert, aber falls Du den BC337 benutzt hast und die vollen 800 mA willst, musst Du schon auf 120 Ohm runter gehen.
Solltest Du einen Leistungsfähigeren Transistor haben, dann kann es sogar sein, dass der bis zu 200 mA an der Basis sehen will, um seine volle Leistung zu bringen (das sind dann aber gurkige 10A-Aufwärts-Typen).

Hier sind MOSFETs mit ihrem geringen Spannungsabfall und und "stromloser" Ansteuerung die elegantere Wahl. Die PWM-Frequenzen müssen ja nicht so hoch sein (können bei Software-PWM gar nicht so hoch sein), dass das Umladen der Gate-Kapazität relevant würde.

Ich würde das Ganze auch Plus- oder Massebezogen machen und dann einfach zu jedem der 14 Module einen Port-Pin hinführen. Diese Ader darf logischerweise auch sehr dünn sein. Um den Controller bei Kurzschlüssen zu schützen, würde ich evtl. noch 220 Ohm direkt am Controller vor die Port-Pins schalten, auch wenn das für den MOSFET unnötig ist. Außerdem reduziert das die PWM-Störabstrahlungen, falls die Steuerleitung nicht geschirmt ist.
Die Pins zum Programmierstecker kannst Du auch mit verwenden, falls Dir die Ports ausgehen, aber dann blinken die dort angeschlossenen Module beim Flashen des Controllers.
Für den PWM-Teil solltest Du einen Timer des AVR hernehmen und einen Timer-Interrupt auslösen lassen und in diesem dann den PWM-Kram, dann musst Du Dir im Hauptprogramm keine Gedanken mehr um Timing-Probleme beim PWM machen, die zu Flackern/ungleichmäßiger Helligkeit führen können.

Generell zu MOSFETs: bei N-Kanal-MOSFETs muss die Spannung am Gate +5..15V über der am Source-Pin sein und bei P-Kanal -5..15V drunter. (je nach Typ verschieden, einige schalten schon ab 2,xx V voll durch, andere erst ab 10 V) http://www.elektronik-kompendium.de/sit ... 510161.htm
Einen P-Kanal-MOSFET kann man nicht ausschalten, wenn er an +12V hängt und sein Gate am Atmel, dann sieht der Transitor relativ zu den +12V nämlich nur -7 (+5V am IO-Pin des Atmel) bis -12V (0V am IO-Pin) und ist _immer_ durchgeschaltet, deshalb der Hinweis mit dem zusätzlichen NPN-Transistor (der Grund wurde IMHO nicht ausreichend erklärt).

Zur KSQ im anderen Thread: bei 5V ist nix mit in Reihe schalten der LEDs. Und ja: wenn eine LED weg ist oder hochohmig wird, bekommen die anderen mehr Strom.
Da Du ja 12V hast, kannst Du schon 3 LEDs in Reie schalten und solltest es auch, um die sinnlos an Widerständen verbratne Leistung gering zu halten.
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Fr, 14.11.08, 00:37

Das meiste hat CRI 93+ / Ra 93+ ja schon gesagt. Ich meinte auch nicht, dass Du die LEDs parallel schalten sollst (wäre ja völlig daneben, wenn Du schon 12V hast). Es ging mir nur um das KSQ-Prinzip (Shunt + zwei Transistoren/ein Transistor + 1 Mosfet bei hohen Strömen) zur Stromregelung. Schaltplan kriegst Du morgen. Welcher Schaltstrom ist denn jetzt eigentlich pro Kanal anvisiert? Bei etwa 200mA reichen die BC 547C locker aus. Wenn ich Dein erstes Post richtig interpretiere, soll ja jeder Kanal aus drei in Serie geschalteten SuFlus bestehen. Das wären ja dann nur 80mA.
@CRI 93+ / Ra 93+
Die Pins reichen doch nie: 14x3=42 einzelne PWM Kanäle... Daher ist ja eine I2C Master-Slave Schaltung erforderlich.
Benutzeravatar
CRI 93+ / Ra 93+
Auserwählter
Auserwählter
Beiträge: 2801
Registriert: So, 19.10.08, 23:56
Wohnort: Hannover

Fr, 14.11.08, 13:00

Ups, hatte vergessen, dass es ja RGB-Module werden sollen. Da muss man anders arbeiten, I2C-ICs mit PWM gibt's bestimmt auch...
Bei http://www.nxp.com (Philips) mal das in die Suche eingeben: i2c PWM
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Fr, 14.11.08, 16:18

Solche Chips sind meist nicht zu kriegen...
Ich würde einfach ein paar Atmels als I2C slaves verwenden und einen als Master. Wie viele slaves erforderlich sind, hängt vmtl. vom Timing ab. Falls erforderlich pro Cluster einen Slave (z.B. ein Tiny2313, kost ja fast nix). Damit sollte es problemlos möglich sein, die drei Kanäle zu steuern und 'nebenher' neue Sollwerte per I2C zu empfangen. Die neuen Sollwerte müssen ja nicht so häufig neu gesetzt werden. 10Hz sollten da locker reichen, sonst wird es ein 'Geflimmer' :D
Ich hab es noch nicht 'durchgerechnet', aber vielleicht reichen auch 3 ATMega als slaves wobei jeder eine Farbe steuert. 14 Kanäle per Soft-PWM sollten noch kein Problem sein, nur müsste dann jeder auch 14Bytes mit neuen Sollwerten 'nebenher' per I2C empfangen, und ob das noch reicht bin ich jetzt nicht sicher.
Antworten