Hallo,.. stellt euch vor, man möchte am AVR ( Atmega128L ) mehrere LED's betreiben die unterschiedlich vor sich her blinken und möchte aber NICHT vor jede LED einen Vorwiderstand schalten. Gibt es einen einzelnen Baustein ( mit z.B. 8 Pin's ) der sozusagen an den IO's des Mikrocontrollers sitzt und selbst nur 1 Verbindung zur Masse hat und der Strom einstellbar ist, der dann für alle(!) IO's und damit für die LED's gilt ? und somit keine Helligkeitsschwankungen auftreten, wenn ein paar LED's ausgehen und andere weiterhin leuchten... Der Baustein müsste sozusagen den Gesamtstrom immer in kleine "Portionen" (z.B. à 10mA) für jede LED teilen und erkennen wann LED's abgeschaltet oder hinzu geschaltet werden. Gibt's sowas ? irgendwo ? ... also anstatt : AVR Pin 1----(LED)---[Widerst.]-------VCC/GND ... auch nicht : AVR Pin 2----(LED)---[Transistor]-----VCC/GND | | o ... eher so : AVR Pin 1---(LED)---o-----[ Baustein ]------VCC/GND AVR Pin 2---(LED)---| [ X ] AVR Pin 3---(LED)---| [ ]---(Offset/Potti 6mA)---GND/VCC ( 6 mA für jede LED ) Jemand sowas schon mal gesehen ? Wäre Dankbar für einen Hinweis ;) Gruß, Dirk
Nun stell dir mal vor :) sowas gibt es und stell dir vor für 8 oder 16 oder 24 LED's benötigst du nur 2 Pins an deinem AVR. Schau mal hier http://www.st.com/stonline/books/ascii/docs/10147.htm Gruß Hagen
Das standart widerstandnetzwerk und die leds per pwm ansteuern reicht nicht aus? o--GND AVR Pin 1---(LED)---[Widerstand] AVR Pin 2---(LED)---[Widerstand] AVR Pin 3---(LED)---[Widerstand] WErner
@Hagen: Danke ;) war schon mal ein guter Link ! Aber was Du nicht wissen konntest ist : Der Bereich sollte nicht bei 15mA sondern irgendwo zwischen 5-15mA liegen und nicht erst bei 15 mA anfangen,.. :( Ein weiteres Problem ist der Platz,... wenn ich noch weitere SMD Bauteile auf die Platine quetsche wird's echt langsam ziemlich eng,.. und da beim 128L eh die ganzen Beinchen bereits "dran" sind (Bauform),.. spare ich durch das zusätzliche SiPo nicht wirklich Platz sondern muss nen weiteren Chip unterbringen. Aber prinzipiell wärs das fast gewesen ,.. Aber vielleicht wird's hier deutlicher : AVR Pin 1---(LED)---o----------[ Baustein X ]------VCC/GND AVR Pin 2---(LED)---| | AVR Pin 3---(LED)---| |--------z.B.5mA/Schritt ... mit sowas könnte ich massig Platz sparen, wenn der Baustein einfach "stabilisierte Sprünge" im Gesamtstrom je nach "Belastung" machen würde : z.B. : 5mA - 1 LED 10mA - 2 LED's 15mA - 3 LED's 20mA - 4 LED's ... wenn man das auch noch über einen Offset einstellen könnte, wär ich richtig glücklich ;))) @Werner: Da hab' ich das gleiche Problem,... leider,.. denn ich brauch' nen Haufen Widerstände :( Fällt euch beiden vielleicht hierzu noch etwas ein ? Gruß, Dirk
Ok ich hatte/habe ein ähnliches Problem. "betreiben die unterschiedlich vor sich her blinken und möchte aber NICHT vor jede LED einen Vorwiderstand schalten" Ich will zb 16 RGB LEDs die eine gemeinsamme Anode haben ansteuern. Dazu wird eine Matrix von 16 Zeile und 3 Spalten gebaut. Die Zeilen werden durch PNP an Vcc über einen Vorwiderstand bestrieben und die Spalten per MOSFETs geschaltet. Jede Spalte steuert immer nur 1 Farbe der RGB LEDs an. D.h. ich habe so ein RGB Farbspalte und kann diese nun durch weitere Spalten erweitern. Wichtig ist nur das immer nur eine Farbspalte zu einem Zeitpunkt aktiv sein kann, sprich nur ein MOSFET schaltet durch. Der PNP kann nun den Strom immer so einregeln das er den Anforderungen der unterchiedlich farbigen LEDs gerecht wird. Ich möchte damit sagen das du eventuell mal deine Spalten/Zeile-Logik vertauschen solltes. Am AVR sitzen die PNP die die gemeinsammen Anoden der LEDs ansteuern. Diese werden in Spalten an GND durch MOSFETs gesteuert. Für jede LED-Zeile hast du also nur eine Konstantstromquelle. Mehr kann ich dir auch nicht helfen. Aber wenn es um Platz geht dann frage ich mich wieviele 0603 SMD Widerstände zb. auf den Platz eines kleineren Chips passen würden. Gruß Hagen
Achso, bei deiner Idee vergisst du eines: Du möchtest das sich die fließenden Ströme auf alle LEDs gleichmäßig verteilen und den verfügbaren Strom auf Grund der Anzahl der aktivem LEDs einregulieren. Hast du auch schon mal daran gedacht das sich der so verfügbare Gesamtstrom eben NICHT gleichmäßig auf die LEDs verteilen kann wenn sie nicht exakt aufeinander abgestimmt wurden ? Du musst schon vor jeder LED eine eigene Konstantstromquelle setzen, eben so wie in meinem vorherigen Vorschlag. Ich reduziere dabei den Bauteilaufwand bei zb. 64 solcher RGB LEDs von 64*3 Vorwiderständen auf max. 16*2 Widerstände. Gruß Hagen
@Hagen: Danke für das Brainstroming ! Aber das löst meine "Platz-Probleme" noch nicht ... Denn ich möchte ja ( wenn irgend möglich ) auf die einzelnen Ansteuerbausteine oder Vorwiderstände verzichten und das alles auf einen einzelnen Baustein (!) pro parallel geschalteter LED's vereinfachen. Da fällt mir was ein: Wie wäre es wenn man einen Pin ( Steuerleitung ) dess AVR's für diesen Zweck zum ansteuern eines Transistors(?) nehmen würde der den Gesamtstrom in der Reihe steuert ? Schließlich "weiß" der MC ja wieviele LED's an sind und müsste demnach lediglich "irgendwie" (PWM? oder Analog mit vorher definierten Schritten ) einem Baustein X "beibringen" : "Hey - da müssten gerade 5 LED's leuchten,... Geh mal auf 5x5mA für den Gesamtstrom in "Deiner" Reihe..." Dann könnte man auf weitere Transistoren oder Widerstände verzichten. >Du möchtest das sich die fließenden Ströme auf alle LEDs gleichmäßig >verteilen und den verfügbaren Strom auf Grund der Anzahl der aktivem >LEDs einregulieren. GENAU ! Schön wärs,.. wenn's so einen (intelligenten) Baustein gäbe ,... >Hast du auch schon mal daran gedacht das sich der >so verfügbare Gesamtstrom eben NICHT gleichmäßig auf die LEDs >verteilen kann, wenn sie nicht exakt aufeinander abgestimmt wurden ? Ich hatte vor überall die gleichen ( Low Current ) LED's anzuschließen, daher hätte ich dieses Problem, glaub' ich, nicht. Die LED's sind alle Baugleich ( "Kennlinien-gleich" ). @HanneS: .. zumindest wärs eine Platz sparendere Version,.. als einzelne SMD-R's zu nehmen... Gruß, Dirk
Ich hab immer nocn nicht verstanden, wieso ein SIL9 Widerstandsnetzwerk mehr Platz verbrauchen soll, als ein separater Baustein. Und die Helligkeit jeder LED läßt sich doch prima über PWM regeln. Alles andere braucht deutlich mehr Platz und das Regeln ist komplizierter...
Es kommt auf die Menge der LEDs an. Bei 1000 LEDs verbrauchen die Vorwiderstände sicher weit mehr Platz als ein Chip der eine programmierbare Konstantstromquelle darstellt. Es ist auch richtig das der AVR digital berechen kann wieviel Strom erforderlich wäre. Denoch meine ich das das so nicht sauber funktionieren kann. Denn es kann keine absolut identischen LEDs geben und man muß sie in irgendweiner Weise immer parallel ansteuern. Die Ströme würden sich ausgehende von der Konstantstromquelle eben nicht gleichmäßig auf alle LEDs verteilen. Um so mehr LEDs an dieser Quelle sitzen um so größer werden die Differenzen. Befindet sich nur eine LED darunter die durch verchleiß mehr Strom zieht als die anderen dann wird diese mit der Zeit immer mehr überlastet. Ergo: es entstehen trotzt Konstantstromquelle immer Helligkeitsunterschiede. Wie gesagt, ich hatte auch schon darüber nachgedacht und es eben verworfen. Teile die LEDs in eine Matrix auf, deren Anzahl an Spalten und Zeilen am geringsten ist. Dann treibe jede Zeile mit einer eigenen Konstantstromquelle (simpler PNP mit Widerständen reicht aus) und die Spalten der Matrix werden über MOSFETs nach GND terminiert. So hast du wenigesten nur (LED Gesamtanzahl / Spalten) mal mit Widerständen + PNP zu tuen. Die Spalten kannste auch mit ULN's treiben, statt MOSFETs. Also ich weis ja nicht wie klein deine Schaltung werden soll, aber alleine die LEDs zu "verdrahten" benötigt seinen Platz. Es gibt heutzutage so kleine LEDs das deren Bedrahtung wesentlich mehr Platz wegnimmt. Es müsste also immer noch genügend Platz vorhanden sein um die Spalten/Zeilentreiber zu integrieren. Ansonsten hätte ich noch einen Tipp für dich: Schau dir doch mal den MAX6952 und MAX6954 an. Auch ich hatte mit diesen Teilen experimentiert und mir Samples schicken lassen. Allerdings waren sie für meine Verhältnisse dann doch zu langsam in der Ansteuerung. Für eine normale LED Matrix sind sie aber absolut ausreichend und enthalten ebenfalls pro LED Zeile eine Konstantstromquelle. Sie werden in SSOP36 gebaut, also klein genug. Sie treiben 140 respektive 128 LEDs. http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3379 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3410 Gruß Hagen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.